35
Uvod u programsk o i nženjers tvo Planiranje projekta programske podrške Predavanje 04 Branko Žitko 

Upi_p04 Planiranje Projekta

Embed Size (px)

Citation preview

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 1/35

Uvod u programsko inženjerstvo 

Planiranje projekta programske podrške Predavanje 04

Branko Žitko 

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 2/35

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 3/35

2. Struktura podjele zadataka (SPZ)

• Podjela velikih zadataka na male

• uključuje određivanje predmeta dostave i prekretnica kojeće se koristiti za mjerenje progresa 

• Struktura podjele zadataka mora biti stablasta struktura

 – Na najvišem nivou se nalazi model životnog ciklusa 

 – Sljedeći nivo odgovara procesu programske podrške  – Ostali nivoi se koriste za podjelu zadataka na manje upravljive

zadatke

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 4/35

2. Struktura podjele zadataka

• Pravila izrade strukture podjele zadataka

 – SPZ mora biti stablasta struktura

 – Svaki zadatak i artefakt mora biti razumljiv i jednoznačan 

 – Svaki zadatak mora imati uvjet završetka 

 – Svi artefakti moraju biti identificirani

 – Pozitivni završetak podzadataka mora implicirati završetaknadzadatka

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 5/35

Primjer 1. kuhanje

• Model životnog ciklusa za kuhanje 

Izaberi jelo

Sastavi

namirnice

Skuhaj jelo

Pojedi jelo

Očisti za sobom

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 6/35

Primjer 1. kuhanje

• Model procesa kuhanja

Kuhar 

Miješanje

Namirnice

Recept

Neskuhano

 jelo  Kuhanje   Jelo

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 7/35

Primjer 1. kuhanje

• Mogući podzadaci

 – Izaberi namirnice, provjeri namirnice, sastavi namirnice, dodaj

tekućinu, dodaj brašno, napravi tijesto, dizanje tijesta 1. put,dodaj preostalo brašno, izmiješaj, dizanje tijesta 2. put, oblikujkruh, dizanje tijesta 3. put, ispeci, izreži, namaži, pojedi, očisti 

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 8/35

Primjer 1. kuhanje

Izaberi jelo

izaberi namirnice lista namirnica

provjeri namirnice popis za kupovinu

Sastavi namirnice

sastavi namirnice sastavljene namirnice

Skuhaj jelo

Miješanje 

dodaj tekućinu  tekućina u zdjeli

dodaj brašno  tekućina i brašno u zdjeli

napravi tijesto tijesto

dizanje tijesta 1. put dignuto tijestododaj preostalo brašno  zabrašnjeno dignuto tijesto

dizanje tijesta 2. put dignuto tijesto s brašnom 

oblikuj kruh oblikovan neispečen kruh

dizanje tijesta 3. put spreman kruh za pećenje 

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 9/35

Primjer 1. kuhanje

Kuhanje

ispeci kruh

Jedenje

izreži  feta kruha

namaži  namazana feta kruha

pojedi dobar okus

Čišćenje 

očisti za sobom  čista kuhinja 

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 10/35

Primjer 2. prepoznavanje lica

• Tim želi sagraditi sustav za prepoznavanje lica za robota. 

4. Oblikovanje

oblikuj prototip

prototipni vid

5. Implementacija

kodiraj snimanje slikekodiraj obradu slike

kodiraj usporedbu slika

integriraj s ostalim sustavima robota

6. Testiranje

testiraj snimanje slike

7. Dostavljanje

dokumentiraj

1. Izvodljivost

odredi izvodljivost vida

odredi kameru i programske

alate

planiraj nabavu kamere iprogramskih alata

2. Analiza rizika

odredi rizike

3. Zahtjevi

specificiraj zahtjeve

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 11/35

Primjer 2. prepoznavanje lica• Neki od zadataka su na visokom nivou

• Primjer "razbijanja" zadatka "kodiraj snimanje slike"

 – instaliraj pokretačke programe za kameru (instalirani pokretački programi) 

 – testiraj pokretačke programe u operativnom sustavu i snimi sliku

u datoteku(slikovna datoteka)

 – napravi C++ kod za pristupanje pokretačkim programima (C++ kod)

 –

