Oprogramowanie komputerowe

OPROGRAMOWANIE tworzenie-oprogramowania

Jak wcześniej stwierdziliśmy pojęcie system komputerowy obejmuje również oprogramowanie. System komputerowy stanowi bowiem spójny zestaw środków sprzętowych i programowych. Oprogramowaniem nazywamy ogół środków programowych dostępnych w systemie komputerowym. Oprogra­mowanie tworzone jest przy pomocy określonego języka programowania.

Podstawowym elementem oprogramowania jest program, realizowany przez komputer – bliżej przez mikroprocesor. Jest to zatem ciąg instrukcji jakie musi wykonać mikroprocesor w celu realizacji założonego algorytmu opisującego zadany problem.

Program jest więc opisem danego problemu przy pomocy określonego języka w ten sposób, że jest on akceptowany przez komputer (mikroprocesor).

Oprogramowanie z języka angielskiego zwane jest też softwarem.

Analizując relacje między ceną sprzętu (hardware) a oprogramowaniem (so­ftware) zauważyć można, że w poszczególnych latach uległa ona dużym zmia­nom. Początkowo cena sprzętu komputerowego była bardzo wysoka w stosunku do ceny oprogramowania. Obecnie możemy za­obserwować tendencje do coraz większego udziału ceny oprogramowania w ca­łości wydatków na informatykę. Mimo że ceny systemów komputerowych w całości spadają, to ceny sprzętu ulegają o wiele większej obniżce niż ceny oprogramowania. Przedstawiona w tej części wykładu analiza oprogramowania została przepro­wadzona w odniesieniu do komputerów personalnych. Większość zagadnień ma cha­rakter uniwersalny, jednakże przedstawione przykłady dotyczą najbardziej popular­nych komputerów, jakimi są komputery personalne (osobiste użytkownika). W większości zatem sytuacji spotkamy się w praktyce właśnie z tego typu oprogramowaniem. Podział oprogramowania związa­ny jest z rodzajem komputerów, dla których to oprogramowanie zostało zaprojektowa­ne.

Jak wiemy komputer jest urządzeniem działającym według ściśle określonych reguł. Aby go wykorzystać w swoich działaniach musi on posiadać określoną listę czynności do wykonania.

Programowanie jest więc pewną sekwencją działań składających się m.in. z:

  1. opracowania algorytmu rozwiązania problemu,

  2. przetłumaczenia algorytmu na wybrany język komunikacji człowiek ? komputer,

  3. uruchomienia i zrealizowania programu.

A zatem na udany nowoczesny i efektywny produkt informatyczny składają się trzy podstawowe moduły:

  1. właściwy i dobrze zrealizowany produkt,

  2. poprawne oprogramowanie,

  3. odpowiedni sprzęt.

Oprogramowanie komputera decyduje w dużej mierze o:

  1. jego możliwościach wykorzystania,

  2. wykonywania określonych (założonych) zadań.

Dlatego też z punktu widzenia użytkownika sprzętu komputerowego ?komputer jest tak dobry jak dobre jest jego oprogramowanie?, ono bowiem decyduje o rzeczywistej wartości komputera gdyż steruje pracą poszczególnych modułów sprzętu komputerowego, nadzoruje ich wykorzystanie i współdziałanie, sprawdza poprawność działania komputera a przede wszystkim współpracuje z użytkownikiem i realizuje jego zadania.

Na koszt zrealizowania prawidłowo funkcjonującego systemu komputerowego około 70% kosztów to koszt produkcji programów umożliwiających pracę systemu.

Reasumując można więc powiedzieć że od cech i jakości oprogramowania zależy łatwość posługiwania się komputerem jak i zakres wykonywanych przez niego zadań zadanych przez użytkownika.

Z punktu widzenia użytkownika obsługującego komputer oprogramowanie jest jakby otuliną okrywającą komputer przy czym ta otulina programowa złożona jest z kilku warstw, w efekcie tego użytkownik komunikuje się zwykle nie bezpośrednio ze sprzętem, lecz z określonym programem należącym do jego otoczenia.

Dla decydentów nie są istotne problemy funkcjonowania oprogramowania systemowego zarządzającego systemem. Decydent jako użytkownik sprzętu komputerowego wykorzystuje tylko oprogramowanie narzędziowe oraz użytkowe. Granica pomiędzy nimi jest jednak trudna do ustalenia gdyż na dynamicznym rynku oprogramowania pojawiają się programy będące aplikacjami programów narzędziowych oraz programy narzędziowe umożliwiające przystosowanie ich do potrzeb programów użytkowych.

Oprogramowanie systemowe to zbiór programów, które są niezbędne w pracy komputerów niezależnie od ich zastosowania; są one opracowane najczęściej przez producentów sprzętu lub osoby zamawiające. Oprogramowanie systemowe, które będzie dalej przedstawione, nie jest pod kątem funkcjonalnym, jednoznaczne. Część oprogramowania czyli oprogramowanie, które możemy nazwać podstawowym (sys­tem operacyjny) jest tego typu, że bez ich udziału komputer nie byłby zdolny do pracy. Druga grupa ma mniejsze znaczenie, a ich zadaniem jest ułatwienie pracy użytkownika i pozwolenie na to aby ta praca była zgodna z przyjętymi standardami i wymaganiami. Podstawowe oprogramowanie systemowe jest dostarczane przez producenta wraz ze sprzętem, a jego cena jest zawarta w kontrakcie zakupu sprzętu.

