projektovanje softvera - ekof.bg.ac.rs · projektovanje softvera kvalitet i pisanje softvera u...

68
PROJEKTOVANJE SOFTVERA

Upload: buicong

Post on 29-Aug-2019

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROJEKTOVANJE SOFTVERA

Page 2: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROJEKTOVANJE SOFTVERA

� Softver može biti sistemski i aplikativni.

� U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na primer: prevodioci za pojedine jezike, komunikacioni prevodioci za pojedine jezike, komunikacioni program i drugo.

Page 3: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROJEKTOVANJE SOFTVERA

� Aplikativni softver piše sam korisnik ili ga kupuje od nekog proizvođača, radi rešavanja određenog zadatka iz domena svog poslovanja.

Page 4: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROJEKTOVANJE SOFTVERA

� Kvalitet i pisanje softvera u celini, još uvek u značajnoj meri zavise od inventivnosti i veštine programera.

Da bi se pomoglo programerima u pisanju � Da bi se pomoglo programerima u pisanju softvera ustanoljene su neka osnovna pravila za pisanje softvera.

Page 5: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

DIZAJN SOFTVERA

� Uz pomoć ustanovljenih pravila pisanje softvera se približava inženjerskim disciplinama i tako otklanjaju problemi u pisanju softvera, kao što su:

� kašnjenje softverskih projekata,kašnjenje softverskih projekata,� neispunjavanje osnovnih funkcija koje se očekuju od softvera,

� nekorektno ponašanje u nestandardnim situacijama,

� složeno upravljanje i drugo.

Page 6: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FAZE DIZAJNA SOFTVERA

� definicija programa,

� modularni dizajn,

� razmatranja o programskom jeziku,

� pisanje programskih specifikacija, � pisanje programskih specifikacija,

� provera dizajna i

� pregled dizajna.

Page 7: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FAZE DIZAJNA SOFTVERA

� Definicija programa zahteva pažljivo razmatranje prioriteta, svrhe i funkcije svakog programa, koji će ući u aplikaciju.

� Nakon definisanja programa, analitičar ga � Nakon definisanja programa, analitičar ga pažljivo deli na specifične zadatke ili module.

Page 8: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FAZE DIZAJNA SOFTVERA

� Posle identifikacije modula, analitičar se koncentriše na detalje svakog modula, obraćajući posebno pažnju na načine na koji su moduli međusobno vezani. su moduli međusobno vezani.

� Celokupna kolekcija definicija programa i modula čini programske specifikacije.

Page 9: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FAZE DIZAJNA SOFTVERA

� Kada su moduli specificirani, analitičar može da razmatra koji programski jezik bi sistemmogao da koristi za pisanje potrebnogprograma. programa.

� Ovo se različito rešava u različitimorganizacijama.

Page 10: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FAZE DIZAJNA SOFTVERA

� U jednim se koristi samo jedan programski jezik zasve programe, dok se u drugim organizacijamaostavlja velika sloboda analitičaru u izboruodgovarajućeg programskog jezika, čak postojimogućnost i korišćenja različitih programskih jezika u mogućnost i korišćenja različitih programskih jezika u zavisnosti od potreba pojedinačne aplikacije(aplikativnog sftvera).

Page 11: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FAZE DIZAJNA SOFTVERA

� Na kraju, ceo sistem se podvrgava kontroli i revizijidizajna.

� Revizija dizajna daje poslednju šansu upravi ikorisnicima da pregledaju predloženi sistem, uverekorisnicima da pregledaju predloženi sistem, uverese da on ispunjava sve njihove potrebe i dapodrazumeva prihvatljive troškove.

� Menadžment može još uvek da odbaci sistem ili dazahteva modifikacije, pre nego što ovlasti njegovuprimenu.

Page 12: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FAZE DIZAJNA SOFTVERA

� Faza dizajna se završava pisanjemprogramskih specifikacija.

� Specifikacije uključuju ulaz, bazu podataka, � Specifikacije uključuju ulaz, bazu podataka, izlaz, mrežu i dizajn softvera.

Page 13: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

U izradi programa postoje sledeće faze:

� postavka problema,

� projektovanje programa,

� razvoj programa,

� ispitivanje performansi programa i

� završno uobličavanje programa.

Page 14: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Kreiranje liste programa

