Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it
Riepilogo
Tre stime Base livello specifiche Intermedio livello architettura Dettagliato livello architettura di dttaglio
Modello Base MM = a S b T dev = c MM d a,b,c,d costanti dipendenti dal tipo di software
Modello Base Tipo di applicazione Semplice (Organic Mode) 2KLOC < dimensione < 50KLOC requisiti poco poco variabili Intermedia (Semi-detached Mode) dimensione < 300 KLOC Complessa (Embedded Mode) Applicazioni militari, per il controllo del volo, ecc
Riepilogo
1. Costi nella XP 2. Concetti di base 3. 4. I 5. Bibliografia Modello Base Modello Intermedio Modello Dettagliato Sommario
Modello Intermedio MM = EAF a (S) b a,b,c,d costanti dipendenti dal tipo di software tipo di applicazione a b c d Semplice 3.2 1.05 2.5 0.38 Intermedia 3 1.12 2.5 0.35 Complessa 2.8 1.2 2.5 0.32 Y15 EAF = i=1 EM i (EAF = Effort Adjustment Factor) EM i (effort multipliers) sono 15 fattori di complessità del progetto (fattori correttivi cost drivers)
Modello Intermedio Fattori correttivi Driver di costo includono la valutazione soggettiva del prodotto, dei fissaggi, dei personali e degli attributi di progetto. Attributi di prodotto Affidabilità richiesta del software RELY: REquired software reliability Formato della base di dati di applicazione DATA: DATA base size Complessità del prodotto CPLX: product ComPLeXity Attributi di sistema Vincoli di prestazioni Run-time TIME: execution TIME constraint Vincoli di memoria STOR: main STORage constraint Volatilità dell ambiente virtuale della macchina VIRT: VIRTual machine volatility Tempo di turnaround richiesto TURN: computer TURNaround time
Modello Intermedio Fattori correttivi Driver di costo includono la valutazione soggettiva del prodotto, dei fissaggi, dei personali e degli attributi di progetto. Attributi di prodotto Affidabilità richiesta del software RELY: REquired software reliability Formato della base di dati di applicazione DATA: DATA base size Complessità del prodotto CPLX: product ComPLeXity Attributi di sistema Vincoli di prestazioni Run-time TIME: execution TIME constraint Vincoli di memoria STOR: main STORage constraint Volatilità dell ambiente virtuale della macchina VIRT: VIRTual machine volatility Tempo di turnaround richiesto TURN: computer TURNaround time
Modello Intermedio Fattori correttivi Driver di costo includono la valutazione soggettiva del prodotto, dei fissaggi, dei personali e degli attributi di progetto. Attributi di prodotto Affidabilità richiesta del software RELY: REquired software reliability Formato della base di dati di applicazione DATA: DATA base size Complessità del prodotto CPLX: product ComPLeXity Attributi di sistema Vincoli di prestazioni Run-time TIME: execution TIME constraint Vincoli di memoria STOR: main STORage constraint Volatilità dell ambiente virtuale della macchina VIRT: VIRTual machine volatility Tempo di turnaround richiesto TURN: computer TURNaround time
Modello Intermedio Fattori correttivi Attributi del personale Capacità dell analista ACAP - Analyst CAPability Capacità del programmatore PCAP - Programmer CAPability Esperienza della applicazione AEXP - Application EXPerience Esperienza virtuale della macchina VEXP - Virtual machine EXPerience Esperienza di linguaggio di programmazione LEXP - Program. Lang. EXPer. Attributi di progetto Uso degli strumenti software TOOL - use of software TOOLs Applicazione dei metodi di tecnologia della programmazione MODP: MODern Program. practices Programma richiesto di sviluppo SCED - SChEDule constraints
Modello Intermedio Fattori correttivi Attributi del personale Capacità dell analista ACAP - Analyst CAPability Capacità del programmatore PCAP - Programmer CAPability Esperienza della applicazione AEXP - Application EXPerience Esperienza virtuale della macchina VEXP - Virtual machine EXPerience Esperienza di linguaggio di programmazione LEXP - Program. Lang. EXPer. Attributi di progetto Uso degli strumenti software TOOL - use of software TOOLs Applicazione dei metodi di tecnologia della programmazione MODP: MODern Program. practices Programma richiesto di sviluppo SCED - SChEDule constraints
Modello Intermedio Fattori correttivi Attributi del personale Capacità dell analista ACAP - Analyst CAPability Capacità del programmatore PCAP - Programmer CAPability Esperienza della applicazione AEXP - Application EXPerience Esperienza virtuale della macchina VEXP - Virtual machine EXPerience Esperienza di linguaggio di programmazione LEXP - Program. Lang. EXPer. Attributi di progetto Uso degli strumenti software TOOL - use of software TOOLs Applicazione dei metodi di tecnologia della programmazione MODP: MODern Program. practices Programma richiesto di sviluppo SCED - SChEDule constraints
Modello Intermedio Fattori correttivi Ciascuno dei 15 attributi riceve una valutazione su una scala del sei-punto che varia da Molto basso ad Estremamente alto : Molto basso Basso Normale/nominale Alto Molto alto Estremamente alto A ciascuna valutazione corrisponde un valore. Il prodotto di tutti i moltiplicatori di sforzo è il coefficiente di adattamento di sforzo (EAF). I valori tipici per EAF variano da 0.9 a 1.4.
Modello Intermedio Fattori correttivi PRODOTTO CPLX (product ComPLeXity) (0.70-0.85-1.0-1.15-1.30-1.65) RELY: REquired software reliability (0.75-0.88-1.0-1.15-1.40-n/a) DATA: DATA base size (n/a-0.94-1.0-1.08-1.16-n/a)
Modello Intermedio Fattori correttivi SISTEMA TIME: execution TIME constraint (n/a-1.0-1.11-1.30-1.66-n/a) STOR: main STORage constraint (n/a-1.0-1.06-1.21-1.56-n/a) VIRT: VIRTual machine volatility (n/a-0.87-1.0-1.15-1.30-n/a) TURN: computer TURNaround time (0.87-1.0-1.07-1.15-n/a-n/a)
Modello Intermedio Fattori correttivi Required Software Reliability RELY: Livello di affidabilità richiesto al software Molto basso 0.75 l effetto di un guasto è un semplice inconveniente che non procura danni reali (esempio: errore in un programma di demo). Basso 0.88 l effetto di un errore è facilmente recuperabile Nominale 1.00 l effetto è considerato in modo significativo dall utente, che comunque è in grado di gestirlo senza eccessivi problemi. Alto 1.15 l effetto di un errore può causare gravi perdite finanziarie (esempio: sistemi bancari). Molto alto 1.40 rischi per la vita umana (esempio: avionica).
Modello Intermedio Fattori correttivi PERSONALE ACAP - Analyst CAPability (1.40-1.19-1.0-0.86-0.71-n/a) AEXP - Application EXPerience (1.29-1.13-1.0-0.91-0.82-n/a) PCAP - Programmer CAPability (1.42-1.17-1.0-0.86-0.7-n/a) VEXP - Virtual machine EXPerience 1.21-1.10-1.0-0.90-n/a-n/a) LEXP - Program. Lang. EXPer. (1.14-1.07-1.0-0.95-n/a-n/a)
Modello Intermedio Fattori correttivi Applications experience AEXP: Livello di esperienza media del team di sviluppo nel settore applicativo considerato Molto Basso 1.29 4 mesi. Basso 1.13 1 anno. Nominale 1.00 3 anni. Alto 0.91 6 anni. Molto alto 0.82 12 anni.
Modello Intermedio Fattori correttivi PROGETTO MODP: MODern Program. practices (1.24-1.10-1.0-0.91-0.82-n/a) TOOL - use of software TOOLs (1.24-1.10-1.0-0.91-0.83-n/a) SCED - SChEDule constraints (1.23-1.08-1.0-1.04-1.10-n/a)
Modello Intermedio Fattori correttivi Modern Programming Practice MODP: Livello qualitativo delle tecniche di sviluppo utilizzate nel progetto (sviluppo top-down,... ) Molto basso 1.24 nessuna tecnica utilizzata Basso 1.10 Inizio di uso sperimentale Nominale 1.00 Esperienza significativa nell uso di qualche tecnica Alto 0.91 Esperienza significativa nell uso della maggior parte delle tecniche. Molto alto 0.82 Uso di routine delle diverse tecniche.
Modello Intermedio Esempio Sviluppo di un software con le seguenti caratteristiche: embedded mode 10 KLOC MM = EAF 2:8 (10) 1:2 = EAF 44
Modello Intermedio Esempio Sviluppo di un software con le seguenti caratteristiche: embedded mode 10 KLOC MM = EAF 2:8 (10) 1:2 = EAF 44
Modello Intermedio Esempio RELY NOMINALE 1.00 local use of system, no serious recovery problems DATA BASSO 0.94 20 KByte CPLX MOLTO ALTO 1.30 communication processing TIME ALTO 1.11 usa il 70% del tempo disponibile STOR ALTO 1.06 usa il 70% della memoria disponibile
Modello Intermedio Esempio VIRT NOMINALE 1.00 ambiente commerciale standard TURN NOMINALE 1.00 2 ore mediamente ACAP ALTO 0.86 good senior analysts AEXP NOMINALE 1.00 three years PCAP HIGH 0.86 good senior programmers
Modello Intermedio Esempio VEXP BASSO 1.10 sei mesi LEXP NOMINALE 1.00 dodici mesi MODP ALTO 0.91 most techniques in use over one year TOOL BASSO 1.10 PC tool livello base SCED NOMINALE 1.00 nove mesi
Modello Intermedio Esempio Calcolo dei coefficienti correttivi EAF = 1 0:94 1:3 1; 11 1; 06 1 1 0:86 1 0:86 1:1 1 0:91 1:1 1 = 1:17 MM = EAF 2:8 (10) 1:2 = EAF 44 MM = 1:17 44 = 51 Costo complessivo: 51 * 300 * 19 = 51 * 5700 = 290700
Modello Intermedio Esempio Calcolo dei coefficienti correttivi EAF = 1 0:94 1:3 1; 11 1; 06 1 1 0:86 1 0:86 1:1 1 0:91 1:1 1 = 1:17 MM = EAF 2:8 (10) 1:2 = EAF 44 MM = 1:17 44 = 51 Costo complessivo: 51 * 300 * 19 = 51 * 5700 = 290700
Modello Intermedio Esempio Calcolo dei coefficienti correttivi EAF = 1 0:94 1:3 1; 11 1; 06 1 1 0:86 1 0:86 1:1 1 0:91 1:1 1 = 1:17 MM = EAF 2:8 (10) 1:2 = EAF 44 MM = 1:17 44 = 51 Costo complessivo: 51 * 300 * 19 = 51 * 5700 = 290700
Modello Intermedio Esempio Calcolo dei coefficienti correttivi EAF = 1 0:94 1:3 1; 11 1; 06 1 1 0:86 1 0:86 1:1 1 0:91 1:1 1 = 1:17 MM = EAF 2:8 (10) 1:2 = EAF 44 MM = 1:17 44 = 51 Costo complessivo: 51 * 300 * 19 = 51 * 5700 = 290700
1. Costi nella XP 2. Concetti di base 3. 4. I 5. Bibliografia Modello Base Modello Intermedio Modello Dettagliato Sommario
Modello Dettagliato Il modello dettagliato permette di modulare il valore assegnato ai 15 fattori di complessità (cost driver) in funzione di 4 fasi del ciclo di vita: 1. RPD Requirements & Product Design 2. DD Detailed Design 3. CUT Code and Unit Test 4. IT Integrate & Test
Modello Dettagliato a, b, c, d modello Dettagliato = a, b, c, d modello Intermedio
Modello Dettagliato I valori dei cost driver dipendono dalle fasi del ciclo di sviluppo. Esempio: ìefficienza del personale di analisîı (ACAP) PD DD CUT IT Molto basso 1.8 1.35 1.35 1.5 Basso 0.85 0.85 0.85 1.2 Nominale 1 1 1 1 Alto 0.75 0.9 0.9 0.85 Molto alto 0.55 0.75 0.75 0.7
Riepilogo
Riepilogo
Riepilogo Statistiche sull accettabilità di COCOMO I COCOMO base accettabile in circa il 25% dei casi. COCOMO intermedio accettabile in circa il 68% dei casi. COCOMO avanzato accettabile in circa 70% dei casi.
Riepilogo Statistiche sull accettabilità di COCOMO I COCOMO base accettabile in circa il 25% dei casi. COCOMO intermedio accettabile in circa il 68% dei casi. COCOMO avanzato accettabile in circa 70% dei casi.
Riepilogo Statistiche sull accettabilità di COCOMO I COCOMO base accettabile in circa il 25% dei casi. COCOMO intermedio accettabile in circa il 68% dei casi. COCOMO avanzato accettabile in circa 70% dei casi.
Riepilogo Statistiche sull accettabilità di COCOMO I COCOMO base accettabile in circa il 25% dei casi. COCOMO intermedio accettabile in circa il 68% dei casi. COCOMO avanzato accettabile in circa 70% dei casi.
1. Costi nella XP 2. Concetti di base 3. 4. I 5. Bibliografia Sommario
Bibliografia Riferimenti bibliografici 1. R. Pressman Ingegneria del software, Mc Graw Hill Italia, 5a edizione, 2007. 2. K. Beck Programmazione estrema, Addison-Wesley, 2000, capitolo 26. 3. Sito uffciale del metodo CoCoMo http://sunset.usc.edu/csse/research/cocomoii/cocomo_ main.html 4. B. Boehm, B. Clark, E. Horowitz, R. Madachy, R. Shelby, C. Westland, Cost Models for Future Software Life Cycle Processes: COCOMO 2.0 Annals of Software Engineering, 1995. 5. B. Boehm, B. Clark, E. Horowitz, R. Madachy, R. Shelby, C. Westland, The COCOMO 2.0 Software Cost Estimation Model International Society of Parametric Analysts, 1995.