T-2: Životni ciklus i metodologije razvoja softvera                dr Zoran Jeremić                  zoran.jeremic@gmail.com
Sadržaj          1. Uvod          2. Životni ciklus razvoja softvera          3. Metodologije razvoja softvera          T-...
Uvod Softversko inženjerstvo možemo definisati kao sistemski  pristup razvoju, korišćenju, održavanju i odumiranju softve...
Životni ciklus razvoja softveraŠta je informacioni sistem (IS)?  Hardver, softver, podaci, ljudi                      Sist...
Životni ciklus razvoja softveraŠta je životni ciklus razvoja softvera? (engl. System Development Life Cycle – SDLC) Proc...
Životni ciklus razvoja softvera Koje su preporuke za razvoj sistema?Grupisanje zadataka po fazama (grupama aktivnosti)Ukl...
Životni ciklus razvoja softveraKo su učesnici uživotnom ciklusurazvoja softvera?                    T-2: Životni ciklus i ...
Životni ciklus razvoja softveraŠta je analitičar sistema?          Osoba odgovorna za             dizajn i razvoj         ...
Životni ciklus razvoja softveraŠta je projektni tim?        Grupa ljudi koji rade na projektu od početka do kraja   Sastoj...
Životni ciklus razvoja softveraŠta je izvodljivost?                                                                       ...
Životni ciklus razvoja softveraŠta je dokumentacija?                Kolekcija i rezime podataka i                        i...
Životni ciklus razvoja softveraŠest tehnika za prikupljanje podataka i informacija?   Analiza dokumentacije   Posmatranj...
Životni ciklus razvoja softveraKoje su faze životnog ciklusa razvoja softvera?                                           F...
PlaniranjeKoji su razlozi za kreiranje ili modifikovanje informacionogsistema?                    Rešavanje               ...
PlaniranjeŠta je zahtev za održavanjem sistema?   Formalni zahtev za    novim ili modifikovanim    informacionim sistemom...
PlaniranjeŠta je faza planiranja?         Počinje kada upravni odbor primi projektni zahtev                               ...
AnalizaŠta je faza analize?             Izvršenje preliminarnog                  Izvršenje detaljne          istraživanja,...
AnalizaŠta je preliminarno istraživanje?   Utvrđivanje tačne prirode problema ili unapređenja i    utvrđivanje da li je v...
AnalizaŠta je detaljna analiza?                     1. Proučavanje kako trenutni                          sistem funkcioni...
AnalizaŠta je predlog projekta?                                        Procenjuje                                        i...
AnalizaŠta su moguća rešenja?                                                           Softver za                        ...
DizajnŠta je faza dizajna?     Definiše se arhitektura sistema (komponente, njihov      interfejs i ponašanje).          ...
DizajnŠta je potrebno za nabavku novog softvera?   Identifikovanje svih hardverskih i softverskih zahteva    novog ili mo...
DizajnKoja su tri osnovna dokumenta koja se koriste za pregledtehničkih specifikacija?       Kupac                        ...
DizajnKako analitičari sistema testiraju softverski proizvod?   Proučavanje referenci prodavca   Razgovor sa trenutnim k...
DizajnŠta je detaljni dizajn?   Detaljna specifikacija dizajna za komponente u predloženom rešenju                     Obu...
DizajnŠta je mockup?   Funkcionalnosti sistema se predstavljaju crtanjem    elemenata korisničkog interfejsa.   Primer i...
ImplementacijaŠta je prototip?   Nekompletna verzija softvera koji se razvija.   Obično simulira samo nekoliko aspekata ...
ImplementacijaŠta je computer-aided software engineering (CASE)?   Softverski alati dizajnirani da podrže aktivnosti    ž...
ImplementacijaŠta je faza implementacije?   Cilj je da se konstruiše ili izgradi novi ili modifikovani    sistem a zatim ...
ImplementacijaKoja su tri tipa testova koje izvršava projektni tim?            Testiranje                                 ...
PodrškaŠta je obuka?   Pokazivanje    korisnicima kako će    koristiti hardver i    softver u sistemu                  T-...
PodrškaŠta je faza podrške?   Obezbeđuje tekuću pomoć nakon implementacije sistema           Upravljanje analizom sistema...
Modeli softverskih procesa Šta je model procesa?    Uopšteno: razvojni plan koji definiše opšti proces razvoja           ...
Pregled postojećih modela softverskih procesa             Metodologije razvoja softvera                 T-2: Životni ciklu...
Metodologije razvoja softvera Metodologija je formalizovani proces ili skup iskustava za  kreiranje softvera    Skup pra...
Metodologije razvoja razvoja Među najpoznatije metodologije spadaju:      Waterfall model      Waterfall model sa proto...
Build and Fix model Većina softvera je razvijena korišćenjem ovog modela. U  suštini ovde nema modela, specifikacije, ni ...
Waterfall model                  T-2: Životni ciklus i metodologije razvoja softvera   39
Waterfall modelJedan od najstarijih modelaDobar za rešavanje potpuno jasnih problema bez izmena u zahtevimaJednostavan ...
Waterfall model Naziva se još i linearno-sekvencijalni model. Svaka faza mora biti u potpunosti završena pre nego što  z...
Waterfall model Tradicionalni pristup razvoju:  Definisanje   zahteva                 Dizajn                softvera     ...
Waterfall model Prednosti:    Svaka faza ima specifične izlazne produkte i proces     analize.    U jednom trenutku rad...
Waterfall model Nedostaci:    Promena opsega u toku životnog ciklusa može ubiti     projekat.    Ne postoji radna verzi...
Waterfall model Kada koristiti ovaj model?    Ovakav model se koristi kod projekata koji su jasni i nisu     podložni pr...
Waterfall model sa prototipom Prototip je delimično razvijen proizvod. Prototip pomaže    Dizajnerima da procene altern...
Waterfall model sa prototipom Može se koristiti kod scenarija gde ne postoje detaljne  informacije u vezi ulaza u sistem,...
Waterfall model sa prototipom                T-2: Životni ciklus i metodologije razvoja softvera   48
Waterfall model sa prototipom Prednosti:    Dizajner softvera i programer mogu dobiti povratne informacije     od korisn...
Waterfall model sa prototipom Nedostaci:    Klijenti često očekuju da će nekoliko minimalnih izmena na     prototipu zad...
Waterfall model sa prototipom Kada koristiti ovaj model?    Prototipovi su vrlo efikasni u analizi i dizajnu online sist...
Metodologija za paralelni razvoj Metodologija je slična Waterfall modelu Projekat je podeljen na manje projekte i svaka ...
Metodologija za paralelni razvoj                   T-2: Životni ciklus i metodologije razvoja                             ...
Metodologija za paralelni razvoj Prednosti:    Smanjuje vreme razvoja    Manje su šanse da su potrebne prepravke Nedos...
V model Mnogo je veći značaj aktivnosti testiranja nego kod Waterfall  modela. Procedure i uslovi testiranja se razvijaju...
V model          T-2: Životni ciklus i metodologije razvoja softvera   56
V model Prednosti    Svaka faza ima specifične produkte.    Veće su šanse za uspeh od Waterfall modela zbog razvoja    ...
V model Nedostaci   Vrlo je rigidan, kao i waterfall model.   Jako teško i skupo je postići malu fleksibilnost   Softv...
V model Kada koristiti ovaj model?    Kada vreme i troškovi predstavljaju ograničenje projekta.    Slično kao i kod Wat...
Inkrementalni model Kombinuje elemente liearnog sekvencijalnog modela sa  iterativnom filozofijom prototipova. Svaka lin...
Inkrementalni model                T-2: Životni ciklus i metodologije razvoja softvera   61
Inkrementalni model Nedostaci     Sistem mora imati “incremente”.     Incrementi moraju biti od značaja za korisnika.  ...
Spiralni model Sličan je inkrementalnom modelu, sa većim naglaskom na analizi  rizika. Ima četiri faze: planiranje, anal...
Spiralni model                 T-2: Životni ciklus i metodologije razvoja softvera   64
Spiralni model Prednosti:    Visok je stepen analize rizika    Dobar je za velike i kritične projekte.    Softver se p...
Spiralni model Nedostaci:      Može biti veoma skup model.      Analiza rizika zahteva visok stepen ekspertize.      U...
Spiralni model Kada se koristi?    Za aplikacije koje imaju složeni grafički interfejs prema korisniku     i više-funkci...
Rapid application development (RAD) Inkrementalni proces razvoja softvera koji naglašava  veoma kratak razvojni ciklus P...
Rapid application development (RAD) Naglašava sledeće faze:    Poslovno modelovanje – tokovi informacija između     posl...
Rapid application development (RAD)                T-2: Životni ciklus i metodologije razvoja softvera   70
Rapid application development (RAD) Nedostaci:    Za velike ali skalabilne projekte, RAD zahteva     dovoljno ljudskih r...
AGILNE METODOLOGIJE       T-2: Životni ciklus i metodologije razvoja                                                    72...
Agilne metodologije Uključuju iteracije sa kratkim vremenskim intervalima. Razdvajaju zadatke na male inkremente sa mini...
Agilne metodologije Neki od osnovnih principa agilnih metodologija su:    Zadovoljstvo klijenta brzom, konstantnom ispor...
Agilne metodologije Neke od najpoznatijih metodologija agilnog razvoja softvera:      Agile Modeling      Agile Unified...
Extreme programming (XP) Najčešće korišćena i najpoznatija agilna  metodologija Zasnovana je na jednostavnosti, komunika...
Extreme programming (XP) Zasnovana je na 4 ključne aktivnosti: planiranje,  upravljanje, dizajniranje i kodiranje Planir...
Extreme programming (XP) Upravljanje     Daje timu lokalni otvoreni radni prostor.     Određuje održiv korak.     Svak...
Extreme programming (XP)                                                          Class – Dizajniranje                   ...
Extreme programming (XP) Kodiranje   Korisnik je uvek dostupan.   Kod se mora pisati tako da bude u skladu sa    standa...
Extreme programming (XP) Testiranje    Sav kod mora imati testove jedinica.    Sav kod mora proći sve testove jedinica ...
Upcoming SlideShare
Loading in …5
×

