Gestione di progetto: pianificazione Simona Bernardi Corso di Ingegneria del Software 04/ 05 Prof.Susanna Donatelli Introduzione: dove siamo? Gestione di progetto: Pianificazione Monitoraggio e controllo Terminazione Processo di Produzione Processo Software Processo di Gestione del Processo Sviluppo Gestione Controllo dei cambiamenti Pianificazione: tutto ciò che deve essere fatto prima di iniziare Controllo: il piano viene eseguito ed aggiornato Terminazione per fornire info sul processo di sviluppo
Introduzione: pianificazione Condizione necessaria per il successo di un progetto anche di alto livello SRS Pianificazione Progetto piano piano = {attività} + scheduling + allocazione risorse 3 Attività della pianificazione Stima dei costi Schedule e milestones Pianificazione del personale Pianificazione della qualita del sw Pianificazione per la gestione dei cambiamenti Pianificazione del monitoraggio Gestione dei rischi 4
Stima dei costi Quanto costerà sviluppare il sw? Sono necessarie stime di costo e tempo (schedule) prima di iniziare lo sviluppo del sw Costi: Hardware (tempo di calcolo, memoria, etc.) Software (strumenti sw, compilatori, etc.) Personale Unita di misura: PM = person-month Stime di costo Soggettive Oggettive: uso di modelli matematici 5 Stima dei costi: limiti 4x x.5x.5x x.8x.67x.5x.5x Feasibility Req. System analysis design Detailed design Coding Testing Accepted Sw Accuratezza della stima dei costi 6
Stima dei costi: modelli Maturità della disciplina: - Stime ottenute con il modello COCOMO dopo la specifica dei requisiti ±0% del costo reale sul 68% dei progetti molto buono Modello di stima dei costi: F (x,..,x n ) Problema: - Identificare parametri chiave x,..,x n - Identificare la relazione F 7 Stima dei costi: parametri chiave Dimensioni progetto Abilità del programmatore (fattore 0 di differenza di produttività) Esperienza sviluppatori nel dominio applicativo Complessità progetto Affidabilità (l incremento del costo è spesso esponenziale) Devono essere misurabili!! 8
Stima dei costi: approcci Analisi di regressione Costo = var. dip., Parametri = var. indip. Usa dati storici per predire dati futuri può essere applicata solo se il processo è sotto controllo statistico Funzioni di una sola variabile: Costo = a Dimensione b progetti grandi Costo = a Dimensione + b progetti piccoli Esempio: oltre 60 progetti IBM con linee di codice da 4 a 467 KDLOC Costo = 5. Dimensione 0.9 9 Stima dei costi: dimensioni (I) DLOC = Delivered Lines of Code Solo linee di codice CONSEGNATE come parte del prodotto parti relative al test e altro supporto sw escluso Linee di codice create dallo staff codice generato automaticamente da applicativi escluso DLOC = una linea logica di codice e.g., "if-then-else viene conteggiato come DLOC Dichiarazioni incluse Commenti esclusi DFP = Delivered Function Point Misurano la funzionalità del sistema in termini di n. di funzioni che implementa, n. di input, n. di output, etc. 0
Stima dei costi: dimensioni (II) Problema di stima dei costi Problema di stima delle dimensioni È più facile stimare le dimensioni che i costi poichè la dimensione gode della proprietà additiva il costo NO! Dim. totale = Σ Dim. componenti Stima dei costi: modello COCOMO COnstructive COst MOdel Il costo é funzione di più di una variabile in cui la dimensione (in KDLOC) è il fattore primario Passi di base:. Ottenere una stima iniziale del costo di sviluppo (in PM) modello di base. Determinare un insieme di 5 fattori moltiplicativi di costo dalle caratteristiche del progetto 3. Aggiustare la stima moltiplicando la stima iniziale con i fattori di costo determinati al passo )
COCOMO: stima iniziale E i = a * (KDLOC) b I parametri a e b dipendono dal tipo di progetto: Progetto organic semidetached embedded a 3. 3.0.8 b.05..0 3 COCOMO: attributi di costo (I) Product Computer Personnel Project 4
COCOMO: aggiustamento della stima iniziale La stima iniziale viene aggiustata con un fattore moltiplicativo: EAF = Effort Adjustment Factor EAF pesa gli attributi: Del prodotto Del computer Del personale Del progetto E = E i * EAF dove EAF = 5 i = A i 5 COCOMO: stima del costo per ciascuna fase (I) Il metodo permette di ottenere una stima globale del costo di sviluppo Per il monitoraggio/controllo è utile avere una stima del costo ripartita su ciascuna fase dello sviluppo Il costo di una fase è una % del costo globale e dipende dal tipo e dalla dimensione del progetto 6
COCOMO: stima del costo per ciascuna fase (II) Fase Progetto Prog.dettagliato Codifica e test Integrazione e test Dimensione(KDLOC) 8 3 8 6 6 6 6 6 5 4 3 4 40 38 36 6 9 5 Organico 7 COCOMO: stima del costo per ciascuna fase (III) Per valori intermedi si usa l interpolazione lineare (NB: Nel libro pag. 68 c è un errore!) Esempio: la stima del costo di un progetto organico (di 6KDLOC) è di 0 PM qual è il costo per la codifica e il test? % di costo per la codifica e test per un progetto di 6KDLOC 40 + 38-40 (6 8) = 39,34% 3-8 Costo per la codifica e test: 0PM * 39,34% = 7.868 PM 8
COCOMO: esempio (I) Sistema per automazione d ufficio (organico stima dimensioni: 3 KDLOC) Attributi di costo considerati rilevanti:. Product complexity Alta.5. Main storage constraint Alta.06 3. Application experience Bassa.3 4. Programmer capability Bassa.7 Per gli altri tasso nominale (.0) EAF =.5 *.06 *.3 *.7 =.6 9 COCOMO: esempio (II) Costo stimato iniziale: E i = 3. * (3 KDLOC).05 = 0.4 PM Costo stimato finale: E = E i * EAF = 0.4 PM *.6 = 6.3 PM 0
TABELLA COCOMO: esempio (III) Costo stimato per ciascuna fase: o Progetto 6.3PM * o 6 + 6-6 8- *(3-) Progetto dettagliato = 6.3 PM *.6 =.6PM 6.3PM * 6 + 5-6 8- *(3-) = 6.3 PM *.58 = 4.PM o Codifica e test = 6.3PM *.466 =6.8PM o Integrazione e test = 6.3PM *.65 =.7PM Attività della pianificazione Stima dei costi Schedule e milestones Pianificazione del personale Pianificazione della qualita del sw Pianificazione per la gestione dei cambiamenti Pianificazione del monitoraggio Gestione dei rischi
Schedule e milestones Obbiettivo: determinare la durata complessiva del progetto e la durata di ciascuna fase del processo di sviluppo La relazione tra la durata del progetto e il costo non è lineare Esempio: Costo = N PM, staff di N persone durata progetto = M Comunicazione tra N persone costo O(N )!! 3 Schedule e milestones: stima della durata Modelli ad una variabile indip. Costanti determinate dai dati storici Modello IBM M = 4. * E 0.36 dove M=mesi Modello COCOMO M =.5 * E 0.38 (sw organico) 4
COCOMO: stima della durata per ciascuna fase Progetto Fase Programmazione* Integrazione 9 63 8 Organico Dimensione(KDLOC) 8 9 59 3 9 55 6 8 9 5 30 *Programmazione = Prog.dettagliato + Codifica + Test unità 5 COCOMO: esempio (IV) Durata complessiva progetto: M=.5 * (6.3) 0.38 = 7. Mesi Durata fasi del progetto: Progetto Programmazione Integrazione 0.9 * 7. =.37 mesi 0.63 * 7. = 4.5 mesi 0.86 * 7. =.34 mesi 6
COCOMO: esempio (V) progetto programmazione integrazione gennaio febbraio marzo aprile maggio giugno luglio agosto 6 7 7 Schedule e milestones: Gantt Chart 8
Schedule e milestones: PERT Charts (I) PERT = Program Evaluation and Review Technique Activity box Legame di precedenza 9 Schedule e milestones: PERT Charts (II) A e B devono essere completate prima che C possa iniziare A e B condotte in parallelo A dura 5 gg.,b 4 gg. e C 4gg. Durata totale max(5,4)+4 = 9gg. Tempo libero (spare time) P e Q attività parallele Q ha 3gg. di tempo libero Q può iniziare 3 gg. dopo P senza ritardare l inizio dell attività seguente (R) 30
Schedule e milestones: PERT Charts (III) Identificazione dei cammini critici, e.g., sequenze temporali di attività (tra di loro relazionate) che richiedono i tempi più lunghi 3 Attività della pianificazione Stima dei costi Schedule e milestones Pianificazione del personale Pianificazione della qualita del sw Pianificazione per la gestione dei cambiamenti Pianificazione del monitoraggio Gestione dei rischi 3
Pianificazione del personale Costi e durate (complessive e per fase) sono noti Numero medio persone sul progetto: N = Costo totale progetto (PM) Durata totale progetto (M) Non è una misura sufficientemente dettagliata COCOMO: si può calcolare N per ciascuna fase e/o per sottosistemi (moduli) 33 COCOMO: esempio (VI) Fase Progetto Programmazione Integrazione Costo.6.0.7 Durata.37 4.5.35 N progetto =.6/.37 =.9 persone N programmazione = /4.5 =.4 persone N integrazione =.7/.35 = persone 34
COCOMO: stima del costo per sottosistemi (I) Produttività nominale ProdNom = Dimensione progetto (KDLOC) E i (PM) Stima iniziale costo per sottosistema S j E ij = Dimensione Sj (KDLOC) ProdNom (KDLOC/PM) 35 COCOMO: stima del costo sottosistemi (II) Per ciascun S j si quantificano gli attributi di costo e si determina EAF j Stima finale di costo per sottosistema S j E j = E i j * EAF j Stima finale di costo per il sistema E = Σ j E j 36
COCOMO: esempio (VII) Sistema per automazione d ufficio (organico stima dimensioni: 3 KDLOC) Moduli principali:. Data entry (600 DLOC). Data update (600 DLOC) 3. Query (800 DLOC) 4. Report generation ( KDLOC) 37 COCOMO: esempio (VIII) Produttività nominale ProdNom = 3 KDLOC 0.4 PM = 0.9 KDLOC/PM Stima iniziale costo per sottosistema S j E i data entry = 0.6/0.9 = PM E i data update = 0.6/0.9 = PM E i query = 0.8/0.9 =.7 PM E i reports =.0/0.9 = 3.4 PM 38
COCOMO: esempio (IX) Stesso EAF =.6 per ogni S j Stima finale di costo per S j (include il costo di tutte le fasi) E data entry = *.6 = 3. PM E data update = *.6 = 3. PM E query =.7 *.6 = 4.3 PM E reports = 3.4 *.6 = 5.4 PM Stima finale progetto: 6. PM 39 Pianificazione del personale: piano Tabella che specifica il n. di persone allocate al progetto per mese Riga = attività Colonna = mesi Ultima riga = totale costo al mese Ultima colonna = totale costo attività Sono necessarie diverse iterazioni per ottenere valori consistenti con le stime calcolate il totale del piano può non coincidere con il costo totale stimato 40
COCOMO: esempio (X) Attività Progetto Data entry G F M A M G L A 3 Data update Query.5 Report.5 4 Integrazione 3.5 3 6.5 4 Pianificazione del personale: struttura dello staff(i) Democratico (egoless) tutti parlano con tutti capo a rotazione progetti di ricerca a lungo termine senza scadenze rigide 4
Pianificazione del personale: struttura dello staff(ii) Gerarchico capo capo di riserva bibliotecario programmatori Riduce le comunicazioni poche discussioni Progetti semplici con scadenze rigide Team decentralizzato controllato 43 Modello COCOMO Riferimenti B.W. Boehm, Software Engineering Economics, ISBN 0-3- 8-7 Prentice Hall, 98 (biblio L3073) Software Cost Estimation: Metrics and Models http://www.ivm.org.uk/aboutivm_publications_softwarevalueeng.htm COCOMO II Cost Driver and Scale Driver Help http://sunset.usc.edu/research/cocomoii/expert_coco mo/drivers. html Pert Charts tutorial http://www.getahead.uk.com/gwprpert. htm 44
Fine lezione 45 Formula interpolazione lineare Dati due punti P 0 (x 0,y 0 ) e P (x,y ) Equazione della retta passante per P 0 e P : y = y 0 + y y 0 x x 0 (x x 0 ) x (x 0,x ) 46