T 2 zivotni ciklus i metodologije razvoja softvera

81
T-2: Životni ciklus i metodologije razvoja softvera dr Zoran Jeremić [email protected]

Transcript of T 2 zivotni ciklus i metodologije razvoja softvera

Page 1: T 2 zivotni ciklus i metodologije razvoja softvera

T-2: Životni ciklus i metodologije razvoja softvera

dr Zoran Jeremić[email protected]

Page 2: T 2 zivotni ciklus i metodologije razvoja softvera

Sadržaj

2

1. Uvod

2. Životni ciklus razvoja softvera

T-2: Životni ciklus i metodologije razvoja softvera

3. Metodologije razvoja softvera

Page 3: T 2 zivotni ciklus i metodologije razvoja softvera

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.

3T-2: Životni ciklus i metodologije razvoja softvera

Page 4: T 2 zivotni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softvera

Šta je informacioni sistem (IS)?

4

Hardver, softver, podaci, ljudi i procedure koji funkcionišu

zajedno da bi proizveli kvalitetne informacije.

Sistem—Skup komponenti koje međusobno sarađuju

kako bi postigli zajednički cilj.

U poslovanju se koriste različiti tipovi sistema

T-2: Životni ciklus i metodologije razvoja softvera

Page 5: T 2 zivotni ciklus i metodologije 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.

5

Životni ciklus razvoja softvera

T-2: Životni ciklus i metodologije razvoja softvera

Page 6: T 2 zivotni ciklus i metodologije razvoja softvera

Koje su preporuke za razvoj sistema?

T-2: Životni ciklus i metodologije razvoja softvera 6

Životni ciklus razvoja softvera

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)

Page 7: T 2 zivotni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softveraKo su učesnici u životnom ciklusu razvoja softvera?

7T-2: Životni ciklus i metodologije razvoja softvera

Page 8: T 2 zivotni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softveraŠta je analitičar sistema?

8

Osoba odgovorna za dizajn i razvoj

informacionog sistema

Veza između korisnika i IT profesionalaca

T-2: Životni ciklus i metodologije razvoja softvera

Page 9: T 2 zivotni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softveraŠta je projektni tim?

9

Sastoji se od korisnika, analitičara sistema i drugih IT profesionalaca

Grupa ljudi koji rade na projektu od početka do kraja

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

Page 10: T 2 zivotni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softveraŠta je izvodljivost?

10

Procena koliko će koristi

kompanija imati od

razvoja sistema

Operaciona izvodljivost

Izvodljivost vremenskog

roka

Četiri testa izvodljivosti:

Tehnička izvodljivost

Ekonomska izvodljivost

(poznata i kao cost/benefit

analiza)

Zakonskaizvodljivost

T-2: Životni ciklus i metodologije razvoja softvera

Page 11: T 2 zivotni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softveraŠta je dokumentacija?

11

Obuhvata izveštaje, dijagrame, programe i druge izveštaje

Kolekcija i rezime podataka i informacija

T-2: Životni ciklus i metodologije razvoja softvera

Page 12: T 2 zivotni ciklus i metodologije razvoja softvera

Šest tehnika za prikupljanje podataka i informacija?

12

Analiza dokumentacije Posmatranje Upitnici Intervjui Joint-application

design (JAD) sesija Istraživanje

T-2: Životni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softvera

Page 13: T 2 zivotni ciklus i metodologije razvoja softvera

Životni ciklus razvoja softveraKoje su faze životnog ciklusa razvoja softvera?

13

Faza 1. Planiranje

Faza 2. Analiza

Faza 3. Dizajn

Faza 4. ImplementacijaFaza 5. Podrška

Pregled projektnih zahteva

Analiza prioriteta projektnih zahteva

Dodeljivanje resursa Identifikovanje proj.

razvojnog tima

Izvođenje preliminarne analize Izvršenje detaljne analize:

Proučavanje trenutnog sistemaUtvrđivanje korisničkih zahtevaPredlog rešenja

Nabavka hardvera i softvera, ukoliko je potrebno

Razvoj detalja sistema