� Zahteva od analitičara da pregleda dijagram toka podataka (DFD - data flow diagram) za predloženi sistem, a isto tako i rečnik podataka i formate izveštaja (iz dizajna izlaza), šeme (iz i formate izveštaja (iz dizajna izlaza), šeme (iz dizajna baze podataka) i kolekciju podataka za formate ekrana (iz dizajna ulaza).

Page 15: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Kreiranje liste programa

� Za vreme pregleda, analitičar izdvaja tačku od koje sistem treba da proizvodi izveštaje i ispituje svaku aktivnost procesa kao potencijalni program. potencijalni program.

� Analitičar traži osnovne procese, koji dalje nisu deljivi.

� Ovi procesi su idealni kandidati za programe.

Page 16: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIZAJN

Page 17: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIDZAJN

� Posle definisanja glavne svrhe svakog programa, analitičar deli svaki program u module, od kojihsvaki izvršava jednu funkciju i ima početnu izavršnu tačku, koje je moguće identifikovati.završnu tačku, koje je moguće identifikovati.

� Svaka od ovih funkcija formira poseban modul, koji je povezan sa drugim modulima na određeninačin.

Page 18: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Razlozi koji govore u prilog modularnoj izgradnji programa

� 1) kod velikih nesegmentiranih programa, troši se mnogo vremena na njihovo održavanje,

� 2) kod nemodularnih programa mnogo teže se pronalaze greške,pronalaze greške,

Page 19: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Razlozi koji govore u prilog modularnoj izgradnji programa

� 3) modulnost u dizajnu programa omogućuje:

� - jednostavnost izrade i najsloženijih

programa,

- veću pouzdanost programa,� - veću pouzdanost programa,

� - smanjenje razvojnih troškova,

� - lako proširenje programa,

� - lako uključivanje novih modula,

� - lakšu kontrolu izrade programa.

Page 20: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIZAJN

� Ne koristi svaka organizacija analitičara za modularni dizajn.

� Neke organizacije dodeljuju posao modularnog dizajna programerima, a koriste analitičare samo dizajna programerima, a koriste analitičare samo da pregledaju dizajne.

� U malim organizacijama programer, odnosno analitičar može sam da uradi sve.

Page 21: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIZAJN

� Modul čini grupa izvornih instrukcija smeštenih između određenih granica, koje imaju svoje ime.

� Modulima se daju imena, koja odražavaju njihove aktivnosti (npr. otvaranje, štampanje podataka, aktivnosti (npr. otvaranje, štampanje podataka, zatvaranje i dr.).

� Preko imena modula vrši se njegovo pozivanje.

Page 22: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIZAJN

� Funkcija modula je da izvrši određenutransformaciju ulaza u izlaz.

Page 23: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIZAJN

� Na primer, kod postupka ažuriranja neke datoteke, najčešće logičke celine koje mogu da predstavljaju module su: inicijalizacija i otvaranje datoteke, formiranje novihslogova, ažuriranje postojećih slogova (izmena sloga ibrisanje sloga) i zatvaranje datoteka. brisanje sloga) i zatvaranje datoteka.

� Moduli su odvojene, posebne funkcijske celine, koje je moguće identifikovati.

Page 24: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIZAJN

� Da bi se prilagodili standardima struktuirane metodologije, svaki modul treba da sadrži samo jednu ulaznu i jednu izlaznu tačku.

� Najbolji moduli sadrže jedan ulaz, jedan izlaz i � Najbolji moduli sadrže jedan ulaz, jedan izlaz i jednu svrhu.

Page 25: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MODULARNI DIZAJN

� Podela programa u module pojednostavljuje posao, čineći ga lakšim za razumevanje.

� Osim toga, ispitujući svaki modul posebno, analitičar može lakše da uoči moguće logiške analitičar može lakše da uoči moguće logiške greške.

� Što se pre otkriju nastale greške, to ih je lakše popraviti.

Page 26: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Spajanje modula

� Posle definisanja i usavršavanja svih modula, analitičar počinje važan posao u određivanju veza koje spajaju module.

� Glavno pravilo je da očuvamo veze između � Glavno pravilo je da očuvamo veze između modula na minimumu.

Page 27: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Spajanje modula

� Koristimo termin spajanje da bi uputili na mere kontrole i nezavisnost između modula.

� Spajanje nam dozvoljava da se moduli organizuju na način da se smanji veza između modula na na način da se smanji veza između modula na minimum.

