corso di ingegneria del software a.a. 2009/2010...
TRANSCRIPT
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
Corso di Ingegneria del Softwarea.a. 2009/2010
I costi del software
Mario Vacca
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo I
Riepilogo
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo I – Riepilogo
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
I costi del software
Sommario
1. Costi nella XP
2. Concetti di base
3. CoCoMo I
4. CoCoMo II
5. Bibliografia
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II
Limiti di CoCoMo
I sviluppo ad oggetti e a componenti
I riuso di software gia esistente
I volatilita dei requisiti
I processi di sviluppo iterativi ed incrementali
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II
CoCoMo II cerca di superare i limiti di CoCoMo Ipreservando i modelli precedenti (CoCoMo I)
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Ambiti di applicazione
Ambiti di applicazione:
I Application Compositionapplicazioni diversificate, da sviluppare ad hoc (prodotti custom).
I Application Generators & Composition Aidssoftware incluso in pacchetti COTS per utenti finali
I Systems Integrationsoftware altamente specializzato, incluso in sistemi di grandidimensioni che richiedono molto sforzo di progettazione.
Non si applica:
I End-User Programmingprogrammi piccoli e flessibili, sviluppati dagli stessi utenti attraversodegli Application Generators
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Modelli di stima
I Early Prototyping
si usa nelle fasi iniziali (analisi dei requisiti e specifica – utilizzo diprototipi – ricorso al riuso di software gia esistente).
I Early Designsi usa nella fase iniziale di disegno dell’architettura funzionale.
I Post Architecturesi usa quando l’architettura funzionale e tecnica e definita ed edefinito nel dettaglio il piano dei lavori.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Modelli di stima
I Early Prototyping
si usa nelle fasi iniziali (analisi dei requisiti e specifica – utilizzo diprototipi – ricorso al riuso di software gia esistente).
I Early Designsi usa nella fase iniziale di disegno dell’architettura funzionale.
I Post Architecturesi usa quando l’architettura funzionale e tecnica e definita ed edefinito nel dettaglio il piano dei lavori.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Modelli di stima
I Early Prototyping
si usa nelle fasi iniziali (analisi dei requisiti e specifica – utilizzo diprototipi – ricorso al riuso di software gia esistente).
I Early Designsi usa nella fase iniziale di disegno dell’architettura funzionale.
I Post Architecturesi usa quando l’architettura funzionale e tecnica e definita ed edefinito nel dettaglio il piano dei lavori.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Modelli di stima
I Early Prototyping
si usa nelle fasi iniziali (analisi dei requisiti e specifica – utilizzo diprototipi – ricorso al riuso di software gia esistente).
I Early Designsi usa nella fase iniziale di disegno dell’architettura funzionale.
I Post Architecturesi usa quando l’architettura funzionale e tecnica e definita ed edefinito nel dettaglio il piano dei lavori.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
I costi del software
Sommario
1. Costi nella XP
2. Concetti di base
3. CoCoMo I
4. CoCoMo II
I Early PrototypingI Early DesignI Post Architecture
5. Bibliografia
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
MM =NOP �
100�%Riuso
100PROD
I NOP: Numero di object points (schermate, reports e moduli) darealizzare
I PROD: Produttivita degli sviluppatori in object points al mese (OPper month)
I %Riuso: Percentuale di software da sviluppare che verra riusatoprendendolo da altri progetti.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
Object Points:
I N. di schermate che vengono visualizzate dal programma (schermatesemplici 1 OP, mediamente complesse 3 OP, complesse 3).
I N. di report prodotti dal programma (report semplici 2 OP,mediamente complessi 5, complessi 8).
I N. di moduli in linguaggio imperativo (es. Java, C++) che devonoessere scritti (1 modulo = 10 OP).
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
As another definitional point, note that the use of the term “object” in“Object Points” defines screens, reports, and 3GL modules as objects.This may or may not have any relationship to other definitions of “object-s”, such as those possessing features such as class affiliation, inheritance,encapsulation, message passing, and so forth.
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
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
1. si individuano gli object points da realizzare
2. si classifica ogni object point in base alla sua “complessita”(semplice, media, difficile), utilizzando queste tabelle:
srvr: number of server (mainframe or equivalent) data tables used in conjunction with the SCREEN or REPORT.
clnt: number of client (personal workstation) data tables used in conjunction with the SCREEN or REPORT.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
3) si assegna un peso ad ogni object point utilizzando questa tabella:
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
4) si sommano gli object points pesati5) si stima la percentuale di riuso attesa e si calcolano gli OP che devonoessere sviluppati usando la formula (che include l’incidenza del riuso nellosviluppo):
NOP = (ObjectPoints) �100�%Riuso
100
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
6) si determina il tasso di produttivita PROD utilizzando la tabellaseguente:
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model
7) si stima MM:
MM =NOP
PROD
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Prototyping Model– Esempio
1. N. e complessita degli Object Points:15 screens (3 semplici, 11 medi, 1 difficile)4 reports (3 semplici, 1 difficile)5 moduli
2. Calcolo Objects Points pesati:OP = (3 x 1 + 11 x 2 + 1 x 3) + (3 x 2 + 1 x 8) + (5 x 10) = 92
3. Calcolo NOP (riuso previsto al 10%):NOP = 92 * (100 - 10)/100 = 82.8 mm
4. Produttivita PROD = 25 OP al mese
MM = 82.8/25 = � 3 – 4 mesi–persona
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
I costi del software
Sommario
1. Costi nella XP
2. Concetti di base
3. CoCoMo I
4. CoCoMo II
I Early PrototypingI Early DesignI Post Architecture
5. Bibliografia
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
MM = EAF � 2:94 � Sb
EAF =7Y
i=1
(Fc)i
S: dimensione del software da sviluppare (in KLOC)b: esponente il cui valore va calcolato considerando 5 fattori di complessitadel progetto (di “scala”).
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
EAF = PERS * RCPX * RUSE * PDIF * PREX * FCIL * SCED
I RCPX - product reliability and complexity;
I RUSE - the reuse required;
I PDIF - platform difficulty;
I PREX - personnel experience;
I PERS - personnel capability;
I SCED - required schedule;
I FCIL - the team support facilities.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
Calcolo di S con incidenza del riuso
ESLOC = ASLOC�(AA + SU � UNMF + 0:4 � DM + 0:3 � CM + 0:3 � IM)
100
dove:I SU = livello comprensione del software (0-50, da tabella)
I UNMF = livello di familiarita sviluppatori col software
I AA = livello di analisi da effettuare per il riuso (0-8, da tabella)
I DM = % di modifiche necessarie al disegno del software
I CM = % di modifiche al codice sorgente da riusare
I IM = % di integrazioni da effettuare sul software da riusare
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMoCoCoMo II – Early Design Model
I SU Software Understanding(aspetti rappesentati: strutturazione del progetto; chiarezza deldominio applicativo; autoesplicativita del codice)Progetto che contempla aspetti =) penalizzazione del 10%;Progetto carente in questi aspetti =) un aumento dello sforzo del50%.
Se non c’e modifica nel progetto o nel codice (DM=0 e CM=0) SU non va calcolato
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
I UNFM Programmer Unfamiliarity
UNFM increment Level of Unfamiiarity0.0 Completely unfamiliar0.2 Mostly unfamiliar0.4 Somewhat unfamiliar0.6 Considerably unfamiliar0.8 Mostly unfamiliar1.0 Completely unfamiliar
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
I AA (Assessment and Assimilation)indica quanto lavoro occorre fare per poter effettivamente riusare unmodulo
AA Increment Level of AA Effort0 None2 Basic module search and documentation4 Some module Test and Evaluation (T&E), documentation6 Considerable module T&E, documentation8 Extensive module T&E, documentation
Quanto sforzo e necessario per:- valutare se il codice da integrare e appropriato- integrare la sua descrizione nella descrizione del prodotto complessivo
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMoCoCoMo II – Early Design Model
Modulo software di 8k LOC
I valutazione e documentazione semplici AA = 2
I codice ben scritto e documentato SU = 20
I codice sorgente sconosciuto UNF = 1.0
I % di progetto da modificare 10% DM = 10
I % di codice da modificare 20% CM = 20
I % sforzo di integrazione 35% IM = 35
ESLOC = ASLOC�(AA + SU � UNMF + 0:4 � DM + 0:3 � CM + 0:3 � IM)
100
ESLOC = 8�[2+20+0:4�10+0:3�20+0:3�35]=100 = 8[42:5]=100 = 3:4
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMoCoCoMo II – Early Design Model
Modulo software di 8k LOC
I valutazione e documentazione semplici AA = 2
I codice ben scritto e documentato SU = 20
I codice sorgente sconosciuto UNF = 1.0
I % di progetto da modificare 10% DM = 10
I % di codice da modificare 20% CM = 20
I % sforzo di integrazione 35% IM = 35
ESLOC = ASLOC�(AA + SU � UNMF + 0:4 � DM + 0:3 � CM + 0:3 � IM)
100
ESLOC = 8�[2+20+0:4�10+0:3�20+0:3�35]=100 = 8[42:5]=100 = 3:4
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
Incidenza della volatilita dei requisiti (che puo aumentare il Size nominale)
Sizebrak = Size � (1 +Brak
100)
dove:Size = Volume di software al netto del riuso.Brak = % di codice scartato a causa della volatilita dei requisiti nelprogetto.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
Size = (NewSLOC + ESLOC ) � (1 +Brak
100)
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMoCoCoMo II – Early Design Model
Calcolo del fattore b
b = 0:91 + 0:01 �5X
i=1
Wi
Wi sono i livelli di influenza sul progetto assegnati a 5 fattori.B tiene conto di economie e diseconomie per scala di progetti di diversedimensioniFattori:
I Precedentedness (PREC) – (ambiente “noto”),Descrive la similarita con prececdenti progetti. Se un prodotto risulta simile a diversiprogetti gia sviluppati, allora la PREC e bassa.
I Development Flexibility (FLEX) – (flessibilita dei vincoli)
I Architecture/Risk Resolution (RESL) – architettura
I Team Cohesion (TEAM) – coesione dei team
I Process Maturity (PMAT) – maturita del processo lavorativoDescrive il livello di maturita del processo di sviluppo
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Early Design Model
Fattori
ScaleFactorsWi Molto basso Basso Nominale Alto Molto alto Extra altoPREC 6.22 4.96 3.72 2.48 1.24 0FLEX 5.07 4.05 3.04 2.03 1.01 0RESL 7.07 5.65 4.24 2.83 1.41 0
TEAM 5.48 4.38 3.29 2.19 1.10 0PMAT 7.08 6.24 4.68 3.12 1.56 0
Se tutti molto bassi si ha: b = 0,91+0,01 x 30,92 = 1,22Se tutti nominali si ha: b = 0,91+0,01 x 18,97 = 1,09Se tutti extra alti si ha: b = 0,91+0,01 x 0 = 0,91
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
I costi del software
Sommario
1. Costi nella XP
2. Concetti di base
3. CoCoMo I
4. CoCoMo II
I Early PrototypingI Early DesignI Post Architecture
5. Bibliografia
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Post Architecture model
MM = EAF � a � Sb
dove:
S = dimensione del software da sviluppare (in KLOC)
a = costante (pari a 2.94)
b = esponente il cui valore va calcolato considerando 5 fattorirelativi alla scala del progetto (come in Early Design Model)
EAF =Q17
i=1(Fc)i
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Post Architecture model
classi di fattori (prodotto, piattaforma, personale, progetto)
I Fattori legati al prodottoQuesta famiglia di fattori include gli aspetti dovuti al progetto apartire dall’affidabilita fino alla completezza richiesta delladocumentazione.
I Fattori legati alla piattaforma
I Fattori legati al personale
I Fattori legati al progetto
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Post Architecture model – Esempi di Fattori legati alprodotto
I RELY Required – Software ReliabilityIl fattore moltiplicativo RELY identifica l’affdabilita richiesta alprodotto software che si sta sviluppando.Livelli:Molto Basso: piccoli inconvenienti;Basso: piccole perdite di dati facilmente recuperabili;Nominale: perdite di dati facilmente recuperabili;Alto: grosse perdite economiche;
Molto alto: rischio di vita.
I DATA – Data Base SizeIl fattore moltiplicativo DATA rappresenta la dimensione relativadella base di dati a supporto del prodotto.Livelli:Basso: DBbytes/PgmSLOC < 10; –Nominale: 10 � D/P < 100;Alto: 100 � D/P < 1000;
Molto Alto: D/P � 1000.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Post Architecture model– Esempio di Fattore legati allapiattaforma
TIME Execution – Time ConstraintFattore che tiene conto di vincoli a livello di tempi di esecuzione;
I Nominale: Uso di meno del 50disponibile;
I Alto: Uso del 70% del tempo di esecuzione disponibile;
I Molto Alto: Uso del 85% del tempo di esecuzione disponibile;;
I Extra Alto: Uso del 95% del tempo di esecuzione disponibile;.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Post Architecture model – Esempio di Fattore legati alpersonale
PCON – Personnel ContinuityQuesto fattore tiene conto del turn-over del personale che partecipa alprogetto;Molto basso: 48% / anno;Basso: 24% / anno;Nominale: 12% / anno;Alto: 6% / anno;Molto Alto: 3% / anno.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Post Architecture model – Esempio di Fattore legati alprogetto
TOOL – Use ofSoftware ToolsQuesto fattore sottolinea l’importanza dell’uso di specifici tool integratiper la gestione del processo di sviluppo;Molto Basso: edit, code, debug;Basso: frontend, backend CASE, piccola integrazione;Nominale: basic lifecycle tools, integrazione moderata;Alto: strong lifecycle tools, integrazione moderata;Molto ALto: strong lifecycle tools, integrazione forte.
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Post Architecture model
Per determinare la durata dello sviluppo Tdev, si usa la seguente equazione:
Tdev = 3:67 �MM(0:28+02�(B�1:01))� SCED
dove
B = 0:91 + 0; 01 �5X
i=1
Fi
Fi sono 5 fattori di scala (PREC, FLEX, RESL, TEAM, PMAT)SCED = estensione % dei tempi del progetto rispetto a un progettostandard
Molto Basso Basso Nominale Alto Molto AltoSCED 75% 85% 100% 130% 160%
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
CoCoMo II – Riepilogo
I Early Design modeladatto alla fase iniziale del progettopoche informazioni/poco dettaglio (FP)7 fattori di costo
I Post-Architecture modelpensato per lo sviluppo e la manutenzione del SW17 fattori di costo
I 5 fattori per il calcolo dell’esponenten sostituiscono i tre tipi di progetto (organic, semi-detached,embedded)
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMoCoCoMo II – Riepilogo
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
Costar
“Costar is a software estimation tool based on the Constructive Cost Model(COCOMO) described by Barry Boehm in his books Software EngineeringEconomics and Software Cost Estimation with COCOMO II.”http://www.softstarsystems.com/
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMoCostar
http://www.softstarsystems.com/tourmain.htm
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Il metodo CoCoMo
Costar
CoCoMO 81http://sunset.usc.edu/research/COCOMOII/cocomo81_pgm/cocomo81.htmlCoCoMo IIhttp://www.cms4site.ru/utility.php?utility=cocomoii
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
I costi del software
Sommario
1. Costi nella XP
2. Concetti di base
3. CoCoMo I
4. CoCoMo II
5. Bibliografia
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software
CoCoMo I
Bibliografia
Riferimenti bibliografici
1. R. Pressman “Ingegneria del software”, Mc Graw Hill Italia, 5aedizione, 2007.
2. K. Beck “Programmazione estrema”, Addison-Wesley, 2000,capitolo 26.
3. Sito uffciale del metodo CoCoMohttp://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.