1/39
Prezentacija 3
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No study sessions yet.
Šta je softverski proces?
Softverski proces je skup definisanih aktivnosti, metoda i pravila koji se koriste za razvoj i održavanje softvera. On određuje kako se softver pravi, a ne samo šta se pravi.
Šta opisuje procesni model razvoja softvera?
Procesni model opisuje redosled faza razvoja softvera i način na koji su te faze povezane. On predstavlja apstrakciju realnog razvojnog procesa.
Koji su osnovni ciljevi procesnih modela?
Ciljevi procesnih modela su kontrola razvoja, smanjenje rizika i poboljšanje kvaliteta softvera. Oni omogućavaju planiranje i praćenje projekta.
Koje su tipične faze razvoja softvera?
Tipične faze su analiza zahteva, dizajn, implementacija, testiranje i održavanje. Sve faze su međusobno zavisne i jednako važne.
Šta su artefakti u softverskom procesu?
Artefakti su planirani izlazi aktivnosti, kao što su dokumenti, modeli, izvorni kod i test slučajevi. Oni služe kao ulaz za naredne faze procesa.
Zašto su rane faze razvoja posebno važne?
Greške nastale u ranim fazama, posebno u analizi zahteva, kasnije su najskuplje za ispravljanje. Zato je važno precizno definisati zahteve na početku.
Šta je vodopadni (Waterfall) model?
Vodopadni model je sekvencijalni procesni model u kome se faze izvršavaju jedna za drugom. Sledeća faza počinje tek kada se prethodna završi.
Koja je osnovna pretpostavka vodopadnog modela?
Pretpostavka je da se svi zahtevi mogu potpuno i tačno definisati na početku projekta. Promene tokom razvoja se ne očekuju ili su nepoželjne.
Koje su prednosti vodopadnog modela?
Vodopadni model je jednostavan za razumevanje i lak za upravljanje. Pogodan je za projekte sa stabilnim i jasno definisanim zahtevima.
Koji su glavni nedostaci vodopadnog modela?
Nedostatak fleksibilnosti i kasno otkrivanje grešaka su najveći problemi. Funkcionalan softver se dobija tek na kraju projekta.
Zašto se vodopadni model i dalje koristi?
I dalje se koristi zbog svoje jednostavnosti i jasne strukture. Često služi kao referentni model za poređenje sa drugim pristupima.
Da li postoji jedinstvena verzija vodopadnog modela?
Ne, u literaturi postoji više varijanti vodopadnog modela sa različitim fazama. Razlike zavise od autora i tipa projekta.
Kako Jacobson deli fazu dizajna?
Jacobson deli dizajn na preliminarni i detaljni dizajn. Time se omogućava bolja kontrola složenih sistema.
Kako je testiranje organizovano kod Jacobson-a?
Testiranje se vrši u više nivoa, od testiranja komponenti do testiranja celog sistema. Time se greške otkrivaju postepeno.
Koja je uloga CASE alata u procesnim modelima?
CASE alati podržavaju detaljno definisane faze i veliki broj artefakata. Koriste se pre svega u velikim industrijskim projektima.
Šta je Unified Software Development Process (USDP)?
USDP je objektno-orijentisani proces razvoja softvera zasnovan na UML-u. Predstavlja osnovu za Rational Unified Process.
Koje faze obuhvata USDP?
USDP obuhvata zahteve, analizu, dizajn, implementaciju i testiranje. Poseban fokus je na modelovanju sistema.
Koja je uloga use case dijagrama u USDP-u?
Use case dijagrami se koriste za opis funkcionalnosti sistema iz ugla korisnika. Oni predstavljaju osnovu za dalju analizu i dizajn.
Kako Balzert definiše faze razvoja softvera?
Balzert uvodi faze planiranja, definicije, dizajna, implementacije, prihvatanja i održavanja. Posebno naglašava odluku o nastavku projekta.
Zašto je faza uvođenja (deployment) značajna?
U ovoj fazi softver se instalira kod korisnika i obezbeđuje se obuka. Time sistem postaje stvarno operativan.
Zašto se postavlja pitanje „koja faza je najvažnija“?
Pitanje se postavlja kako bi se naglasio značaj svake faze razvoja. Zaključak je da nijedna faza nije najvažnija, jer greške u bilo kojoj mogu ugroziti ceo projekat.
Koja faza ima najveći uticaj na ukupne troškove?
Održavanje ima najveći uticaj na ukupne troškove softvera. Tokom održavanja se ispravljaju greške i prilagođava sistem novim zahtevima.
Kako greške iz ranih faza utiču na projekat?
Greške iz ranih faza se kasnije teže i skuplje ispravljaju. Zato je važno rano otkrivanje problema.
Šta podrazumeva iterativno–inkrementalni razvoj?
Iterativno–inkrementalni razvoj podrazumeva ponavljanje faza razvoja uz postepeno dodavanje funkcionalnosti. Svaka iteracija daje funkcionalan deo sistema.
Koja je razlika između iterativnog i inkrementalnog?
Iterativni razvoj znači poboljšavanje postojećih funkcionalnosti, dok inkrementalni razvoj znači dodavanje novih. U praksi se ova dva pristupa najčešće kombinuju.
Zašto je iterativni pristup pogodniji od vodopadnog?
Omogućava ranije otkrivanje grešaka i smanjenje rizika. Korisnik ranije dobija funkcionalan softver.
Šta je Rational Unified Process (RUP)?
RUP je iterativni i inkrementalni objektno-orijentisani proces razvoja softvera. Zasniva se na UML-u i jasno definisanim fazama.
Koje faze obuhvata RUP?
RUP obuhvata faze Inception, Elaboration, Construction i Transition. Svaka faza se sastoji od više iteracija.
Zašto se kaže da je RUP dvodimenzionalan?
Zato što kombinuje faze i iteracije. Aktivnosti se odvijaju paralelno kroz više iteracija u svakoj fazi.
Da li su faze i aktivnosti isto u RUP-u?
Ne, faze i aktivnosti nisu isto. Faza označava period razvoja, dok se aktivnosti javljaju u svim fazama sa različitim intenzitetom.
Šta je V-model?
V-model je proširenje vodopadnog modela koje naglašava ulogu testiranja. Testiranje je povezano sa svakom fazom razvoja.
Kako je testiranje organizovano u V-modelu?
Svaka razvojna faza ima odgovarajuću test fazu. Testiranje se planira na osnovu zahteva, dizajna i koda.
Zašto je V-model važan u standardizovanim projektima?
Zbog jasne veze između faza razvoja i testiranja. Često se koristi u javnim i bezbednosno kritičnim sistemima.
Koja je razlika između generaliste i specijaliste?
Generalista učestvuje u svim fazama razvoja, dok je specijalista fokusiran na jednu oblast. Izbor zavisi od organizacije i projekta.
Koja je uloga softverskog inženjera u procesu?
Softverski inženjer učestvuje u svim fazama razvoja softvera. Njegova uloga je da obezbedi kvalitet i konzistentnost procesa.
Koja je uloga softverskog arhitekte?
Softverski arhitekta je specijalista za dizajn i arhitekturu sistema. On donosi ključne tehničke odluke.
Zašto ne postoji univerzalni procesni model?
Zato što se projekti razlikuju po veličini, složenosti i zahtevima. Procesni model se bira prema konkretnom kontekstu.
Koja je uloga procesnih modela u softverskom inženjerstvu?
Procesni modeli obezbeđuju strukturu i kontrolu razvoja. Oni pomažu u planiranju, praćenju i unapređenju kvaliteta softvera.
Da li su procesni modeli prisutni samo u softveru?
Ne, procesni modeli postoje u svim granama inženjerstva. Softverski procesi su prilagođeni specifičnostima softvera.
Koja je glavna poruka prezentacije?
Ne postoji savršen procesni model. Uspeh projekta zavisi od pravilnog izbora i prilagođavanja modela.