Page 28: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Spajanje modula

� Programi su kolekcija modula, povezanih međusobno u hijerarhijskom redosledu ili u obliku stabla.

� Neki moduli služe kao roditelji i oni kontrolišu � Neki moduli služe kao roditelji i oni kontrolišu samo onu decu module, koji su direktno pod njihovom nadležnošću.

Page 29: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

KONTROLNE STRUKTURE

� Svi programi mogu da se napišu u obliku jedne odtri osnovne kontrolne strukture: sekvence, odluke iponavljanja ili iteracije.

� Kontrolna struktura sekvence opisuje serije akcija� Kontrolna struktura sekvence opisuje serije akcija(tj. naredbi), koje slede jedna iza druge u linijskomredu, zbog čega se ova kontrolna struktura nazivai linijska struktura.

Page 30: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

KONTROLNE STRUKTURE

� Osnovna karakteristika programa saovom kontrolnom strukturom jeste dase pri jednom izvršavanju programasvaka naredba izvrši jedanput.svaka naredba izvrši jedanput.

� U jednostavnim primerima i ceoprogram može obrazovati linijskustrukturu.

Page 31: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

KONTROLNE STRUKTURE

� Kontrolna (razgranata) struktura odluke opisuje situaciju u kojoj akcija zavisi od toga koji se od dva uslova ispunjava.

� Postoje dve grane, jedna grana označena sa DA, � Postoje dve grane, jedna grana označena sa DA, koja se izvršava kada je ispunjen dati uslov i druga označena sa NE, koja se izvršava kada nije ispunjen dati uslov.

Page 32: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

KONTROLNE STRUKTURE

� Ponavljanje (iteracija ili petlja) predstavlja treću vrstu kontrolne strukture.

� Naziva se i ciklička struktura.

� Mogućnost obrazovanja programskih ciklusa � Mogućnost obrazovanja programskih ciklusa znatno smanjuje dužinu programa.

Page 33: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

KONTROLNE STRUKTURE

� Za organizaciju programskog ciklusa moramo poznavatikoje naredbe čine ciklus i kako se izlazi iz ciklusa.

� Naredbe koje čine ciklus zovemo telo ciklusa, a uslov pod kojim se izlazi iz ciklusa zovemo izlazni kriterijum. kojim se izlazi iz ciklusa zovemo izlazni kriterijum.

� Prema tome kakav je izlazni kriterijum, cikluse delimo nabrojačke i uslovne.

Page 34: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

KONTROLNE STRUKTURE

� Ciklus u kome je broj ponavljanja ciklusa kriterijumza izlazak iz ciklusa zovemo brojački ciklus.

� Uslovni ciklus predstavlja zapis po kome se bloknaredbi izvršava sve dok je uslov tačan.naredbi izvršava sve dok je uslov tačan.

� Kada uslov postane netačan, ciklus se završava iprogram nastavlja izvršavanje naredbom koja

sledi iza tela ciklusa.

Page 35: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

� RAZMATRANJA O PRIHVATANJU PROGRAMSKOG JEZIKA

Page 36: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Izbor odgovarajućeg programskog jezika

� Pošto menadžment odobri sistemski dizajn, analitičar bira odgovarajući programski jezik koji će se koristiti.

U različitim organizacijama postoje različiti � U različitim organizacijama postoje različiti pristupi razmatranju o prihvatanju nekog programskog jezika.

� Ako postoji neko ograničenje, analitičar može da izabere programski jezik koji najviše odgovara aplikaciji.

Page 37: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na:

PROGRAMSKI JEZICI

računara programske jezike delimo na:

� mašinski zavisne (mašinski i simbolički jezik)

� mašinski nezavisne (jezici višeg nivoa)

Page 38: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

MAŠINSKI JEZICI

– Izgrađeni su nad binarnom azbukom (0,1)

– Nije potrebno prevođenje

