View
222
Download
0
Category
Preview:
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
f
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
f
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
f
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
f
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
Recommended