27
1 Procesi razvoja softvera Prof. dr Pere Tumbas Prof. dr Predrag Matković

Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

1

Procesi razvoja

softvera

Prof. dr Pere TumbasProf. dr Predrag Matković

Page 2: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

2

Struktura softverskog inženjeringaRazvojni principi,

Metodi,

Sredstva (alati) i

Procedure.

Izbor elemenata strukture uslovljen:

individualnim i kreativnim postupkom razvoja,

različitošću sistema i

različitošću okruženja.

Page 3: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

3

Razvojni principi - određuju način izvršenja rada.

Opšti principi - modelovanja, iteracija,

dokumentovanja, ..

Metodološki koraci - modeli razvoja softvera

(model životnog ciklusa, model vodopada,

spiralni model, model prototipskog razvoja, RAD

model, inkrementalni model, kombinovani

model).

Metodi - propisani sistematski načini u izvršavanju

pojedinih aktivnosti razvoja softvera.

Mogu se kombinovati i ne postoji najbolji.

Strukturiraju se po različitim kriterijumima.

Pravilan izbor podrazumeva minimalne troškove i

visoki kvalitet proizvoda.

Page 4: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

4

Alati - automatizovana ili poluautomatizovana

podrška metodima.

CASE tehnologije,

UML.

Procedure - sistemi metoda i alata u realizaciji

razvoja.

Opredeljuje ih - priroda problema i očekivanje

korisnika.

Definišu - redosled metoda/koraka, rezultate -

izlaze koraka, kontrole aktivnosti radi

obezbeđenja kvaliteta.

Page 5: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

5

Metodologije - jedinstveni sistemi metoda.

SADT,

ISAC,

James Martin,

Gane and Sarson,

SSADM,

De Marco,

SDM- Pandata,

Lorensen,

Martin and Odell,

Rational Unified Process,

Agilne metodologije (Exteme Programming, SCRUM,

FDD, DSDM, Crystal, ..).

Page 6: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

6

Životni ciklus razvoja

Prilikom idealnog razvoja softvera, proces je linearan.

Identifikacija i izbor projekata

Inicijalizacija projekata

i planiranje

Analiza sistema

Dizajn sistema

Implemen-tacija

sistema

Održavanjesistema

Page 7: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

7

Životni ciklus:

Nakon implementacije prve verzije javljaju se – novi ili

izmenjeni zahtevi korisnika, potrebe za algoritmima koji će

ubrzati rad softvera, okruženje postavlja svoje zahteve za

promenama, tehnološki razvoj nameće potrebu za daljim

izmenama, ...

Ciklus se ubrzo ili za godinu-dve ponavlja.

Page 8: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

8

U zavisnosti od značaja koji se pridaje pojedinim fazama razvoja softvera, forme organizacije i upravljanja razvojem softvera, iskustva zaposlenih i prirode softverskih proizvoda, razlikuju se:

Preskriptivni procesni modeli razvoja –konvencionalni procesni modeli sa delimično različitim tokom procesa razvoja ali sa istim generičkim aktivnostima;

Model vodopada i njegove različite varijacije,

Inkrementalni procesni modeli razvoja

Inkrementalni model,

RAD model,

Page 9: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

9

Razvojni procesni modeli:

Model prototipskog razvoja,

Spiralni model,

Specijalizovani procesni modeli:

Model zasnovan na komponentama,

Procesni model sjedinjenog procesa

Kombinovani procesni modeli

Page 10: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

10

Procesni modeli agilnog razvoja:

Extreme Programming (XP)

Adaptive Software Development (ASD)

Dynamic Systems Development Method (DSDM)

Scrum

Crystal

Feature Driven Development (FDD)

Agile Modeling (AM)

Page 11: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

11

Model vodopada

Page 12: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

12

Karakteristike modela:

Sačinjavaju ga aktivnosti koje se sukcesivno

obavljaju;

Iterativne interakcije između susednih aktivnosti;

Svaka aktivnost poseduje strogo definisane ulaze i

izlaze;

Pretpostavka realizacije naredne aktivnosti su

obezbedjeni rezultati realizacije prethodne aktivnosti;

Realizacija softvera je posledica obavljenih svih

aktivnosti razvoja bez izuzetaka;

Page 13: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

13

Karakteristike modela:

Najstariji model koji je najšire i najviše primenjivan

do danas;

Kombinuje se sa ostalim modelima, i većini čini

osnovu;

Obezbeđuje solidnu dokumentaciju i lakše

održavanje;

Page 14: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

14

Prednosti modela:

Strogo definisani i kontrolisani proces, kojeg

karakterišu standardizovane i detaljno opisane

aktivnosti u svim fazama razvoja,

Uključeno testiranje odnosno verifikacija izvršenih

aktivnosti i dobijenih rezultata na kraju svake faze

razvoja,

Detaljna i kvalitetna dokumentacija, koja se

generiše u svim fazama razvoja, paralelno odnosno

istovremeno kada se izvršavaju pojedine aktivnosti i

Relativno laka zamena izvršilaca aktivnosti u

procesu razvoja.

Page 15: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

15

Nedostaci modela:

Nefleksibilna podela aktivnosti razvoja u posebne

faze i nedostatak povratne sprege između faza,

Greške koje se ne otklone u pojedinim fazama

razvoja kada se vrši testiranje ili verifikacija

proizvoda, mogu imati distorziono dejstvo na razvoj

u celini,

Nemogućnost obavljanja iteracija tokom realizacije

razvoja jer iste izazivaju ozbiljne probleme i

konfuziju u primeni modela,

Teška prilagodljivost neizvesnosti koja uglavnom

egzistira na startu projekta, kada je korisniku veoma