testiraj C++ kod i snimi sliku u datoteku(slikovna datoteka dobivena C++ kodom)

 – testiraj C++ kod u upravljačkom programu robota i snimi sliku (slikovna datoteka dobivena izvršenim C++ kodom na robotu) 

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 12/35

3. Tehnika evaluacije i recenzije programa

• PERT – Program Evaluation and Review Technique

• Ova tehnika kreira graf zavisnosti među zadacima 

• Svaki zadatak ima procjenu vremena potrebnog za

dovršetak i listu ostalih zadataka koji moraju biti završeniprije nego ovaj zadatak započne 

• Zadatak je završen ako su svi podzadatci završeni • Iz grafa se može 

 – izračunati potrebno vrijeme za sve podzadatke

 – minimalno vrijeme potrebno za zadatak

 – kritične putanje podzadataka

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 13/35

Primjer 3. PERT

• PERT tablica

podzadatak potrebno vrijeme zavisnosta 8

b 10

c 8 a,b

d 9 a

e 5 b

f 3 c,d

g 2 d,e

h 4 f,g

i 3 e,f

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 14/35

Primjer 3. PERT

• PERT graf

a

b

c

d

e

g

h

i

88

3

4

10   9

2

35

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 15/35

Primjer 3. PERT

• PERT vrijeme početka i završetka 

 – početno vrijeme nadzadatka je maksimum vremena njegovih

podzadataka

a

b

c

d

e

g

h

i

88

3

4

10   9

2

35

(10,18)

(0,10)

(0,8)

(8,17)

(10,15)

(18,21)

(17,19)

(21,25)

(21,24)

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 16/35

P i j 3 PERT

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 17/35

Primjer 3. PERT

• PERT završetak i kritična putanja 

 – zadaci na kritičnoj putanji moraju 

započeti što ranije kako bi projekt završio na vrijeme 

podzadatak početak  završetak  kritična

putanjaa 0 8

b 0 10 *

c 10 18 *

d 8 17

e 10 15

f 18 21 *

g 17 19

h 21 25 *

i 21 24

a

b

c

d

e

g

h

i

88

3

4

10   9

2

35

P i j 3 PERT

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 18/35

Primjer 3. PERT

• PERT zatišje 

 – zadaci koji nisu na kritičnoj putanji 

mogu imati fleksibilno vrijeme(zatišje) za početak i završetak 

podzadatak početak  završetak  kritična

putanjaa 0,1 8,9

b 0 10 *

c 10 18 *

d 8,9 17,18

e 10,14 15,19

f 18 21 *

g 17,19 19,21

h 21 25 *

i 21,22 24,25

a

b

c

d

e

g

h

i

88

3

4

10   9

2

35

4 P j šk k d šk

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 19/35

4. Procjena troška programske podrške 

• Procjena troška određuje potrebne resurse za dovršetakprojekta

• često se mjeri u programer po mjesecu (PM) 

• Dvije osnovne procjene troška 

 – LOC procjena

 –functional point (FP) procjena funkcijskih točaka 

4 1 LOC j

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 20/35

4.1. LOC procjena

• Procjena broja linija koda završenog projekta 

 – temeljem iskustva

 – temeljem prijašnjeg projekta 

 – razbijanjem projekta na manje dijelove i procjena manjih dijelova

 – usporedbom s rješenjem konkurenta 

Standardni pristup – za svaki dioi procijeniti maksimalnu maxi, minimalnu mini i

srednju veličinu besti

 – procjena cijelog projekta je 1/6 sume max i min ili 4 * best

1/6*(max + 4 * best + min)

P i j 4 LOC j

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 21/35

Primjer 4. LOC procjena

• dio1 = (20+4*30+50)/6 = 31.6

• dio2 = (10+4*15+25)/6 = 15.8

• dio3 = (25+4*30+45)/6 = 31.6

• dio4 = (30+4*35+40)/6 = 36.7

• dio5 = (15+4*20+25)/6 = 20

• dio6 = (10+4*12+14)/6 = 12

• dio7 = (20+4*22+25)/6 = 22.17

• sve = 31.6+15.8+31.6+36.7+20+12+22.17 = 170.07 LOC

• sd = (((50-20)2+(25-10)2+(45-25)2+(40-30)2+(25-15)2+(14-

10)2 +(25-20)2)/7)0.5 = 15.8

Dio Min Best Max

1 20 30 50

2 10 15 253 25 30 45