T 2 zivotni ciklus i metodologije razvoja softvera

2,738 views
2,491 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,738
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
58
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

T 2 zivotni ciklus i metodologije razvoja softvera

  1. 1. T-2: Životni ciklus i metodologije razvoja softvera dr Zoran Jeremić zoran.jeremic@gmail.com
  2. 2. Sadržaj 1. Uvod 2. Životni ciklus razvoja softvera 3. Metodologije razvoja softvera T-2: Životni ciklus i metodologije razvoja softvera 2
  3. 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. 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. 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. 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 sistemimplementira)Razvoj jasno definisanih standarda (procedure za kojekompanija očekuje da zaposleni treba da ih primenjuju) T-2: Životni ciklus i metodologije razvoja softvera 6
  7. 7. Životni ciklus razvoja softveraKo su učesnici uživotnom ciklusurazvoja softvera? T-2: Životni ciklus i metodologije razvoja softvera 7
  8. 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. 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. 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. 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. 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. 13. Životni ciklus razvoja softveraKoje su faze životnog ciklusa razvoja softvera? Faza 2. Analiza  Izvođenje preliminarne analizeFaza 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. 14. PlaniranjeKoji su razlozi za kreiranje ili modifikovanje informacionogsistema? 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 24. DizajnKoja su tri osnovna dokumenta koja se koriste za pregledtehnič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. 25. DizajnKako 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. 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. 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. 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. 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. 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. 31. ImplementacijaKoja 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. 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. 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. 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. 35. Pregled postojećih modela softverskih procesa Metodologije razvoja softvera T-2: Životni ciklus i metodologije razvoja softvera 35
  36. 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. 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. 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. 39. Waterfall model T-2: Životni ciklus i metodologije razvoja softvera 39
  40. 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. 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. 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. 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. 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. 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. 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. 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. 48. Waterfall model sa prototipom T-2: Životni ciklus i metodologije razvoja softvera 48
  49. 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. 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. 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. 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
  53. 53. Metodologija za paralelni razvoj T-2: Životni ciklus i metodologije razvoja 53 softvera
  54. 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. 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. 56. V model T-2: Životni ciklus i metodologije razvoja softvera 56
  57. 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. 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. 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. 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
  61. 61. Inkrementalni model T-2: Životni ciklus i metodologije razvoja softvera 61
  62. 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. 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. 64. Spiralni model T-2: Životni ciklus i metodologije razvoja softvera 64
  65. 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. 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. 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. 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. 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
  70. 70. Rapid application development (RAD) T-2: Životni ciklus i metodologije razvoja softvera 70
  71. 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
  72. 72. AGILNE METODOLOGIJE T-2: Životni ciklus i metodologije razvoja 72 softvera
  73. 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. 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. 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. 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. 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. 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. 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. 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. 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

×