Razvoj programa, Instaliranje i testiranje novog

sistema Obuka korisnika Korišćenje novog sistema

Revizije sistema Identifikovanje grešaka i

unapređenja Praćenje performansi sistema

T-2: Životni ciklus i metodologije razvoja softvera

Page 14: T 2 zivotni ciklus i metodologije razvoja softvera

PlaniranjeKoji su razlozi za kreiranje ili modifikovanje informacionog sistema?

14

Rešavanje problema u postojećem

sistemu

Unapređenje postojećeg

sistem

Spoljašnji uslovi

zahtevaju promenu

Konkurentnost može voditi do

promene

T-2: Životni ciklus i metodologije razvoja softvera

Page 15: T 2 zivotni ciklus i metodologije razvoja softvera

PlaniranjeŠta je zahtev za održavanjem sistema?

15

Formalni zahtev za novim ili modifikovanim informacionim sistemom Takođe zvan

projektni zahtev

T-2: Životni ciklus i metodologije razvoja softvera

Page 16: T 2 zivotni ciklus i metodologije razvoja softvera

PlaniranjeŠta je faza planiranja?

16

Počinje kada upravni odbor primi projektni zahtev

Upravni odbor—

rukovodeće telo kompanije

Funkcije odbora:

Recenzija i odobravanja projektnih

zahteva

Dodeljivanje resursa

Formiranje razvojnog tima

projekta za svaki odobreni

projekat

Određivanje prioriteta

projektnim zahtevima

T-2: Životni ciklus i metodologije razvoja softvera

Page 17: T 2 zivotni ciklus i metodologije razvoja softvera

AnalizaŠta je faza analize?

17

Izvršenje preliminarnog istraživanja, poznato i kao

studija izvodljivosti

Izvršenje detaljne analize

T-2: Životni ciklus i metodologije razvoja softvera

Page 18: T 2 zivotni ciklus i metodologije razvoja softvera

AnalizaŠta je preliminarno istraživanje?

18

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

Page 19: T 2 zivotni ciklus i metodologije razvoja softvera

1. Proučavanje kako trenutni sistem funkcioniše

AnalizaŠta je detaljna analiza?

19

Ponekad se zove logički dizajn

2. Utvrđivanje šta korisnik želi, šta mu je potrebno i definisanje

zahteva

3. Predlaganje rešenja

T-2: Životni ciklus i metodologije razvoja softvera

Page 20: T 2 zivotni ciklus i metodologije razvoja softvera

Predstavlja se upravnom

odboru, koji donosi odluku o tome kako će se sistem razvijati

AnalizaŠta je predlog projekta?

20

Procenjuje izvodljivost

svakog alternativnog

rešenja

Predlaže najizvodljivije

rešenje za projekat

T-2: Životni ciklus i metodologije razvoja softvera

Page 21: T 2 zivotni ciklus i metodologije razvoja softvera

AnalizaŠta su moguća rešenja?

21

Kupovina paketskog softvera —softver dostupan na tržištu

Outsource—spolja razvijen softver

Izrada sopstvenog korisničkog softvera—softver razvijen prema

korisničkim zahtevima

Softver za vertikalno tržište—dizajniran za

određenu industriju

Softver za horizontalno

tržište—rađen za potrebe mnogih

kompanija

T-2: Životni ciklus i metodologije razvoja softvera

Page 22: T 2 zivotni ciklus i metodologije razvoja softvera

DizajnŠta je faza dizajna?

22

Izlaz:• dokument koji opisuje arhitekturu• plan implementacije• analiza osnovnih prioriteta• Plan testiranja

Razvoj svih detalja novog ili modifikovanog informacionog

sistema

Definiše se arhitektura sistema (komponente, njihov interfejs i ponašanje).

T-2: Životni ciklus i metodologije razvoja softvera

Page 23: T 2 zivotni ciklus i metodologije razvoja softvera

Razgovor sa kompanijama za izradu softvera

DizajnŠta je potrebno za nabavku novog softvera?

23

Identifikovanje svih hardverskih i softverskih zahteva novog ili modifikovanog sistema