4 30 35 40

5 15 20 25

6 10 12 14

7 20 22 25

4 2 P j t šk t lj LOC

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 22/35

4.2. Procjena troška temeljem LOC-a

Trošak = α * KLOC ^ β + γ 

• α  je granični trošak po KLOC-u (tisuću LOC).

 – To je dodani trošak za dodatnih tisuću LOC-ova.

• β je eksponent koji reflektira nelinearnost odnosa

 – Ako je beta > 1 onda se trošak po KLOC-u povećava s rastomprojekta

• γ predstavlja fiksni trošak izrade projekta 

P i j 5 T š k t lj LOC

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 23/35

Primjer 5. Trošak temeljem LOC-a

• Linearan omjer

 – α = 2.4

 – β = 1

 – γ = 0

ID projekta Veličina (KLOC) Rad (PM)

1 50 120

2 80 192

3 40 96

4 10 24

5 20 48

0

50

100

150

200

250

1 2 3 4 5

Veličina (KLOC) 

Rad (PM)

4 3 M d l k t kti t šk

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 24/35

4.3. Model konstruktivnog troška 

• Constructive cost model (COCOMO) – Bohem 1970-te

• Model konstruktivnog troška 

• Podjela s obzirom na vrste projekata programske podrške 

1. Aplikacija (obrada podataka, znanstvena analiza, …) 

2. Uslužni programi (kompajleri, linkeri, …) 

3. Sistemski programi (operativni sustavi, pogonski programi,…) 

• Određeni parametri troška za svaku vrstu projekta 

1. aplikacija PM = 2.4*KLOC^1.05

2. uslužni programi PM = 3.0*KLOC^1.12 

3. sistemski programi PM = 3.6*KLOC^1.20

Primjer 6 COCOMO

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 25/35

Primjer 6: COCOMO• PM po COCOMO modelu

• produktivnost = LOC/PD

• uz pretpostavku da PM = 20PD produktivnost aplikacije od

5 KLOC je 5000LOC/(13.0*20PD) = 19.2 LOC/PD

KLOC Aplikacija Uslužni  Sistemski

5 13.0 18.2 24.810 26.9 39.5 57.1

15 41.2 62.3 92.8

20 55.8 86.0 131.1

25 70.5 110.4 171.330 85.3 135.4 213.2

35 100.3 160.9 256.6

40 115.4 186.8 301.1

45 130.6 213.2 346.9

50 145.9 239.9 393.6

4 3 M d l k t kti t šk

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 26/35

4.3. Model konstruktivnog troška 

• Uočen je standard u razvojnom vremenu ovisno o vrsti iveličini projekta. Razvojno vrijeme (RV) se određuje po

formuli – aplikacija RV = 2.5*PM^0.38

 – uslužni programi RV = 2.5*PM^0.35 

 – sistemski programi RV = 2.5*PM^0.32

Primjer 7: COCOMO

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 27/35

Primjer 7: COCOMO

• RV po COCOMO modelu

KLOC

Aplikacija Uslužni  Sistemski

PM RV PM RV PM RV

5 13.0 6.6 18.2 6.9 24.8 7.0

10 26.9 8.7 39.5 9.1 57.1 9.1

15 41.2 10.3 62.3 10.6 92.8 10.7

20 55.8 11.5 86.0 11.9 131.1 11.925 70.5 12.6 110.4 13.0 171.3 13.0

30 85.3 13.5 135.4 13.9 213.2 13.9

35 100.3 14.4 160.9 14.8 256.6 14.8

40 115.4 15.2 186.8 15.6 301.1 15.545 130.6 15.9 213.2 16.3 346.9 16.2

50 145.9 16.6 239.9 17.0 393.6 16.9

4 4 Analiza funkcijskih točaka

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 28/35

4.4. Analiza funkcijskih točaka 

• Identifikacija i kvantifikacija funkcionalnosti sustava

• Klasični elementi funkcionalnosti koji se prebrojavaju; 

 – Upiti – odgovori na zahtjev koji ne mijenjaju podatke.

(upit za adresom zaposlenika)

 – Ulazi –podaci koji se stavljaju u aplikaciju

(unos zaposlenika i svih njegovih polja)

 – Izlazi – prikazi podataka u aplikaciji