– Vezan je za konkretan računar (svaka – Vezan je za konkretan računar (svaka familija procesora ima svoj mašinski jezik)

Page 39: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

Mašinski zavisni jeziciSimbolički jezici

– Uvode mnemotehničke skraćenice za operacije i simboličke oznake podataka

– Jednoj naredbi mašinskog jezika odgovara jedna naredba simboličkogjedna naredba simboličkog

Page 40: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

� Program koji prevodi simbolički u mašinski jezik zove se asembler.

� Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje

ASSEMBLER

jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara.

Page 41: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

ASSEMBLER

� Obično se koriste za programiranje računara za interakciju računara sa I/O uređajima : – štampačima

– skenerima– skenerima

– uređajima za čuvanje podataka,...

� Njime su pisani programi poznati kao drajveri.

Page 42: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

JEZICI VIŠEG NIVOA

� Bliži su prirodnom jeziku, čitljiviji i lakši za pisanje programa.

� Imaju visok stepen nezavisnosti od arhitekture računaraarhitekture računara

Page 43: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PREMA NAČINU REŠAVANJA PROBLEMA

– Proceduralne – dajemo računaru kompletan skup instrukcija kojim se rešava problem, tj. dajemo mu algoritam za rešavanje zadatka (pa se zovu i algoritamski). Tu spadaju: Pascal, Cobol, C, Basic, Fortran, mašinski,...

– Deklarativne – opisujemo šta znamo o problemu i šta želimo da dobijemo rešavajući ga, a sistem (interpreter) sam dolazi do postupka za rešavanje problema. Primeri deklarativnih jezika su Prolog i SQL.

Page 44: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

NA OSNOVU NAČINA ALOKACIJE MEMORIJE:

– Programske jezike sa statičkom alokacijom memorije (C++, C#, Java, Pascal,...).

– Programske jezike sa dinamičkom – Programske jezike sa dinamičkom alokacijom memorije (Ruby, Lisp, JavaScript i Python).

Page 45: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PODELA PROGRAMSKIH JEZIKA

– Objektno orijentisani jezici (60.1%)

– Proceduralni jezici (35.0%)

– Funkcijski jezici (3.3%)– Funkcijski jezici (3.3%)

– Logički jezici (1.6%)

Page 46: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

� Funkcije se primenjuju na argumente i vrednosti.

� Vraćene vrednosti se koriste kao argumenti za druge funkcije.

FUNKCIJSKI JEZICI

� Primer je Lisp.

Page 47: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

� Menjali su se i razvijali tokom vremena.

– Fortran i Cobol spadaju u prve jezike višeg nivoa.

– Dolazi do razvoja strukturiranih programskih jezika (Algol, Pascal,...)

PROCEDURALNI JEZICI

(Algol, Pascal,...)

– Sledeća faza je razvijanje modularnih programskih jezika koji funkcionišu tako što razbijaju program na manje celine (module) gde svaki modul obavlja određenu funkciju.

Page 48: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

– Jezici poslednje generacije.

– Objekti su jedinice informacija koje sadrže podatke kao i metode za procesiranje i rad sa podacima.

– Da bismo koristili gotov objekat ne moramo da znamo

OBJEKTNO ORIJENTISANI JEZICI

– Da bismo koristili gotov objekat ne moramo da znamo kako je on pravljen niti šta je u njemu, već samo kako i šta on radi.

– U OO jezike se ubrajaju : Java, C++, Python...

Page 49: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

� Pripadaju klasi deklarativnih (neproceduralnih) programskih jezika.

� Zasnovani su na predikatima (logičkim

LOGIČKI PROGRAMSKI JEZICI

� Zasnovani su na predikatima (logičkim izrazima).

� Prolog (PROgramming in LOGic)

� Datalog

Page 50: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

� Razvoj programskih jezika je veoma brz.

� Posebno je uslovljen razvojem hardvera i komunikacija.

PROGRAMSKI JEZICI

� Sve navedene podele nisu striktne, jer razvojemneki programski jezik može da preuzme dobra rešenja iz drugih jezika.

Page 51: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

www.tiobe.com TIOBE index

Page 52: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

www.tiobe.com TIOBE index

Page 53: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

www.tiobe.com TIOBE index

Page 54: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

www.tiobe.com TIOBE index

Page 55: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROGRAMSKE SPECIFIKACIJE

Imaju formu izveštaja sa sledećim elementima:

� sistemski pregled,

� dijagram toka podataka,

� format izlaznog izveštaja,

� šema baze podataka,

� izgled ekrana ili formati ulaza,

� definicije programa,

� opisi modula.

Page 56: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROGRAMSKE SPECIFIKACIJE

� Sada kada ima definisane programe, planirane module, izabrane kontrolne strukture, razložene i obrađene module, utvrđene veze između modula i izabrani utvrđene veze između modula i izabrani programski jezik, analitičar sjedinjuje izlaze iz svih drugih faza dizajna i obrazuje programske specifikacije.

Page 57: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

SISTEMSKI PREGLED

� U ovom delu procesa dizajna prikuplja se i sumira sav materijal koji je proizveden u toku prethodnih faza dizajna.

� Sistemski pregledi često uključuju i opise metoda kolekcije podataka i sistemskihoperacija, objašnjenja svrhe svakog programa unutar sistema i šemu programiranja - plus imena analitičara, programera i svih individualnih programa.

Page 58: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

DIJAGRAM TOKA PODATAKA

� Razvijen u toku analize i možda usavršen u toku dizajna, DFD (dijagram toka podataka) orijentiše čitaoca gde se on nalazi u sistemu.

Page 59: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

FORMAT IZLAZNOG IZVEŠTAJA

� Razvijeni na početku faze dizajna, formati izlaznog izveštaja, takođe, obrazuju deo programskih specifikacija.

Page 60: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

ŠEMA BAZE PODATAKA

� Četvrta komponenta programskih specifikacija je šema baze podataka, koja se može napisati korišćenjem, na primer,Oracle-ovog SQL-a.Oracle-ovog SQL-a.

Page 61: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

IZGLED EKRANA ILI FORMATI ULAZA

� Dizajni ekrana specificiraju zahteve koji su vezani za unos podataka.

� Dizajn ekrana treba da specificira tipove podataka (numerički, alfanumerički ili drugi, podataka (numerički, alfanumerički ili drugi, koje podržava DBMS) i da definišu zahteve.

Page 62: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

DEFINICIJA PROGRAMA

� Definicije programa i opisi modula završavaju specifikaciju.

� Definicija programa je doslovan opis cilja i svrhe programa. svrhe programa.

Page 63: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROVERA DIZAJNA

� Obezbeđuje pažljivo ispitivanje sistemskog dizajna i programskih specifikacija.

� U toku ove faze analitičar, programer (ili vođa � U toku ove faze analitičar, programer (ili vođa programerskog tima), drugi analitičari i nekada i korisnik kritikuju specifikacije u pokušaju da lociraju greške modula, da provere dovršenost i da osiguraju jasnoću konačnog programa.

Page 64: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROVERA DIZAJNA

� Kao zaključak provere analitičar može prostudirati probleme, napraviti potrebne ispravke i onda pustiti ispravljen sistem i programske specifikacije na dalje programske specifikacije na dalje razmatranje.

� Ako tim nađe dosta grešaka može da predvidi da se izvrši naknadna provera.

Page 65: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PROVERA DIZAJNA

� Pošto provera ne bi trebalo da budeocenjivanje analitičarevog rada, već bi trebalo da osigura kvalitet, onda nikakav formalan rezime ne ide menadžmentu.formalan rezime ne ide menadžmentu.

� Provera nije test softvera, ali je prilika da se uoče greške, pre nego što one porastu.

� Testiranje je važan deo svih projekata razvojasoftvera, ali se ostvaruje u trećoj fazi, implementaciji softvera.

Page 66: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PREGLED DIZAJNA

� Kada analitičar ispravi sve greške i doda sve nedostajuće elemente, tada menadžment, korisnici i analitičar izvršavaju formalan pregled dizajna. pregled dizajna.

� Tokom ove prezentacije sistema svi proučavaju programske specifikacije.

Page 67: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PREGLED DIZAJNA

� Analitičari bi trebalo da povedu dosta računa tokom ovog pregleda, zato što on obezbeđuje poslednju šansu svim zainteresovanim stranama da provere da li će sistem ispuniti stranama da provere da li će sistem ispuniti potrebe organizacije uz prihvatljive troškove i planirana ograničenja.

Page 68: PROJEKTOVANJE SOFTVERA - ekof.bg.ac.rs · PROJEKTOVANJE SOFTVERA Kvalitet i pisanje softvera u celini, jošuvek u značajnoj meri zavise od inventivnosti i veštine programera. Da

PREGLED DIZAJNA

� U nekim slučajevima, promene u poslednjemčasu mogu odložiti razvijanje sistema, aliobavljanje promena će sada manje koštatinego kada bi se one vršile pošto nego kada bi se one vršile pošto programiranje otpočne.

� Ako se svi slažu da sistem treba da produžida se razvija, memorandumom se formalnoovlašćuje sledeći korak.