Oprogramowanie użytkowe obejmuje zbiór programów, które są opracowane pod kątem realizacji konkretnych zadań i spełniających określone potrzeby użyt­kownika. I tak, jeśli oprogramowanie systemowe realizuje powtarzalne zadania wspól­ne dla różnych zastosowań, to oprogramowanie użytkowe służy do rozwiązania i realizacji konkretnych potrzeb użytkownika.

Podział na oprogramowanie systemowe i użytkowe nie zawsze jest ostry i jedno­znaczny. Istnieje wiele pakietów oprogramowania, które realizują zadania systemo­we jak i użytkowe. Odnosi się to zwłaszcza to współczesnego oprogramowania kom­puterów personalnych takiego jak przykładowo pakiet WlNDOWS.

Niezależnie od stosowanego stylu i typu programowania należy w konsekwencji dany algorytm napisać w takim języku, który będzie zrozumiały dla komputera. W tym sensie:

  • język programowania można określić jako zbiór znaków (słownik), oraz zbiór reguł posługiwania się nimi i ich interpretacji w procesie komunikowania się.

Komputer, aby mógł przetworzyć problem opisany w postaci algorytmu musi być opisany językiem programowania. Na ogół język programowania składa się z notacji i reguł, według których pisze się program.

B. Stefanowicz w podręczniku ?Metody i techniki programowania komputerów? PWE, Warszawa 1987 – stawia językowi programowania – jako metodzie porozumiewania się człowieka z komputerem następujące wymagania:

  1. Język musi być łatwy do opanowania przez człowieka i posługiwania się nim,

  2. Sformalizowanie języka musi zapewnić jednoznaczność wszystkich jego elementów (znaków, wyrazów, zdań, zwrotów), co ułatwi opracowanie odpowiednich zasad wykonywania przez maszynę każdego polecenia, jakie w tym języku zostanie sformalizowane.

  3. Język musi umożliwiać zakodowanie minimalnego zbioru operacji elementarnych, niezbędnych do wykonania określonych prac na komputerze,

  4. Jest wskazane aby język umożliwiał także proste kodowanie operacji specyficznych dla danej klasy zastosowań.

  5. Język powinien uwzględniać techniczne możliwości i wymagania dostępnego sprzętu oraz umożliwiać pisanie programów według znanych metod programowania.

Uogólniając te wymagania względem języka komunikacji człowiek – komputer można to sprowadzić do tezy wymagań:

  • łatwość posługiwania się

  • pełność realizacji żądań

A więc stan idealny to możliwość stosowania jako języka komunikacji człowiek – komputer JĘZYKA NATURALNEGO.

Języki programowania można przedstawić z dwóch punktów widzenia:

  1. z punktu widzenia człowieka – a więc styl tworzenia programów,

  2. z punktu widzenia komputera – a więc formalnie języki programowania.

Ad A.

Z punktu widzenia stylu tworzenia programów możemy wyróżnić:

  • programowanie proceduralne,

  • programowanie deklaratywne,

  • programowanie obiektowe,

  • programowanie strukturalne.

  • PROGRAMOWANIE PROCEDURALNE – charakteryzuje się tym, że program powinien zawierać pełny opis rozwiązania problemu opisanego danym algorytmem. Program składa się w tym przypadku z dwóch części:

  • deklaratywnej, w której opisuje się obiekty (dane), na których działa

  • proceduralnej, w której opisuje się czynności (instrukcje), które są wykonywane na tych danych.

  • PROGRAMOWANIE DEKLARATYWNE – polega na określeniu związków czyli relacji pomiędzy danymi a wynikami. Przy tego typu programowaniu nie kładzie się nacisku na ?JAK PRZETWARZAĆ? (programowanie proceduralne) ale ?CO MA BYĆ PRZETWARZANE?. Przykładowym językiem jest język PROLOG.

  • PROGRAMOWANIE OBIEKTOWE – jest próbą połączenia zarówno programowania proceduralnego i deklaratywnego. Jest to metoda programowania, w której program jest opisem działania zbioru wzajemnie powiązanych obiektów. Na opis obiektu składa się kilka następujących charakterystyk: metody, atrybuty, dziedziczenie, reguły, otoczenie. Przykładowe języki to: FRL, KEE, SMALLTALK do prezentacji wiedzy w bazach wiedzy.

  • PROGRAMOWANIE STRUKTURALNE – powstało na odpowiedź na niedostatki oprogramowania tradycyjnego – celem tego programowania jest rygorystyczna organizacja procesu projektowania i kodowania programu w dążeniu do zapobieżenia błędów logicznych i innych. Ma ono następujące cechy:

  • jest zastępujące,

  • modułowe.

Przykładowe języki to PASCAL i PL1

 

Ad B.

Języki programowania z punktu widzenia stopnia uzależnienia się od komputera możemy umownie podzielić na:

  • JĘZYK WEWNĘTRZNY MASZYNY (kod maszynowy) składa się z rozkazów mikroprocesora reprezentowanej w formie binarnej nr rozkazu adres kodu operacji, operandu

  • JĘZYKI SYMBOLICZNE – notacja w postaci skrótowych oznaczeń poszczególnych instrukcji oraz symbolicznych nazw danych i komórek pamięci, SAKO, MOST, MACRO PLAN,

  • JĘZYKI WYŻSZEGO RZĘDU zorientowane maszynowo – komputery ICL – PLAN, komputery IBM ? Assembler

  • PROBLEMOWE m.in. do: przykładowe języki

  • obliczeń matematycznych Algol, Pascal, Fortran, Simula,

  • ekonomicznych Cobol, Pl1

  • konwersacyjne Basic, Jean, C

  • komunikacji z bazami danych Sqel, Query, Alpha

  • specjalistyczne – narzędziowe Psl/Psa, Portes

  • NATURALNE

powiązane posty