razvoj_softvera_i_softversko_inzenjerstvo
DESCRIPTION
UVOD U RAČUNARSTVO Katedra za računarstvo, ElektronskifakultetUniverzitetu Nišu Uvodu računarstvo Računarstvo i informatika 2010 Prof. dr Dragan Stojanović Razvojsoftvera i softversko inženjerstvo Uvod u računarstvo 2 Prof. dr Dragan StojanovićTRANSCRIPT
![Page 1: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/1.jpg)
Prof. dr Dragan Stojanović
Uvod u računarstvo
Računarstvo i informatika 2010
UVOD U RAČUNARSTVO
- Razvoj softvera i softversko inženjerstvo -
Katedra za računarstvo,
Elektronski fakultet Univerzitet u Nišu
![Page 2: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/2.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 2
Aloritmi i programiranje
Algoritam je konačan, uređen skup, nedvosmislenih izvršnih koraka za rešavanje određenog problema u konačnom vremenskom periodu sa konačnom količinom podatakaAlgoritam se opisuje tekstualnim i grafičkim simbolima u obliku dijagrama toka ili blok šemeProgramski jezici definišu skup instrukcija, njihovu sintaksu (format instrukcije i pravila za kombinovanje instrukcija i veće celine) i semantiku instrukcija (značenje instrukcije i akciju u programu koju izvršava)Program predstavlja sekvencu instrukcija napisanih u nekom programskom jeziku koje se mogu prevesti u instrukcije koje računar može direktno izvršiti (mašinske instrukcije)
![Page 3: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/3.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 3
Programski jezici
Generacije programskih jezikaMašinski jezikAsemblerski (simbolički) jezik i makrasemblerski jeziciProceduralni programski jezici (jezici visokog nivoa, 3. generacije): Pascal, C, C++, Java, Basic, C# Neproceduralni programski jezici (deklarativni programski jezici, jezici vrlo visokog nivoa, 4. generacije): Prolog, SQL (upitni jezik baze podataka), generatori programa, jezici za specifikacije, itd.Jezici veštačke inteligencije i prirodni programski jezici
![Page 4: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/4.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 4
Mašinski jezikMašinski jezik predstavlja skup mašinskih naredbi kojima se specificiraju elementarne operacije koje računar direktno prepoznaje i izvršava. Ove elementarne operacije su zadate u binarnom obliku i nazivaju se mašinske instrukcije i svaki procesor ima svoj skup ugrađenih mašinskih instrukcija koje direktno izvršava, dakle ove instrukcije su ugrađene u sam hardver računaraU početku jedini način za pisanje programa je bio korišćenjem mašinskog jezika, što je bio vrlo složen proces podložan greškama.Broj i vrsta mašinskih instrukcija ugrađenih u jedan računar zavisi od tipa i karakteristika procesora:
RISC i CISC tipovi procesora u zavisnosti od broja i kompleksnosti mašinskih instrukcija koje realizuju
![Page 5: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/5.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 5
Mašinske instrukcijeKategorije mašinskih instrukcija
Instrukcije za prenos podatakaAritmetičko-logičke instrukcijeInstrukcije za upravljanje tokom izvršenja programa (grananje, uslovne ili bezuslovne skokove, pozive potprograma, itd.)Ulazno-izlazne instrukcijeOstale instrukcije
Format mašinske instrukcijeKod operacije – binarni kod koji specificira datu operacijuSpecifikator adresnog moda – specificira način interpretacije operanda instrukcije Specifikator registra – definiše da li i koji registar procesora ušestvuje u operacijiOperand – specificira adresu operanda koja se tumači u zavisnosti od specifikatora adresnog moda
![Page 6: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/6.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 6
Asemblerski jezik
Programski jezik koji koristi simboličke oznake (mnemoničkekodove) za predstavljanje instrukcija mašinskog jezikaProgramer koristi ove alfanumeričke kodove umesto binarnih cifara, 0 i 1.Svakoj naredbi asemblerskog jezika odgovara jedna mašinska instrukcijaViše naredbi asemblerskog jezika koje čine neku funkcionalnu celinu može biti grupisano u jednu makro naredbu i time je formiran makroasemblerski jezik
![Page 7: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/7.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 7
Programski prevodioci
Prevode program napisan u višem programskoj jeziku u naredbe napisane u mašinskom jeziku (mašinske naredbe), koje procesor može direktno izvršavatiVrste programskih prevodioca
Asembleri i makroasemlberi – prevode program sa asemblerskog (makroasemblerskog) jezika, pri čemu se simbolička imena i oznake zamenjuju binarnim kodovimaKompilatori (kompajleri) – prevode program sa višeg programskog jezika u mašinski kodInterpretatori – prevode svaku naredbu programa i odmah je izvršavaju (interpretiraju)
![Page 8: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/8.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 8
Razvoj i izvršenje programaProgramski prevodilac (compiler) prevodi program napisan u nekom programskom jeziku (izvorni program, kod) u program napisan u mašinskom jeziku koji se naziva objektni program (kod)Povezivač (linker) je sistemski program integriše objektne kodove programskih modula i modula sistemskih biblioteka i formira izvršni program (kod) koji je u obliku datoteke (.exe) na diskuSistemski program punioc (loader) prenosi izvršni program sa diska u glavnu memoriju prilikom startovanja izvršenja programa (npr. dvostrukim klikom miša na ikonu programa) aktivira se proces i započinje izvršavanje mašinskih instrukcija programa
![Page 9: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/9.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 9
Razvoj programa
Editor teksta
Kompilator
Povezivač
Sistemska biblioteka
Izvorniprogram
Objektni program
Izvršni program
![Page 10: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/10.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 10
Programski jezici
Imperativni ili proceduralni programski jeziciFORTRAN, COBOL, Basic, C, Pascal, Ada
Objektno-oriejentisani programski jezici (uključuju i karakteristike proceduralnih)
SIMULA, Smalltalk, C++, Java, C#
Deklarativni (logički) programski jeziciProlog
Funkcionalni programski jeziciLISP, Scheme (verzija LISP), ML
![Page 11: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/11.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 11
Tipovi podatakaTip podataka definiše skup vrednosti koje podaci tog tipa mogu da imaju, način njihove memorijske reprezentacije, kao i operacije koje se mogu izvršavati nad podacima tog tipaOsnovni tipovi podataka
Celi brojevi (Integer, Long Integer). Programski jezici definišu nekoliko verzija celih brojeva različite veličine i opsega vrednosti u zavisnosti od broja bajtova koji se koriste za njihovu reprezentaciju. Operacije nad celim brojevima su standardne aritmetičke i relacione operacije.Realni brojevi jednostruke i dvostruke tačnosti (Real, Double). Operacije nad realnim brojevima su standardne aritmetičke i relacione operacije.Znakovi (Character) – predstavljeni ASCII kodom ili UNICODE (1 ili 2 bajta) Aritmetičke i logičke operacije nad znakovima odnose se na njihove kodove.Bool-ove vrednosti. Podaci ovog tipa imaju dve vrednosti: tačno i netačno (true, false). Logičke operacije nad ovim podacima (AND, OR, NOT, XOR, …)Nizovi znakova (String) – Sekvenca znakova koja se tretira kao jedinstven podatak, npr. “Ovo je string”. Operacije nad nizovima znakova su konkatenacija (spajanje) i relacione operacije u odnosu na leksikografsko uređenje
Promenljiva je lokacija u memoriji na koju se referencira identifikatorom (simboličkim imenom) i koja sadrži podatke određenog tipa
![Page 12: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/12.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 12
Upravljačke struktureUpravljačka struktura je instrukcija programa koja određuje redosled izvršavanja ostalih instrukcija programaUpravljačke strukture su: sekvenca, selekcija, petlja i poziv potprogama
Sekvenca predstavlja izvršenje instrukcija programa u sekvenci, jedne za drugom, dok se ne naiđe na instrukciju kojom se menja ovaj redosledSelekcija na osnovu ispunjenosti ili neispunujenosti određenog uslova određuje koje će instrukcije sledeće biti izvršavanePetlja ponavlja izvršenje određenog skupa instrukcija dok je (ne bude) zadovoljen određeni uslov. I selekcija i petlja uslov specificiraju logičkim (Bool-ovim) izrazomPoziv potprograma – započinje se sa izvršavanjem posebno izdvojene grupe instrukcija koje čine potprogram
Strukturno programiranje je metodologija programiranja u kojoj svaka logička jedinica programa treba da ima jedan ulaz i jedan izlaz
![Page 13: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/13.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 13
Bool-ov izraz
Bool-ov izraz predstavlja sekvencu konstanti, promenljivih ili izraza povezanih odgovarajućim operatorima čija je vrednost tačno ili netačnoBool-ov izraz može biti
Bool-ova konstanta (true, false) ili promenljiva
Dva ili više aritmetička ili znakovna izraza povezana relacionim operatorima (<, >, ≤≤≤≤, =, !=,…)
Dva ili više Bool-ova izraza povezana logičkim operatorima (AND, OR, NOT, XOR, EQV, …)
![Page 14: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/14.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 14
DeklaracijaInstrukcija programa kojom se pridružuje identifikator nekoj promenljivoj, funkciji ili nekom drugom elementu programskog jezika, tako da se programer može referencirati na taj element putem tog identifikatora (imena)Za imena elemenata ne mogu se koristiti rezervisane (ključne) reči programskog jezikaU zavisnosti od programskog jezika ista imena napisana različitim slovima (velikim ili malim) predstavljaju različita imenaPrimer deklaracija promenljivih u C++/Java
int num;float sum = 0.0;char per;
![Page 15: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/15.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 15
Naredba dodele i naredbe ulaza/izlazaNaredba dodele je naredba kojom se promenljivoj sa leve strane znaka jednakosti dodeljuje vrednost izraza navedenog sa desne strane znaka jednakosti u oblikupromenljiva = izraz
Primer: xp = asd * (t - 12.45) / 9.25;
Naredbe ulaza/izlaza se po strukturi i sintaksi veoma razlikuju u programskim jezicima visokog nivoaUlazne naredbe tretiraju ulazne podatke kao niz znakova podeljen u linije, a samom naredbom se definiše kako se tumače vrednosti definisane ovim znakovima (kao celi brojevi, realni brojevi, stringovi, itd.)Izlazne naredbe vrednosti promenljivih u odgovarajućem formatu prevode u niz znakova koji se prikazuje na monitoru, upisuje u datoteku ili prikazuje na štampaču.
![Page 16: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/16.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 16
Bool-ovizraz
Nula ili više naredbi programa u sekvenci
Ostale naredbeprograma
Nula ili više naredbi programa u sekvenci
tačno netačno
Naredba selekcijeNaredba selekcije (if naredba) omogućava programu da ispita vrednosti programskih promenljivih korišćenjem Bool-ovog izraza i u zavisnosti od vrednosti izraza izvrši određenu sekvencu naredbi
![Page 17: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/17.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 17
Primer if naredbe u programskim jezicima
VB
![Page 18: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/18.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 18
Naredba “češlja” (case)Da bi se ispitali višestruki uslovi, u granama if naredbe mogu biti nove if naredbe (ugnježdene if naredbe) Mnogi programski jezici visokog nivoa uključuju naredbu “češlja”, case (switch) naredbuOna omogućava izvršavanje različitih sekvenci naredbi u zavisnosti od diskretnih vrednosti promenljive ili izraza iz skupa definisanih verdnostiPrimer: switch op
case a1: sekvenca naredbi 1case a2: sekvenca naredbi 2…case an: sekvenca naredbi ndefault: sekvenca naredbi n+1
![Page 19: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/19.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 19
Naredbe petlje
Uslov izlaska iz petlje je zadat kao Bool-ov izraz čija se vrednost ispituje pre svakog prolaska kroz petlju, ukoliko je tačan (ili netačan) izlazi se iz petlje
Naredbe petlje omogućavaju višestruko izvršavanje istog bloka naredbi programaNaredba sa neodređenim brojem prolaza kroz petlju (while)
tačno Skup naredbiprograma
Bool-ovizraz
netačno
Ostale naredbeprograma
![Page 20: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/20.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 20
Petlja sa određenim brojem prolazaKoristi specijalnu promenljivu nazvanu brojač petlje, koja pri svakom izvršenju naredbi u petlji menja svoju vrednost počev od startne vrednosti, do konačne vrednosti za određeni inkrement (for naredba)Primer: for i = 1 to N
naredbe petljePrimer VB
![Page 21: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/21.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 21
Naredbe potprogramaPotprogram je deo programskog koda koji obavlja tačno određenu funkciju i koji se može izdvojiti kao posebna programska celina, sa odredjenim nazivom po kome se poziva u okviru ostalih programaPotprogram definiše listu identifikatora određenog tipa koji su neophodni za njegovo izvršavanje i to su parametri potprograma (fiktivni, formalni parametri)Pri pozivu potprograma uz naziv potrpograma, glavni program prosleđuje listu argumenata koji po broju, tipu i redosledu odgovaraju parametrima (stvarni parametri, argumenti)Prenos argumenata potprogramu
Po vrednosti – na osnovu parametra se očekuje da se vrednost argumenta kopira i prenese potprogramuPo referenci - na osnovu parametra se očekuje da se adresa (referenca) argumenta prenese potprogramu tako da je svakapromena argumenta u potpogramu vidljiva i u glavnom programu
![Page 22: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/22.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 22
RekurzijaRekurzija je sposobnost potprograma da poziva sam sebePri svakoj rekurziji postoje dva slučaja u zavisnosti od određenog uslova:
Izlaz iz potprogramaRekurzivni poziv istog potprograma sa smanjenom verzijom problema
Na primer, faktorijel broja N koji predstavlja proizvod svih celih brojeva od 0 do N, može se rekurzivno predstaviti :
N! = N * (N − 1)! i realiovati rekurzivnim potprogramom
![Page 23: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/23.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 23
Složeni tipovi podataka - SlogSlog (record, structura) je imenovana kolekcija heterogenih elemenata pri čemu se svakom elementu pristupa po imenu. Elementi sloga mogu biti različitog tipaPrimer deklaracije sloga u C++
Primer pristupa elementima sloga
![Page 24: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/24.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 24
Složeni tipovi podataka - Polje
Polje je imenovana kolekcija homogenih elemenata u kome se svakom elementu pristupa na osnovu pozicije u kolekciji koja se označava indeksom (-ima)
Jednodimenzionalno polje – nizDvodimenzionalno polje - matrica
Primer deklaracije niza u C++/Java
tenThings
![Page 25: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/25.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 25
Objektno-orijentisani programski jezici
Enkapsulacija – karakteristika programskog jezika kojom se u okviru strukture definišu atributi i funkcije (metodi) koje pristupaju atributima i obavljaju obradu nad njima. Ova struktura se naziva klasa, a objekti predstavljaju promenljive tipa klase (instance klase).
Deklaracija objekta klaseOsoba pl1
Postavljanje vrednosti atributa objekta
pl1.ime = “Petar”Poziv funkcije objekta
pl1.promeniIme(“Milan”)
Class Osoba
char ime[10]char prezime[20]int jmbg
promeniIme(char nIme)
![Page 26: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/26.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 26
Objektno-orijentisani programski jeziciNasleđivanje (inheritance) – definicija klase koja nasleđuje sve atribute i funkcije osnovne klase, i definiše specifične atribute i funkcije.Na primer, klasa Student nasleđuje klasu Osoba i definiše svoje atribute: broj indeksa, semestar, prosečna ocena, itd., kao i funkcije za pristup i obradu tih atributa koje su karakteristične za objekte te klasePolimorfizam – karakteristika objektno-orijentisanih programskih jezika da se u okviru klasa definišu funkcije sa istim nazivom i listom parametara, a da se u vreme izvršenja programa određuje koja će funckija bioti pozvana u zavisnosti od tipa objekta za koji je pozvana.Polimorfizam i nasleđivanje omogućavaju programeru da razvije hijerarhiju klasa koja se može upotrebiti u različitim aplikacijama
![Page 27: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/27.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 27
Softversko inženjerstvo
Računarska disciplina kojom se primenjuju inženjerski principi i metodologije u razvoju softveraProizvod softverskog inženjerstva (razvoja
softvera) nije samo softverska aplikacija već i svi prateći dokumenti, dijagrami, specifikacije koje su rezultat različitih faza u razvoju softvera
![Page 28: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/28.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 28
Životni ciklus softveraGlavne faze u razvoju softvera
PlaniranjeAnaliza ProjektovanjeImplementacijaTestiranjeOdržavanje
Prateće faze tokom razvoja softveraProcena izvodljivosti – procena izvodljivosti razvoja softvera u odnosu na vremenske rokove, raspoložive ljudske i materijalne resurse (hardver, softver, mreža, itd.), procena koliko je opravdan razvoj u odnosu na neophodna finansijska sredstva i ekonomske koristi od sistemaUpravljanje projektom – planiranje faza, održavanje vremenskih rokova i kontrola aktivnosti u toku životnog ciklusa softveraDokumentacija – generisanje dokumentacije za svaku fazu razvojaObezbeđenje kvaliteta – kontrola i postizanje visokog kvaliteta softverskog proizvoda
![Page 29: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/29.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 29
Planiranje i analiza
U okviru faze planiranja treba da se:Razmotre projektni zahtevi i utvrde prioritetiDodele resursi neophodni za izvođenje projekta: novac, ljudi, opremaOdredi razvojni tim za projekat
Faza analize definiše šta softver treba da radi i sadrži sledeće aktivnosti:
Preliminarno ispitivanje i formiranje studije izvodljivostiIstraživanje funkcionisanja postojećeg softverskog sistemaAnaliza i određivanje korisnikovih zahteva koje treba da zadovolji softver i definisanje specifikacije zahteva (funkcionalni zahtevi i nefunkcionalni zahtevi: performanse, pouzdanost, inetrakcija sa korisnikom i ograničenja)Preporuku mogućeg softverskog rešenja
![Page 30: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/30.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 30
Projektovanje i implementacija
Faza projektovanja definiše kako softver treba da radi i sadrži dve podfaze:
Arhitekturno projektovanje – definisanje arhitekture softvera sastavljene od međusobno zavisnih softverskih modula i komponenti i specifikacija njihove međusobne komunikacijeDetaljno projektovanje
• Projektovanje struktura podataka i baza podataka• Projektovanje korisničkog interfejsa za interakciju korisnika sa
softverskim sistemom• Projektovanje algoritama za funkcije i module
Faza implementacije sadržiRazvoj programa (programiranje) u određenom programskom jeziku (na primer, Java, C++) i programskom okruženju (Borland JBuilder, Microsoft Visual Studio.NET, Eclipse)
![Page 31: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/31.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 31
Testiranje i održavanjeFaza testiranja softvera sadrži aktivnosti
Testiranje modula softvera• Generisanje test primera• Izvođenje testiranja, otkrivanje i korekcija grešaka u softveru
metodama:– Bele kutije – test primeri su formirani tako da se testira svaka
naredba programa– Crne kutije – test primeri su formirani tako da se ispitaju sve
funkcije programa definisane u specifikaciji zahtevaTestiranje integracije modula u softverski sistem
Faza održavanja podrazumeva postupke modifikovanja softvera koji je isporučen i instaliran na računarima korisnika u cilju:
Unapređenja njegove funkcionalnosti u skladu sa novim korisničkim zahtevima ili usled novog hardverskog i softverskog okruženjaKorekcije grešaka koje su uočene u njegovom radu
![Page 32: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/32.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 32
Modeli procesa razvoja softveraProces razvoja softvera predstavlja skup postupaka i procedura u odgovarajućem redosledu s ciljem razvoja softverskog proizvodaModeli procesa razvoja softvera
Model vodopada (waterfall) – sve faze u razvoju softvera (analiza, projektovanje, implementacija, testiranje) se obavljaju sekvencijalno; tek nakon završetka jedne faze započinje druga. Nedostatak: relativno kasno nastaje prva verzije softvera, dok se sekvencijalno ne završe sve faze u razvoju softveraInkrementalni-iterativni model – Razvoj softvera se obavlja u inkrementima, svaki inkrement dodaje novu ili proširuje postojeću funkcionalnost softvera, i svaki inkremement se razvija kroz jedan ili više prolaza svih faza razvoja (analiza, projektovanje, implementacija, testiranje) nakon čega se integriše u do tada razvijenu celinu. Često se zasniva na razvoju prototipa – radnog modela zahtevanog softvera, koji poseduje osnovnu funkcionalnost i evolutivno se unapređuje do potpune funkcionalnosti
![Page 33: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/33.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 33
CASE (Computer Aided SoftwareEngineering)
Softversko inženjersto pomoću računara (Computer AidedSoftware Engineering)Softverski alati namenjeni podršci jedne ili više faza u procesu razvoja softvera, kao i automatizaciji određenih aktivnosti i postupaka u ovim fazamaPostoje kao nezavisni alati ili integrisani u celovit proizvod koji može da obuhvati alate za:
Analizu i projektovanje – razvoj šematskog prikaza i dijagrama koji definišu model softvera u odgovarajućoj fazi razvojaOdržavanje skladišta sa međusobno povezanim projektnim informacijamaRazvoj programa – automatizacija pisanja programa korišćenjem generatora koda na osnovu dijagrama i šema razvijenih u fazi projektovanja, kao i automatizacija generisanja test primera
![Page 34: Razvoj_softvera_i_softversko_inzenjerstvo](https://reader035.vdocuments.pub/reader035/viewer/2022062310/568bf4131a28ab89339cac54/html5/thumbnails/34.jpg)
Prof. dr Dragan Stojanović
Razvoj softvera i softversko inženjerstvo
Uvod u računarstvo 34
O-O analiza i projektovanje(notacije i dijagrami)
UML (Unified Modeling Language) – Unificirani JezikModeliranja – definiše grafičke i tekstualne dijagrame i notacije za opis i predstavljanje modela softvera u svakojfazi procesa razvoja softveraUML 2.0 definiše 13 dijagrama; neki od njih:
Dijagram slučajeva korišćenja (Use case) – defniše specifikacijuzahteva i opisuje zahtevanu funckionalnost sistemaDijagrami klasa i objekata – definiše statičku strukturu sistema u obliku klasa, njihovih atributa i funkcija, kao i objekataDijagrami sekvence i kolaboracije – definišu dinamičku strukturusoftvera i međusobnu interakciju između objekata koji čine softverDijagrami aktivnosti i stanja – definišu dinamičko ponašanje sistema, kao i tok upravljanja koji prevodi softver iz jednog u drugo stanjeDijagram komponenti – specificira interakciju softverskih komponentiDijagram razmeštaja – definiše hardversko i softversko okruženje softvera, kao i način instalacije softverskih modula na računarima povezanim u mrežu