(ekranski prikaz, report zaposlenika…) 

 – Interne datoteke – logičke cjeline podataka u datoteci (zaposlenici, odjeli, ustanove…) 

 – Vanjska sučelja – podaci koji se dijele s ostalim programima

(zaposlenici se dijele s kadrovskom službom) 

4 4 Analiza funkcijskih točaka

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 29/35

4.4. Analiza funkcijskih točaka • Identificirane pojedine funkcijske točke se klasificiraju kao

 jednostavne, srednje ili složene 

• Težinska tablica funkcijskih točaka 

• Ne postoji standard za brojenje funkcijskih točaka • Važno je zapamtiti da funkcijske točke nastoje izmjeriti

količinu posla koja će biti potrebna za razvoj programskepodrške 

 jednostavna srednja složena 

Izlazi 4 5 7

Upiti 3 4 6

Ulazi 3 4 6

Datoteke 7 10 15

Sučelja  5 7 10

Primjer 8: funkcijske točke

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 30/35

Primjer 8: funkcijske točke • Odjel želi program koji će pridružiti vremena i sobe za svako

predavanje i kreira raspored predavanja za kolegije.

• Odjel ima listu kolegija s imenom profesora i predviđenimbrojem studenata

• Odjel ima listu soba s maksimalnim brojem mjesta za studente

• Odjel ima listu kolegija koji se ne mogu držati istovremeno 

• Ovaj program je mnogo složeniji nego složenost ulaza i izlaza • Ulazi

 – lista kolegija

 – lista soba

 –

lista vremenskih ograničenja kolegija• Izlazi

 – raspored predavanja

• Nema upita ni vanjskih sučelja 

4 5 Produktivnost

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 31/35

4.5. Produktivnost

• Produktivnost se određuje dijeljenjem ukupne veličinezavršenog produkta s ukupnim radom svih programera 

• Jedinica je LOC/PD

• Alternativa je mjerenje produktivnosti u terminima

funkcijskih točaka po PD 

Produktivnost uključuje sav rad u svim aktivnostimaživotnog ciklusa programske podrške 

Primjer 9: produktivnost

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 32/35

Primjer 9: produktivnost

• Procjena funkcijskih točaka projekta = 50FP 

• LOC = 950

• Ukupan rad = 65 PD

• Produktivnost = 950LOC/65PD = 14.6 LOC/PD

• Produktivnost = 50FP/65PD = 0.77FP/PD

Aktivnost Programer Dan

Zahtjevi 20

Oblikovanje 10

Implementacija 10

Testiranje 15

Dokumentacija 10

4 6 Evaluacija procjene

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 33/35

4.6. Evaluacija procjene

• Kako bi se evaluirala procjena, potrebno je izmjeriti

procjenu rada i stvarni rad

• faktor kvalitete procjene je površina stvarne krivuljepodijeljena s površinom između stvarne i procijene krivulje 

• Tom DeMarco kaže ako je omjer veći od 8 onda je dobra

procjena

Primjer 10: evaluacija procjene

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 34/35

Primjer 10: evaluacija procjene

• Sljedeće procjene su dane za projekt koji košta 3.5 M$ izavršen je nakon 11.5 mjeseci 

• ukupna površina = 3.5M$ * 11.5m = 40.25M$m 

• razlika krivulje i procjene =

|2.3-3.5|*(1.5-0) +|3.1-3.5|*(5.5-1.5) +|3.9-3.5|*(8-5.5) + |3.4-3.5|*(11.5-8) = 4.75 M$m

• omjer = 40.25M$m/4.75M$m = 8.7

Inicijalno 2.3 M$

1.5 mjeseci 3.1 M$

5.5 mjeseci 3.9 M$

8 mjeseci 3.4 M$

11.5 mjeseci 0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

0 2 4 6 8 10 12 14

Sažetak

8/18/2019 Upi_p04 Planiranje Projekta

http://slidepdf.com/reader/full/upip04-planiranje-projekta 35/35

Sažetak 

• Planiranje projekta

• Struktura podjele zadataka

• Tehnika evaluacije i recenzije programa

 – PERT

• Procjena troška programske podrške 

 – LOC procjena• procjena troška temeljem LOC-a

• Model konstruktivnog troška - COCOMO

 – procjena funkcijskih točaka 

analiza funkcijskih točaka • produktivnost

• evaluacija procjene