Softver inženjerstvo
Softversko inženjerstvo
1. SOFTVER I SOFTVERSKI INŽENJERING
Proteklo je šest decenija razvoja računarskih sistema. Tokom prve tri
decenije, primarno je razvijan hardver sa ciljem da se smanje troškovi obrade
i čuvanja podataka. Osamdesetih i, delom, dvedesetih godina i dalje se
najviše pažnje poklanjalo razvoju hardvera i povećanju njegove brzine i
moći. Tek poslednje decenije razvoja, izazov su postali
viši kvalitet i niži
troškovi softvera.
Danas
softver
predstavlja ključ uspeha većine računarskih sistema i ujedno
faktor diferencijacije organizacija koje ga poseduju. Softver je postao bitna
komponenta u poslovnom odlučivanju i osnova u naučnim istraživanjima i
inženjerskom rešavanju problema. On takode predstavlja značajnu
komponentu u industrijskim, transportnim, medicinskim,
telekomunikacijskim, vojnim i brojnim drugim vrstama sistema. U
savremenom svetu softver je praktično neizbežan i svuda prisutan. Na pragu
21. veka izmenjeno je poimanje softvera i isti javnost ga prihvata kao
tehnološku stvarnost u budućem razvoju.
1.1. Pojmovno određenje softvera
Pre trideset godina, manje od 1% javnosti je bilo u mogućnosti da
inteligentno objasni značenje pojma "softver". Međutim, sada sve veći dio te
javnosti smatra da i razume softver. Da li je to tako?
Softverski proizvod
(engleski: consumer software package) predstavlja
softversku podršku računarskim sistemima, a čine ga skup računarskih
programa, datoteke i odgovarajuća dokumentacija, namenjeni realizaciji
određenih zadataka (definicija preuzeta iz standarda JUS ISO 9127/94). Za
razliku od softverskog proizvoda,
softver
se sastoji iz skupa računarskih
programa i datoteka sa istom namenom koju ima softverski proizvod. Kako
su, prema usvojenim standardima, softver i odgovarajuća prateća
dokumentacija nerazdvojivi, upakovani za prodaju kao jedinstvena celina i
prodaju se zajedno, u nastavku se ova dva pojma poistovećuju.
Iz izloženog se vidi da softverski proizvod predstavlja jedinstvo računarskih
programa, struktura podataka sadržanih u datotekama i dokumentacije koja
opisuje način funkcionisanja i upotrebe programa. Pri tome, posebno se
ističe značaj
dokumentacije,
koju projektanti i programeri često zanemaruju,
1
Softversko inženjerstvo
ali bez koje se softver ne može smatrati kompletnim. Informacije sadržane u
pratećoj dokumentaciji su često jedino sredstvo putem koga proizvođač
softvera i/ili distributer mogu komunicirati sa kupcem ili korisnikom. Samo
ukoliko dokumentacija sadrži dovoljno informacija, korisniku se omogućuje
uspešno korišćenje softvera.
Za pojam softvera vezan je i pojam
softverska podrška.
Ona predstavlja rad
na održavanju softvera i prateće dokumentacije u funkcionalnom stanju.
Mogu je pružati: proizvođač (organizacija koja je razvila softver),
predstavnik (organizacija koja plasira softver na tržištu), distributer
(organizacija koja neposredno prodaje softver korisniku) ili neka druga
organizacija.
1.2. Paradigme arhitekture softvera
Slika 1.1 .www.fit.ba (DL-Softversko inženjerstvo)
Primena računara u naučno-istraživačkom radu prouzrokovala je
ovladavanje složenim tehnološkim procesima i novim proizvodima, među
kojima se nalaze i kvalitetniji računari. Ova povratna sprega dovela je do
eksplozije znanja kojom su nastale hardverske arhitekture izuzetno visokog
kvaliteta. Razvoj softvera, međutim, nije pratila opisana dinamika, jer se on
mogao meriti porastom od svega nekoliko procenata godišnje. Poboljšanje
Prof.dr D.Radosav, E-predavanja iz Softverskog inžinjeringa, FIT, Univerzitet u Mostaru
2