teško da eksplicitno navede sve svoje zahteve

prema softveru,

Page 16: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

16

Nedostaci modela:

Dugotrajan proces razvoja te korisnik mora biti

veoma strpljiv i istrajan jer su mu radne verzije

softvera dostupne tek na kraju aktivnosti razvoja, a

do tada postoji samo pisana specifikacija

funkcionalnosti budućeg softvera,

Samo potpuno gotov proizvod je upotrebljiv od

korisnika,

Visoki razvojni troškovi.

Page 17: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

17

Modifikovani model vodopada

Analiza zahteva

Verifikacija

Promene u zahtevima

Verifikacija

Specifikacija zahteva

Verifikacija

Projektovanje

Verifikacija

Implementacija

Verifikacija

Integracija

Verifikacija

Funkcionisanje i

održavanje

Isporuka

proizvoda

Razvoj

Održavanje

Page 18: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

18

Inicijalni koncept

funkcionalnosti

Analiza zahteva

Projektovanje

arhitekture

Faza 1: Detaljni dizajn, kodiranje,

testiranje i distribucija

Faza 2: Detaljni dizajn, kodiranje,

testiranje i distribucija

Faza n: Detaljni dizajn, kodiranje,

testiranje i distribucija

Inkrementalni model

Page 19: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

19

Karakteristike modela:

Model u osnovi uključuje model vodopada pošto

svaki inkrement predstavlja pojedinačno primenjen

model vodopada;

Potpuno se razvija inicijalni podskup softvera, a

zatim u sekcesivnim koracima kao nadgradnja stalno

novije i komplikovanije verzije;

Svaki inkrement je kvalitetan ali zadovoljava samo

podskup korisničkih zahteva;

Inkrementi su mali dodaci kojima se upotpunjuju

funkcije softvera;

Page 20: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

20

Prednosti modela:

Obezbeđuje transparentan razvoj proizvoda, sa

stalno vidljivim razultatima,

Uvek raspoloživ funkcionalno upotrebljiv proizvod,

koji zadovoljava određeni podskup korisničkih

zahteva,

Lako razumevanje i testiranje novorazvijenih

inkremenata proizvoda jer oni samo dodaju nove

funkcionalnosti postojećem upotrebljavanom

softveru i na taj način premošćava traumatske

efekte uvođenja kompletno novog proizvoda

odjednom,

Page 21: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

21

Prednosti modela:

Postojanje povratne sprege i permanentne

mogućnosti ugradnje bogatog korisničkog iskustva

u redefinisani proizvod na manje skup način, putem

novih inkremenata odnosno novih funkcionalnosti

proizvoda,

Umanjeni rizik od neuspeha razvoja celine, jer se

problemi uglavnom uočavaju u pojedinim

inkrementima,

Skromniji obim kapitalnih ulaganja u razvoj

proizvoda i brži povrat investicija,

Manji broj angažovanih osoba u procesu razvoja.

Page 22: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

22

Nedostaci modela:

Dekompozicija proizvoda na inkremente, da bi se

oni mogli integrisati, nije trivijalan zadatak, kao ni

sam proces integracije, a da se pri tome ne ugrozi

kvalitet već postojećeg proizvoda,

Specifikacija detaljnih korisničkih zahteva se kod

svakog inkrementa izrađuje neposredno pre nego

što se on razvija,

Integracija može uvek doneti neočekivane probleme

i potrebe za reorganizacijom, koja može imati

posledice po efikasnost i održavanje,

Korisnici imaju stalnu želju da menjaju svoje

zahteve.

Page 23: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

23

RAD model

Modelovanje

organizacije

Planiranje

zahteva

Dizajn

aplikacija

Konstrukcija

Implementacija

Tim #2

Modelovanje

organizacije

Planiranje

zahteva

Dizajn

aplikacija

Konstrukcija

Implementacija

Tim #1

Modelovanje

organizacije

Planiranje

zahteva

Dizajn

aplikacija

Konstrukcija

Implementacija

Tim #3

Page 24: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

24

Karakteristike modela:

Model podrazumeva inkrementalni razvoj sa veoma

kratkim vremenskim ciklusom od 60-90 dana.

Brza modifikacija modela vodopada u kojem svaki

ciklus rezultira potpuno funkcionalnim sistemom.

Razvoj se odvija u malim integrisanim timovima sa

korisnicima, neformalnih komunikacija.

RAD model čine sledeće faze: modelovanje

organizacije, planiranje zahteva, dizajn aplikacija,

konstrukcija, implementacija.

Page 25: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

25

Prednosti modela:

Povećana brzina razvoja primenom metoda

prototipskog razvoja,

Umanjena funkcionalnost za korisnika i umanjena

kompleksnost,

Veći naglasak na jednostavnost i upotrebljivost

dizajna korisničkog interfejsa.

Page 26: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

26

Nedostaci modela:

Skromnije karakteristike proizvoda u ranijim

ciklusima razvoja,

Ubrzanje procesa razvoja dovodi do gubitka

pregleda nad celinom sistema,

Brzina može postati sama sebi svrha pa se izrađuju

privremena i priručna rešenja,

Veliki projekti pri razvoju ovim modelom zahtevaju

dosta resursa da bi se kreirao odgovarajući broj RAD

timova,

Teška i problematična gradnja komponenti sistema

ukoliko se sistem ne može razložiti na module,

RAD je neodgovarajući model ukoliko je tehnički rizik

razvoja visok.

Page 27: Prof. dr Pere Tumbas Prof. dr Predrag Matković · Metodološki koraci - modeli razvoja softvera (model životnog ciklusa, model vodopada, spiralni model, model prototipskog razvoja,

27

Hvala na pažnji!