Pretraživanje Weba

Čitanje štampanih i online trgovačkih časopisa, novina,

oglasa…

Razgovor sa drugim analitičarima sistema

T-2: Životni ciklus i metodologije razvoja softvera

Page 24: T 2 zivotni ciklus i metodologije razvoja softvera

DizajnKoja su tri osnovna dokumenta koja se koriste za pregled tehničkih specifikacija?

24

Manje formalni metod koji koristi standardnu formu

za dobijanje informacije o

proizvodu ili usluzi

Prodavac daje cene za

navedene proizvode

Prodavac bira proizvod(e) koji

ispunjavanju definisane zahteve i

predlaže cene

Kupac definiše

proizvode koje želi

Zahtev za informacijom

Zahtev za predlog

Zahtev za izjašnjavanjem

T-2: Životni ciklus i metodologije razvoja softvera

Page 25: T 2 zivotni ciklus i metodologije razvoja softvera

DizajnKako analitičari sistema testiraju softverski proizvod?

25

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

Page 26: T 2 zivotni ciklus i metodologije razvoja softvera

DizajnŠta je detaljni dizajn?

26

Obuhvata nekoliko aktivnosti

Dizajn baze podataka Dizajn ulaza i izlaza Dizajn programa

Detaljna specifikacija dizajna za komponente u predloženom rešenju

T-2: Životni ciklus i metodologije razvoja softvera

Page 27: T 2 zivotni ciklus i metodologije razvoja softvera

DizajnŠta je mockup?

27

Funkcionalnosti sistema se predstavljaju crtanjem elemenata korisničkog interfejsa.

http://www.balsamiq.com

Primer izgleda ekrana predstavljen korišćenjem alata za kreiranje mockup-a

T-2: Životni ciklus i metodologije razvojasoftvera

Page 28: T 2 zivotni ciklus i metodologije razvoja softvera

ImplementacijaŠta je prototip?

28

Radni model za predloženi sistem Izrada prototipa

previše rano može dovesti do problema

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.

T-2: Životni ciklus i metodologije razvoja softvera

Page 29: T 2 zivotni ciklus i metodologije razvoja softvera

ImplementacijaŠta je computer-aided software engineering (CASE)?

29

Softverski alati dizajnirani da podrže aktivnosti životnog ciklusa razvoja softvera

T-2: Životni ciklus i metodologije razvoja softvera

Page 30: T 2 zivotni ciklus i metodologije razvoja softvera

Prelazak na novi sistem

ImplementacijaŠta je faza implementacije?

30

Cilj je da se konstruiše ili izgradi novi ili modifikovani sistem a zatim isporuči korisnicima

Obuka korisnika

Instalacija i testiranje novog sistema

Razvoj programaT-2: Životni ciklus i metodologije razvoja softvera

Page 31: T 2 zivotni ciklus i metodologije razvoja softvera

ImplementacijaKoja su tri tipa testova koje izvršava projektni tim?

31

Provera da li aplikacija radi sa

drugim aplikacijama

Testiranje sistema

Testiranje integracije

Testiranje jedinice

Provera da li svaka pojedinačna komponenta funkcioniše

Provera da li svi programi u aplikaciji

rade zajedno

T-2: Životni ciklus i metodologije razvoja softvera

Page 32: T 2 zivotni ciklus i metodologije razvoja softvera

PodrškaŠta je obuka?

32

Pokazivanje korisnicima kako će koristiti hardver i softver u sistemu

T-2: Životni ciklus i metodologije razvoja softvera

Page 33: T 2 zivotni ciklus i metodologije razvoja softvera

PodrškaŠta je faza podrške?

33

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

Obezbeđuje tekuću pomoć nakon implementacije sistema

T-2: Životni ciklus i metodologije razvoja softvera

Page 34: T 2 zivotni ciklus i metodologije razvoja softvera

Modeli softverskih procesa

Šta je model procesa?

T-2: Životni ciklus i metodologije razvoja softvera 34

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 aktivnostibiti izvršavane, koji proizvodi će biti razvijani i kako će se procenjivati

njihov kvalitet.

Page 35: T 2 zivotni ciklus i metodologije razvoja softvera

Pregled postojećih modela softverskih procesa

35T-2: Životni ciklus i metodologije razvoja softvera

Metodologije razvoja softvera

Page 36: T 2 zivotni ciklus i metodologije razvoja softvera

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

36T-2: Životni ciklus i metodologije razvoja softvera

Page 37: T 2 zivotni ciklus i metodologije razvoja softvera

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

Metodologije razvoja razvoja

37T-2: Životni ciklus i metodologije razvoja softvera

Page 38: T 2 zivotni ciklus i metodologije razvoja softvera

Build and Fix model

Većina softvera je razvijena korišćenjem ovog modela. U suštini ovde nema modela, specifikacije, ni dizajna.

38T-2: Životni ciklus i metodologije razvoja softvera

Page 39: T 2 zivotni ciklus i metodologije razvoja softvera

Waterfall model

39T-2: Životni ciklus i metodologije razvoja softvera

Page 40: T 2 zivotni ciklus i metodologije razvoja softvera

Jedan od najstarijih modelaDobar za rešavanje potpuno jasnih problema

bez izmena u zahtevimaJednostavan i razumljiv za korisnikaPredstavlja Vrlo apstraktan prikaz razvojnog procesa Niz aktivnosti

Jasne granice između faza sa izlaznim produktima

Waterfall model

40T-2: Životni ciklus i metodologije razvoja softvera

Page 41: T 2 zivotni ciklus i metodologije razvoja softvera

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.

41T-2: Životni ciklus i metodologije razvoja softvera

Page 42: T 2 zivotni ciklus i metodologije razvoja softvera

Waterfall model

Tradicionalni pristup razvoju:

Definisanjezahteva

Dizajn softvera

Implementacija (kodiranje)

Verifikacija(testiranje)

Korišćenje(održavanje)

42T-2: Životni ciklus i metodologije razvoja softvera

Page 43: T 2 zivotni ciklus i metodologije razvoja softvera

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”.

43T-2: Životni ciklus i metodologije razvoja softvera

Page 44: T 2 zivotni ciklus i metodologije razvoja softvera

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. 44T-2: Životni ciklus i metodologije razvoja softvera

Page 45: T 2 zivotni ciklus i metodologije razvoja softvera

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.

45T-2: Životni ciklus i metodologije razvoja softvera

Page 46: T 2 zivotni ciklus i metodologije razvoja softvera

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

46T-2: Životni ciklus i metodologije razvoja softvera

Page 47: T 2 zivotni ciklus i metodologije razvoja softvera

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.

47T-2: Životni ciklus i metodologije razvoja softvera

Page 48: T 2 zivotni ciklus i metodologije razvoja softvera

Waterfall model sa prototipom

48T-2: Životni ciklus i metodologije razvoja softvera

Page 49: T 2 zivotni ciklus i metodologije razvoja softvera

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.

49T-2: Životni ciklus i metodologije razvoja softvera

Page 50: T 2 zivotni ciklus i metodologije razvoja softvera

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. 50T-2: Životni ciklus i metodologije razvoja softvera

Page 51: T 2 zivotni ciklus i metodologije razvoja softvera

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.

51T-2: Životni ciklus i metodologije razvoja softvera

Page 52: T 2 zivotni ciklus i metodologije razvoja softvera

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.

52T-2: Životni ciklus i metodologije razvoja softvera

Page 53: T 2 zivotni ciklus i metodologije razvoja softvera

Metodologija za paralelni razvoj

53T-2: Životni ciklus i metodologije razvoja softvera

Page 54: T 2 zivotni ciklus i metodologije razvoja softvera

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

54T-2: Životni ciklus i metodologije razvoja softvera

Page 55: T 2 zivotni ciklus i metodologije razvoja softvera

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.

55T-2: Životni ciklus i metodologije razvoja softvera

Page 56: T 2 zivotni ciklus i metodologije razvoja softvera

V model

56T-2: Životni ciklus i metodologije razvoja softvera

Page 57: T 2 zivotni ciklus i metodologije razvoja softvera

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.

57T-2: Životni ciklus i metodologije razvoja softvera

Page 58: T 2 zivotni ciklus i metodologije razvoja softvera

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.

58T-2: Životni ciklus i metodologije razvoja softvera

Page 59: T 2 zivotni ciklus i metodologije razvoja softvera

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.

59T-2: Životni ciklus i metodologije razvoja softvera

Page 60: T 2 zivotni ciklus i metodologije razvoja softvera

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.

60T-2: Životni ciklus i metodologije razvoja softvera

Page 61: T 2 zivotni ciklus i metodologije razvoja softvera

Inkrementalni model

61T-2: Životni ciklus i metodologije razvoja softvera

Page 62: T 2 zivotni ciklus i metodologije razvoja softvera

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.

62T-2: Životni ciklus i metodologije razvoja softvera

Page 63: T 2 zivotni ciklus i metodologije razvoja softvera

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.

63T-2: Životni ciklus i metodologije razvoja softvera

Page 64: T 2 zivotni ciklus i metodologije razvoja softvera

Spiralni model

64T-2: Životni ciklus i metodologije razvoja softvera

Page 65: T 2 zivotni ciklus i metodologije razvoja softvera

Spiralni model

Prednosti: Visok je stepen analize rizika Dobar je za velike i kritične projekte. Softver se proizvodi u ranim fazama životnog ciklusa.

65T-2: Životni ciklus i metodologije razvoja softvera

Page 66: T 2 zivotni ciklus i metodologije razvoja softvera

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.

66T-2: Životni ciklus i metodologije razvoja softvera

Page 67: T 2 zivotni ciklus i metodologije razvoja softvera

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.

67T-2: Životni ciklus i metodologije razvoja softvera

Page 68: T 2 zivotni ciklus i metodologije razvoja softvera

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)

68T-2: Životni ciklus i metodologije razvoja softvera

Page 69: T 2 zivotni ciklus i metodologije razvoja softvera

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.

69T-2: Životni ciklus i metodologije razvoja softvera

Page 70: T 2 zivotni ciklus i metodologije razvoja softvera

Rapid application development (RAD)

70T-2: Životni ciklus i metodologije razvoja softvera

Page 71: T 2 zivotni ciklus i metodologije razvoja softvera

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.

71T-2: Životni ciklus i metodologije razvoja softvera

Page 72: T 2 zivotni ciklus i metodologije razvoja softvera

AGILNE METODOLOGIJE

72T-2: Životni ciklus i metodologije razvoja softvera

Page 73: T 2 zivotni ciklus i metodologije razvoja softvera

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

73T-2: Životni ciklus i metodologije razvoja softvera

Page 74: T 2 zivotni ciklus i metodologije razvoja softvera

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 promenljivim okolnostima.

74T-2: Životni ciklus i metodologije razvoja softvera

Page 75: T 2 zivotni ciklus i metodologije razvoja softvera

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

75T-2: Životni ciklus i metodologije razvoja softvera

Page 76: T 2 zivotni ciklus i metodologije razvoja softvera

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.76T-2: Životni ciklus i metodologije razvoja softvera

Page 77: T 2 zivotni ciklus i metodologije razvoja softvera

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.

77T-2: Životni ciklus i metodologije razvoja softvera

Page 78: T 2 zivotni ciklus i metodologije razvoja softvera

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.

78T-2: Životni ciklus i metodologije razvoja softvera

Page 79: T 2 zivotni ciklus i metodologije razvoja softvera

Extreme programming (XP)

Dizajniranje Jednostavnost. 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.

Class –Responsibility -Collaboration

79T-2: Životni ciklus i metodologije razvoja softvera

Page 80: T 2 zivotni ciklus i metodologije razvoja softvera

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.

80T-2: Životni ciklus i metodologije razvoja softvera

Page 81: T 2 zivotni ciklus i metodologije razvoja softvera

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.

81T-2: Životni ciklus i metodologije razvoja softvera