Softversko inženjerstvo
preuzimaju ulogu interfejsa između korisnika i aplikacije koji treba da
ispunjava njegove želje. Tako nastaje grafički korisnički interfejs zasnovan
na korišćenju "ikona" koji nije karakterističan samo za hardver (ekrani u boji
visoke rezolucije i grafičke kartice), već i za softver (Windows). Aplikacije
počinju da se prodaju kao konfekcijski proizvodi, čijim se kombinovanjem
vrši automatizacija određenog poslovnog okruženja.
Pojavom lokalnih računarskih mreža personalni računar postaje
komparativno najatraktivniji za realizaciju informcijskih sistema odeljenja ili
organizacija manje ili srednje veličine. Razmena podataka sa širim
okruženjem vrši se pomoću telekomunikacijske računarske mreže u koju se,
pomoću transportnih komunikacijskih protokola, povezuju računari sa
različitim hardverom i operativnim sistemima. Paradigmu
računarske mreže
karakteriše podela aplikacije na sistemski deo (ljusku) i korisničku,
distribuiranu aplikaciju. Između velikog broja modela povezivanja
distribuiranih aplikacija u primeni je dominantan TCP/IP protokol, koji
koristi najveća svetska mreža Internet. Mreže ovog tipa predstavljaju osnovu
za globalne informacijske sisteme, kod kojih sve informacije, bez obzira na
geografski položaj, postaju pristupačne svim korisnicima u svetu.
Tehnologija skladištenja, povezivanja i organizovanja različitih tipova
informacija (tekstovi, numeričke vrednosti, tabele, grafici, slike, zvuk i video
zapisi) zasnovana je na World Wide Web (WWW) servisu, TCP/IP
protokolu, jeziku za označavanje hipertekstualnih informacija HTML i
aplikativnom transportnom protokolu HTTP. Ona omogućava korisnicima da
sve informacije, koje se nalaze na računarima raspoređenim po celom svetu i
povezanim u internet, vide kao jedan
globalni, distribuirani, multimedijalni
informacijski sistem.
Kreiranje efikasne infrastrukture za trenutnu isporuku
uskladištenih informacija na proizvoljno mesto uključilo je i distribuciju
pratećih programa kao specifičnih podataka. Ovu distribuciju programa
moguće je realizovati razvojem programa za virtuelni računar i simulatorima
ovog virtuelnog računara na različitim platformama (SunSoft Java) ili
razvojem različitih verzija istog programa za različite platforme (Microsoft).
Pomaci u aplikativnoj paradigmi prouzrokovani primenom WWW servisa
ukazuju da se za dominaciju bore mrežni računar NC (grafički interfejs,
procesor, operativna memorija i komunikacijski procesor) i Microsoftov
NetPC, koji omogućava naizmenično korišćenje mrežnog i personalnog
računara.
Prikazane paradigme arhitekture softvera mogu se posmatrati i kroz
četiri
faze razvoja softvera.
4
Softversko inženjerstvo
Prvu
, najraniju etapu karakteriše razvoj softvera koji su realizovali
proizvođači računarske opreme, razvijajući kompletan neophodni softver
(operativne sisteme, programske jezike, pomoćne programe i dr.) za svoje
proizvode. To je bio
softver batch orijentacije,
projektovan i razvijan za
pojedinačne potrebe naručilaca. Celi postupak od inicijalizacije, preko
projektovanja do implementacije i održavanja softvera je obavljala ista
osoba, te projektno-programska dokumentacija nije postojala. U računarskim
centrima je bila realizovana koncentracija vrhunskih kadrova značajnih za
razvoj softvera.
Međutim, ubrzani razvoj računarske opreme, uslovio je da se menjaju i
zahtevi korisnika prema softveru. Viši zahtevi u odnosu na softver isticali su
potrebu za višim nivoom znanja onih koji softver razvijaju. Sopstvenim
snagama ove organizacije su sve teže mogle da prate takav razvoj. Viši
troškovi razvoja softvera uslovljavali su i postepeni rast zahteva za
sredstvima odnosno kapitalom potrebnim za razvoj. Samo veoma velike
računarske kuće su dozvoljavale sebi taj luksuz i pravo da održavaju
računarske centre u celini i da se bave istovremeno razvojem, kako
računarske opreme, tako i softvera.
Drugu
etapu karakteriše softver razvijen za
višekorisnički rad u on line
režimu rada i
pojava prvih sistema za upravljanje bazama podataka.
Sedamdesetih godina se pojavljuju prve softverske kuće. One su u početku
razvijale specifični softver za određenu računarsku opremu, da bi se kasnije
usmerile ka razvoju univerzalnijeg softvera upotrebljivog na različitoj
opremi. U ovim organizacijama se koncentrisalo kvalitetno osoblje, koje je
timskim radom i dobrom koordinacijom poslova
dolazilo do
najkvalitetnijih rešenja.
Kada bi se želeli ukratko navesti
faktori,
koji su uslovili potrebu novog
načina razvoja softvera, onda bi to bili:
• eksplozija informacija,
• pojava softverskih kuća,
• raznovrsna i brojna primena računara,
• potreba za softverom koji se lako upotrebljava i nije skup,
• brze i dinamične promene u društvu,
• zahtevi za visokim nivoom kvaliteta softvera,
• brza realizacija, odnosno kraće vreme dostupnosti i
• zahtevi za univerzalnom primenom.
Treću
etapu razvoja karakteriše softver za podršku distribuiranih
računarskih sistema koji su međusobno komunicirali i pojava personalnih
5

Softversko inženjerstvo
Slika 1.2. www.fit.ba (DL-Softversko inženjerstvo)
Slika 1.3. www.fit.ba (DL-Softversko inženjerstvo)
Teorijske osnove industrijskog razvoja
softverskih proizvoda opisao je
sredinom osamdesetih godina Brad Cos. On, razvoj složenog sistema
softverskog proizvoda definiše kao proces povezivanja manje složenih
gotovih
objekata i komponenti.
Do ovakvog načina industrijskog razvoja
dolazi se evolucijom iz zanatskog razvoja, koji i dalje postoji, ali prestaje biti
dominantan način.
Da bi se mogla organizovati industrijska proizvodnja potrebno je obezbediti
sve delove koji ulaze u konkretan proizvod. Ti delovi moraju biti međusobno
usaglašeni, odnosno neophodno je da postoje
standardi
po kojima se oni
razvijaju. Kako je razvoj softvera vrlo (dinamičan, donošenje zvaničnih
standarda nije sposobno da ga prati, pa se na tržištu prvo pojavljuju standardi
koji predstavljaju zajednički dogovor određene grupe proizvođača ili
7
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti