REŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile Opterecenja
T 2 zivotni ciklus i metodologije razvoja softvera
1. T-2: Životni ciklus i metodologije razvoja softvera
dr Zoran Jeremić
zoran.jeremic@gmail.com
2. Sadržaj
1. Uvod
2. Životni ciklus razvoja softvera
3. Metodologije razvoja softvera
T-2: Životni ciklus i metodologije razvoja softvera 2
3. Uvod
Softversko inženjerstvo možemo definisati kao sistemski
pristup razvoju, korišćenju, održavanju i odumiranju softvera.
Pored isporuke softvera, visok kvalitet, mali troškovi i kratak
vremenski rok su dodatni ciljevi koje softverski inženjer mora
da dostigne.
Kvalitet i produktivnost konačnog proizvoda zavise od veštine
ljudi uključenih u projekat, procesa koji koriste za različite
zadatke u projektu i alata koje koriste.
U softverskom inženjerstvu glavni fokus je dat na procesima.
Osnovni zadatak procesa je da pomogne ljudima da postignu
veći kvalitet i produktivnost kroz specifikaciju zadataka koje treba
uraditi i definisanjem načina na koji ih treba uraditi.
T-2: Životni ciklus i metodologije razvoja softvera 3
4. Životni ciklus razvoja softvera
Šta je informacioni sistem (IS)?
Hardver, softver, podaci, ljudi Sistem—Skup komponenti
i procedure koji funkcionišu koje međusobno sarađuju
zajedno da bi proizveli kako bi postigli zajednički cilj.
kvalitetne informacije.
U poslovanju se koriste
različiti tipovi sistema
T-2: Životni ciklus i metodologije razvoja softvera 4
5. Životni ciklus razvoja softvera
Šta je životni ciklus razvoja softvera?
(engl. System Development Life Cycle – SDLC)
Proces kroz koji stručnjaci različitih profila (analitičari,
projektanti, inženjeri, programeri, ...) i korisnici
informacionog sistema prave informacioni sistem.
T-2: Životni ciklus i metodologije razvoja softvera 5
6. Životni ciklus razvoja softvera
Koje su preporuke za razvoj sistema?
Grupisanje zadataka po fazama (grupama aktivnosti)
Uključivanje korisnika (bilo koje lice za koje se sistem
implementira)
Razvoj jasno definisanih standarda (procedure za koje
kompanija očekuje da zaposleni treba da ih primenjuju)
T-2: Životni ciklus i metodologije razvoja softvera 6
7. Životni ciklus razvoja softvera
Ko su učesnici u
životnom ciklusu
razvoja softvera?
T-2: Životni ciklus i metodologije razvoja softvera 7
8. Životni ciklus razvoja softvera
Šta je analitičar sistema?
Osoba odgovorna za
dizajn i razvoj
informacionog sistema
Veza između korisnika i
IT profesionalaca
T-2: Životni ciklus i metodologije razvoja softvera 8
9. Životni ciklus razvoja softvera
Šta je projektni tim?
Grupa ljudi koji rade na projektu od početka do kraja
Sastoji se od korisnika, analitičara sistema i drugih IT profesionalaca
Vođa projekta—jedan od članova tima koji upravlja i
kontroliše budžetom projekta i vremenskim planom
T-2: Životni ciklus i metodologije razvoja softvera 9
10. Životni ciklus razvoja softvera
Šta je izvodljivost?
Zakonska
izvodljivost
Procena koliko
će koristi Četiri testa
kompanija izvodljivosti: Operaciona
imati od izvodljivost
razvoja sistema
Izvodljivost
Ekonomska vremenskog
izvodljivost roka
(poznata i kao Tehnička
cost/benefit izvodljivost
analiza)
T-2: Životni ciklus i metodologije razvoja softvera 10
11. Životni ciklus razvoja softvera
Šta je dokumentacija?
Kolekcija i rezime podataka i
informacija
Obuhvata izveštaje, dijagrame,
programe i druge izveštaje
T-2: Životni ciklus i metodologije razvoja softvera 11
12. Životni ciklus razvoja softvera
Šest tehnika za prikupljanje podataka i informacija?
Analiza dokumentacije
Posmatranje
Upitnici
Intervjui
Joint-application
design (JAD) sesija
Istraživanje
T-2: Životni ciklus i metodologije razvoja softvera 12
13. Životni ciklus razvoja softvera
Koje su faze životnog ciklusa razvoja softvera?
Faza 2. Analiza
Izvođenje preliminarne analize
Faza 1. Planiranje Izvršenje detaljne analize:
Faza 3. Dizajn
Pregled projektnih Proučavanje trenutnog sistema Nabavka hardvera i
zahteva
Utvrđivanje korisničkih zahteva softvera, ukoliko je
Analiza prioriteta potrebno
Predlog rešenja
projektnih zahteva
Razvoj detalja
Dodeljivanje resursa sistema
Identifikovanje proj.
razvojnog tima
Faza 5. Podrška Faza 4. Implementacija
Revizije sistema Razvoj programa,
Identifikovanje grešaka i Instaliranje i testiranje novog
unapređenja sistema
Praćenje performansi sistema Obuka korisnika
Korišćenje novog sistema
T-2: Životni ciklus i metodologije razvoja softvera
13
14. Planiranje
Koji su razlozi za kreiranje ili modifikovanje informacionog
sistema?
Rešavanje
Unapređenje
problema u
postojećeg
postojećem
sistem
sistemu
Spoljašnji
Konkurentnost
uslovi
može voditi do
zahtevaju
promene
promenu
T-2: Životni ciklus i metodologije razvoja softvera 14
15. Planiranje
Šta je zahtev za održavanjem sistema?
Formalni zahtev za
novim ili modifikovanim
informacionim sistemom
Takođe zvan
projektni zahtev
T-2: Životni ciklus i metodologije razvoja softvera 15
16. Planiranje
Šta je faza planiranja?
Počinje kada upravni odbor primi projektni zahtev
Upravni
odbor—
rukovodeće telo
kompanije
Funkcije odbora:
Formiranje
Recenzija i Određivanje
razvojnog tima
odobravanja prioriteta Dodeljivanje
projekta za
projektnih projektnim resursa
svaki odobreni
zahteva zahtevima
projekat
T-2: Životni ciklus i metodologije razvoja softvera
17. Analiza
Šta je faza analize?
Izvršenje preliminarnog Izvršenje detaljne
istraživanja, poznato i kao analize
studija izvodljivosti
T-2: Životni ciklus i metodologije razvoja softvera 17
18. Analiza
Šta je preliminarno istraživanje?
Utvrđivanje tačne prirode problema ili unapređenja i
utvrđivanje da li je vredno truda
Zaključci se prezentuju u izveštaju o izvodljivosti, poznatom kao studija
izvodljivosti
T-2: Životni ciklus i metodologije razvoja softvera 18
19. Analiza
Šta je detaljna analiza?
1. Proučavanje kako trenutni
sistem funkcioniše
2. Utvrđivanje šta korisnik želi, šta
mu je potrebno i definisanje
zahteva
3. Predlaganje rešenja
Ponekad se zove logički
dizajn
T-2: Životni ciklus i metodologije razvoja softvera 19
20. Analiza
Šta je predlog projekta?
Procenjuje
izvodljivost
svakog
alternativnog
rešenja
Predstavlja se
Predlaže
upravnom
najizvodljivije
odboru, koji
rešenje za
donosi odluku o
projekat
tome kako će se
sistem razvijati
T-2: Životni ciklus i metodologije razvoja softvera 20
21. Analiza
Šta su moguća rešenja? Softver za
horizontalno
tržište—rađen za
potrebe mnogih
Kupovina paketskog softvera —softver kompanija
dostupan na tržištu
Softver za vertikalno
tržište—dizajniran za
Izrada sopstvenog korisničkog određenu industriju
softvera—softver razvijen prema
korisničkim zahtevima
Outsource—spolja razvijen softver
T-2: Životni ciklus i metodologije razvoja softvera 21
22. Dizajn
Šta je faza dizajna?
Definiše se arhitektura sistema (komponente, njihov
interfejs i ponašanje).
Izlaz:
• dokument koji opisuje arhitekturu
• plan implementacije
• analiza osnovnih prioriteta
• Plan testiranja
Razvoj svih detalja novog ili
modifikovanog informacionog
sistema
T-2: Životni ciklus i metodologije razvoja softvera 22
23. Dizajn
Šta je potrebno za nabavku novog softvera?
Identifikovanje svih hardverskih i softverskih zahteva
novog ili modifikovanog sistema
Razgovor sa drugim
Pretraživanje Weba
analitičarima sistema
Čitanje štampanih i
Razgovor sa
online trgovačkih
kompanijama za
časopisa, novina,
izradu softvera
oglasa…
T-2: Životni ciklus i metodologije razvoja softvera 23
24. Dizajn
Koja su tri osnovna dokumenta koja se koriste za pregled
tehničkih specifikacija?
Kupac Prodavac daje
definiše Zahtev za izjašnjavanjem cene za
proizvode navedene
koje želi proizvode
Prodavac bira
Zahtev za predlog
proizvod(e) koji
ispunjavanju
definisane zahteve i Manje formalni
predlaže cene metod koji koristi
standardnu formu
za dobijanje
informacije o
Zahtev za informacijom proizvodu ili usluzi
T-2: Životni ciklus i metodologije razvoja softvera
24
25. Dizajn
Kako analitičari sistema testiraju softverski proizvod?
Proučavanje referenci prodavca
Razgovor sa trenutnim korisnicima proizvoda
Demonstracije proizvoda
Korišćenje trial verzija softvera
Merenje performansi korišćenjem benchmark testova
T-2: Životni ciklus i metodologije razvoja softvera 25
26. Dizajn
Šta je detaljni dizajn?
Detaljna specifikacija dizajna za komponente u predloženom rešenju
Obuhvata nekoliko aktivnosti
Dizajn baze
Dizajn ulaza i izlaza Dizajn programa
podataka
T-2: Životni ciklus i metodologije razvoja softvera 26
27. Dizajn
Šta je mockup?
Funkcionalnosti sistema se predstavljaju crtanjem
elemenata korisničkog interfejsa.
Primer izgleda
ekrana predstavljen
korišćenjem alata za
kreiranje mockup-a
T-2: Životni ciklus i metodologije razvoja 27
http://www.balsamiq.com softvera
28. Implementacija
Šta je prototip?
Nekompletna verzija softvera koji se razvija.
Obično simulira samo nekoliko aspekata funkcionalnosti
eventualnog softvera i može biti potpuno drugačiji od kranjeg
proizvoda.
Omogućava korisnicima softvera da evaluiraju ono što su
developeri predložili kao rešenje.
Radni model za
predloženi sistem Izrada prototipa
previše rano može
dovesti do problema
T-2: Životni ciklus i metodologije razvoja softvera 28
29. Implementacija
Šta je computer-aided software engineering (CASE)?
Softverski alati dizajnirani da podrže aktivnosti
životnog ciklusa razvoja softvera
T-2: Životni ciklus i metodologije razvoja softvera 29
30. Implementacija
Šta je faza implementacije?
Cilj je da se konstruiše ili izgradi novi ili modifikovani
sistem a zatim isporuči korisnicima
Prelazak na novi sistem
Obuka korisnika
Instalacija i testiranje novog sistema
Razvoj programa
T-2: Životni ciklus i metodologije razvoja softvera 30
31. Implementacija
Koja su tri tipa testova koje izvršava projektni tim?
Testiranje Testiranje
jedinice sistema
Provera da li svaka
Provera da li svi
pojedinačna
programi u aplikaciji
komponenta
rade zajedno
funkcioniše
Testiranje
integracije
Provera da li
aplikacija radi sa
drugim aplikacijama
T-2: Životni ciklus i metodologije razvoja softvera 31
32. Podrška
Šta je obuka?
Pokazivanje
korisnicima kako će
koristiti hardver i
softver u sistemu
T-2: Životni ciklus i metodologije razvoja softvera 32
33. Podrška
Šta je faza podrške?
Obezbeđuje tekuću pomoć nakon implementacije sistema
Upravljanje analizom sistema nakon implementacije—vođenje
sastanaka da bi se utvrdilo da li se informacioni sistem ponaša prema
očekivanjima
Identifikovanje grešaka
Identifikovanje potencijalnih unapređenja
Praćenje performansi sistema
T-2: Životni ciklus i metodologije razvoja softvera 33
34. Modeli softverskih procesa
Šta je model procesa?
Uopšteno: razvojni plan koji definiše opšti proces razvoja
softverskog proizvoda
Preciznije: Definicija koja odredjuje koje aktivnosti se izvršavaju, od
strane kojih osoba u kojim ulogama; kojim redosledom će aktivnosti
biti izvršavane, koji proizvodi će biti razvijani i kako će se procenjivati
njihov kvalitet.
T-2: Životni ciklus i metodologije razvoja softvera 34
35. Pregled postojećih modela softverskih procesa
Metodologije razvoja softvera
T-2: Životni ciklus i metodologije razvoja softvera 35
36. Metodologije razvoja softvera
Metodologija je formalizovani proces ili skup iskustava za
kreiranje softvera
Skup pravila koje razvojni tim prati
Skup konvencija koje je organizacija odlučila da prati
Sistematičan, inženjerski pristup za organizovanje softverskih
projekata
T-2: Životni ciklus i metodologije razvoja softvera 36
37. Metodologije razvoja razvoja
Među najpoznatije metodologije spadaju:
Waterfall model
Waterfall model sa prototipom
Metodologija za paralelni razvoj
V model
Inkrementalni model
Spiralni model
Rapid Application Development (RAD)
Rational Unified Process
Extreme Programming (XP)
Scrum metodologija
T-2: Životni ciklus i metodologije razvoja softvera 37
38. Build and Fix model
Većina softvera je razvijena korišćenjem ovog modela. U
suštini ovde nema modela, specifikacije, ni dizajna.
T-2: Životni ciklus i metodologije razvoja softvera 38
39. Waterfall model
T-2: Životni ciklus i metodologije razvoja softvera 39
40. Waterfall model
Jedan od najstarijih modela
Dobar za rešavanje potpuno jasnih problema
bez izmena u zahtevima
Jednostavan i razumljiv za korisnika
Predstavlja
Vrlo apstraktan prikaz razvojnog procesa
Niz aktivnosti
Jasne granice između faza sa izlaznim
produktima
T-2: Životni ciklus i metodologije razvoja softvera 40
41. Waterfall model
Naziva se još i linearno-sekvencijalni model.
Svaka faza mora biti u potpunosti završena pre nego što
započne sledeća faza.
Na kraju svake faze, vrši se analiza da bi se utvrdilo da li
je projekat na dobrom putu i da li se treba nastaviti ili
obustaviti.
Ova analiza se naziva završna analiza faze.
T-2: Životni ciklus i metodologije razvoja softvera 41
42. Waterfall model
Tradicionalni pristup razvoju:
Definisanje
zahteva
Dizajn
softvera
Implementacija
(kodiranje)
Verifikacija
(testiranje)
Korišćenje
(održavanje)
T-2: Životni ciklus i metodologije razvoja softvera 42
43. Waterfall model
Prednosti:
Svaka faza ima specifične izlazne produkte i proces
analize.
U jednom trenutku radi se samo na jednoj fazi.
Dobar je za male projekte kod kojih su potpuno
definisani i jasni zahtevi.
Potkrepljuje stav “definiši pre dizajna” i “dizajniraj pre
implementacije”.
T-2: Životni ciklus i metodologije razvoja softvera 43
44. Waterfall model
Nedostaci:
Promena opsega u toku životnog ciklusa može ubiti
projekat.
Ne postoji radna verzija softvera sve do kraja
životnog ciklusa.
Velika je količina rizika i neizvesnosti.
Nije pogodan za složene i objektno-orjentisane
projekte.
Nije pogodan za dugotrajne i tekuće projekte.
Nije dobar za projekte kod kojih postoji srednji ili veliki
rizik od promene zahteva.
T-2: Životni ciklus i metodologije razvoja softvera 44
45. Waterfall model
Kada koristiti ovaj model?
Ovakav model se koristi kod projekata koji su jasni i nisu
podložni promenama u toku razvoja (npr. projekti odbrane)
Može se koristiti za projekte migracije, kod kojih će zahtevi ostati
isti ali se menja platforma ili jezik.
Takođe se može koristiti za projekte gde sami sponzori vrše
testiranje, s obzirom da do završetka projekta nema isporuke.
T-2: Životni ciklus i metodologije razvoja softvera 45
46. Waterfall model sa prototipom
Prototip je delimično razvijen proizvod.
Prototip pomaže
Dizajnerima da procene alternativne strategije dizajna (prototip
dizajna)
Korisnicima da razumeju kako će izgledati sistem (prototip
korisničkog interfejsa)
Prototip je koristan za verifikaciju i validaciju
T-2: Životni ciklus i metodologije razvoja softvera 46
47. Waterfall model sa prototipom
Može se koristiti kod scenarija gde ne postoje detaljne
informacije u vezi ulaza u sistem, potreba za obradom i
izlazom.
Omogućava klijentu da eksperimentiše sa radnom
verzijom produkta.
Razvojni proces se nastavlja samo ako je klijent
zadovoljan funkcionisanjem prototipa.
U toku određenih faza developer utvrđuje specifikaciju
klijentovih stvarnih potreba.
T-2: Životni ciklus i metodologije razvoja softvera 47
48. Waterfall model sa prototipom
T-2: Životni ciklus i metodologije razvoja softvera 48
49. Waterfall model sa prototipom
Prednosti:
Dizajner softvera i programer mogu dobiti povratne informacije
od korisnika u ranim fazama projekta.
Klijent i izvođač radova mogu uporediti da li softver ispunjava
specifikacije, prema kojima je softver napravljen.
Takođe omogućava softverskom inženjeru određeni uvid u
tačnost inicijalnih projektnih predračuna i da li se mogu ispuniti
predloženi vremenski rokovi.
T-2: Životni ciklus i metodologije razvoja softvera 49
50. Waterfall model sa prototipom
Nedostaci:
Klijenti često očekuju da će nekoliko minimalnih izmena na
prototipu zadovoljiti njihove potrebe, ne shvatajući da se u
žurbi izgradnje prototipa nije vodilo računa o celokupnom
kvalitetu softvera .
Programeri mogu izgubiti fokus o stvarnoj nameni
prototipa i kompromitovati kvalitet proizvoda, npr. mogu
primeniti neke neefikasne algoritme ili neodgovarajuće
programske jezike korišćene u razvoju prototipa
(uglavnom posledica lenjosti ili bliskosti sa jednostavnijim
metodama)
Prototip će teško biti prihvaćen na sudu u slučajevima
kada se klijent ne slaže da je developer ispunio svoje
obaveze. T-2: Životni ciklus i metodologije razvoja softvera 50
51. Waterfall model sa prototipom
Kada koristiti ovaj model?
Prototipovi su vrlo efikasni u analizi i dizajnu online sistema.
Sistemi sa malo interakcije korisnika i sistema, npr sistemi koji
uglavnom vrše kalkulacije, imaju malo koristi od ovog modela
Ponekada implementacija sistemskih funkcija može biti veoma
složena a potencijalne prednosti prototipova mogu biti veoma
male.
Prototip je veoma dobar za dizajn dobrog human-computer
interfejsa.
Jedna od najproduktivnijih upotreba prototipova do sada je bila
kao alata za iterativno inženjerstvo korisničkih zahteva i dizajn
korisničkog interfejsa.
T-2: Životni ciklus i metodologije razvoja softvera 51
52. Metodologija za paralelni razvoj
Metodologija je slična Waterfall modelu
Projekat je podeljen na manje projekte i svaka faza se
izvršava posebno za svaki od njih.
Razvojni proces se izvršava konkurentno i odvojeno za
svaki od potprojekata.
T-2: Životni ciklus i metodologije razvoja softvera 52
54. Metodologija za paralelni razvoj
Prednosti:
Smanjuje vreme razvoja
Manje su šanse da su potrebne prepravke
Nedostaci:
I dalje se koriste papirna dokumenta
Podprojekte je ponekada teško integrisati
T-2: Životni ciklus i metodologije razvoja softvera 54
55. V model
Mnogo je veći značaj aktivnosti testiranja nego kod Waterfall
modela. Procedure i uslovi testiranja se razvijaju u ranim fazama
životnog ciklusa pre implementacije.
Životni ciklus počinje zahtevima kao i kod waterfall modela.
Pre početka razvoja kreira se plan testiranja prihvatljivosti sistema
koji se fokusira na zadovoljenju funkcionalnosti definisanih
zahtevima.
U ranim fazama dizajna definiše se arhitektura sistema i dizajn.
Plan testiranja integracija se takode definiše u ovoj fazi kako bi se
utvrdilo da svi delovi funkcionišu zajedno.
U kasnijim fazama dizajna se dizajniraju komponente softvera i
testovi pojedinačnih jedinica.
U fazi implementacije se realizuje kodiranje. Po završetku
kodiranja, ranije planirani testovi se izvršavaju.
T-2: Životni ciklus i metodologije razvoja softvera 55
56. V model
T-2: Životni ciklus i metodologije razvoja softvera 56
57. V model
Prednosti
Svaka faza ima specifične produkte.
Veće su šanse za uspeh od Waterfall modela zbog razvoja
planova testova u ranim fazama životnog ciklusa.
U poređenju sa waterfall modelom vreme realizacije je kraće do
50%.
Daje dobre rezultate kod malih projekata čije zahteve je lako
razumeti.
Iskorišćenje resursa je veliko.
T-2: Životni ciklus i metodologije razvoja softvera 57
58. V model
Nedostaci
Vrlo je rigidan, kao i waterfall model.
Jako teško i skupo je postići malu fleksibilnost
Softver se razvija tokom faze implementacije, pa nema ranih
prototipova.
Model ne obezbeđuje rešenja problema nađenih u fazi testiranja.
T-2: Životni ciklus i metodologije razvoja softvera 58
59. V model
Kada koristiti ovaj model?
Kada vreme i troškovi predstavljaju ograničenje projekta.
Slično kao i kod Waterfall modela, ali aktivnosti testiranja koje
počinju veoma rano, doprinose smanjenju vremena razvoja i
troškova projekta.
T-2: Životni ciklus i metodologije razvoja softvera 59
60. Inkrementalni model
Kombinuje elemente liearnog sekvencijalnog modela sa
iterativnom filozofijom prototipova.
Svaka linearna sekvenca isporučuje uvećan softver.
Kod ovog modela, prvi inkrement je često osnovni
proizvod, dok se u ostalim inkrementima dodaju dodatne
funkcionalnosti.
T-2: Životni ciklus i metodologije razvoja softvera 60
62. Inkrementalni model
Nedostaci
Sistem mora imati “incremente”.
Incrementi moraju biti od značaja za korisnika.
Sveukupno, duže (značajno duže) vreme razvoja.
Biznis procedura se menja sa svakim incrementom.
T-2: Životni ciklus i metodologije razvoja softvera 62
63. Spiralni model
Sličan je inkrementalnom modelu, sa većim naglaskom na analizi
rizika.
Ima četiri faze: planiranje, analiza rizika, inženjerstvo i evaluacija.
Projekat više puta prolazi ove faze u iteracijama.
Zahtevi se analiziraju u fazi planiranja. U fazi analize rizika
identifikuju se rizici i alternativna rešenja. Prototip se kreira na kraju
faze analize rizika.
Softver se razvija u inženjerskoj fazi a na kraju faze se realizuje
testiranje. Faza evaluacije omogućava korisniku da evaluira projekat
pre nego što se pređe na narednu spiralu.
U spiralnom modelu ugaona komponenta predstavlja progres, a
radijus spirale predstavlja sveukupne troškove.
T-2: Životni ciklus i metodologije razvoja softvera 63
64. Spiralni model
T-2: Životni ciklus i metodologije razvoja softvera 64
65. Spiralni model
Prednosti:
Visok je stepen analize rizika
Dobar je za velike i kritične projekte.
Softver se proizvodi u ranim fazama životnog ciklusa.
T-2: Životni ciklus i metodologije razvoja softvera 65
66. Spiralni model
Nedostaci:
Može biti veoma skup model.
Analiza rizika zahteva visok stepen ekspertize.
Uspeh projekta je veoma zavistan od faze analize rizika.
Nije dobar za male projekte.
T-2: Životni ciklus i metodologije razvoja softvera 66
67. Spiralni model
Kada se koristi?
Za aplikacije koje imaju složeni grafički interfejs prema korisniku
i više-funkcionalni deo. Funkcionalnosi se mogu dodavati kroz
faze, a grafički interfejs u nekoj od finalnih faza.
Često se koristi u velikim projektima.
US vojska je usvojila ovaj model za svoj program budućih
borbenih sistema.
T-2: Životni ciklus i metodologije razvoja softvera 67
68. Rapid application development (RAD)
Inkrementalni proces razvoja softvera koji naglašava
veoma kratak razvojni ciklus
Predstavlja “high-speed” adaptaciju linearnog
sekvencijalnog modela u kome je brzi razvoj postignut
korišćenjem konstrukcije zasnovane na komponentama.
Ukoliko su zahtevi jasni omogućava razvoj funkcionalnog
sistema u kratkom periodu (npr. 60-90 dana)
T-2: Životni ciklus i metodologije razvoja softvera 68
69. Rapid application development (RAD)
Naglašava sledeće faze:
Poslovno modelovanje – tokovi informacija između
poslovnih funkcija
Modelovanje podataka – skupovi podataka potrebnih
za podršku poslovanju
Modelovanje procesa – skupovi podataka se
transformišu da bi ostvarili tokove informacije
neophodne za implementaciju poslovne funkcije.
Generisanje aplikacije – upotreba postojećih
programskih komponenti (kada je moguće)
Testiranje – s obzirom da se naglašava upotreba
postojećih komponenti, mnoge od njih su već
testirane.
T-2: Životni ciklus i metodologije razvoja softvera 69
71. Rapid application development (RAD)
Nedostaci:
Za velike ali skalabilne projekte, RAD zahteva
dovoljno ljudskih resursa koji bi kreirali odgovarajući
broj RAD timova.
RAD zahteva da se developeri i korisnici pridržavaju
RAD aktivnosti kako bi sistem završili na vreme u
mnogo kraćem vremenskom roku.
Nisu sve aplikacije pogodne za RAD. Ako sistem ne
može biti modularizovan na odgovarajući način,
kreiranje komponenti potrebnih za RAD može biti
problematično
RAD nije pogodan kada su tehnički rizici veliki.
T-2: Životni ciklus i metodologije razvoja softvera 71
73. Agilne metodologije
Uključuju iteracije sa kratkim vremenskim intervalima.
Razdvajaju zadatke na male inkremente sa minimalnim
planiranjem.
Mali timovi rade zajedno sa stakeholderima da definišu
brze prototipove, dokaze koncepata i druga vizuelna
sredstva za opisivanje problema koji se rešava.
Tim definiše zahteve za iteraciju, razvija kod, definiše i
izvršava integrisane testove a korisnici verifikuju
rezultate.
Verifikacija se izvršava mnogo ranije u razvojnom
procesu nego kod Waterfall modela
T-2: Životni ciklus i metodologije razvoja softvera 73
74. Agilne metodologije
Neki od osnovnih principa agilnih metodologija su:
Zadovoljstvo klijenta brzom, konstantnom isporukom korisnog
softvera.
Radni softver se često isporučuje (u pitanju su nedelje a ne
meseci).
Radni softver je principijelna jedinica napredka.
Čak i kasne izmene zahteva su dobrodošle.
Tesna, dnevna kooperacija između poslovnih ljudi i developera.
Konverzacija licem u lice je najbolja forma komunikacije.
Projekti se zasnivaju na angažovanju motivisanih individua, kojima
treba verovati.
Jednostavnost .
Samo-organizovani mali timovi (5-9 ljudi).
Konstantno prilagođavanje ipromenljivim softvera
T-2: Životni ciklus metodologije razvoja
okolnostima. 74
75. Agilne metodologije
Neke od najpoznatijih metodologija agilnog razvoja softvera:
Agile Modeling
Agile Unified Process (AUP)
Agile Data Method
Dynamic System Development Method (DSDM)
Essential Unified Process (EssUP)
Extreme programming (XP)
Feature Driven Development (FDD)
Getting Real
Open Unified Process (OpenUP)
Scrum
Lean software development
T-2: Životni ciklus i metodologije razvoja softvera 75
76. Extreme programming (XP)
Najčešće korišćena i najpoznatija agilna
metodologija
Zasnovana je na jednostavnosti, komunikaciji,
feedbacku i hrabrosti.
Timovi koriste jednostavnu formu planiranja i
praćenja kako bi odlučili šta sledeće da rade.
Timovi kreiraju softver u seriji malih, potpuno
integrisanih izdanja koja su prošla sve testove koje
je korisnik definisao.
Predstavnik korisnika je deo tima.
T-2: Životni ciklus i metodologije razvoja softvera 76
77. Extreme programming (XP)
Zasnovana je na 4 ključne aktivnosti: planiranje,
upravljanje, dizajniranje i kodiranje
Planiranje
Identifikuju se korisnički zahtevi.
Planiranjem verzija kreira se raspored verzija.
Često se prave mala izdanja.
Projekt je podeljen u iteracije.
Planiranje iteracije započinje svaku iteraciju.
T-2: Životni ciklus i metodologije razvoja softvera 77
78. Extreme programming (XP)
Upravljanje
Daje timu lokalni otvoreni radni prostor.
Određuje održiv korak.
Svaki dan započinje početnim sastankom.
Prati se brzina projekta.
Ljudi se razmeštaju.
Popravlja se XP kada dođe do problema.
T-2: Životni ciklus i metodologije razvoja softvera 78
79. Extreme programming (XP)
Class –
Dizajniranje Responsibility -
Jednostavnost. Collaboration
Korišćenje CRC kartica za dizajn sesija.
Kreiranje klinastih rešenja da bi se smanjio rizik.
Funkcionalnosti se ne dodaju u ranim fazama.
Ponovno planiranje kada god i gde god je potrebno.
T-2: Životni ciklus i metodologije razvoja softvera 79
80. Extreme programming (XP)
Kodiranje
Korisnik je uvek dostupan.
Kod se mora pisati tako da bude u skladu sa
standardima.
Kodira se test jedinice prvo.
Sav produkcioni kod je programiran u paru.
Samo jedan par integriše kod u jednom trenutku.
Česte integracije.
Određen je računar za integraciju.
Postoji kolektivno vlasništvo.
T-2: Životni ciklus i metodologije razvoja softvera 80
81. Extreme programming (XP)
Testiranje
Sav kod mora imati testove jedinica.
Sav kod mora proći sve testove jedinica pre nego što se može
staviti u upotrebu.
Kada se pronađe bag kreiraju se testovi.
Testovi prihvatljivosti se često izvršavaju a rezultati se objavljuju.
T-2: Životni ciklus i metodologije razvoja softvera 81