Corso di Ingegneria del Software a.a. 2009/2010...

50
Corso di Ingegneria del Software a.a. 2009/2010 I costi del software Corso di Ingegneria del Software a.a. 2009/2010 I costi del software Mario Vacca [email protected]

Transcript of Corso di Ingegneria del Software a.a. 2009/2010...

Page 1: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

[email protected]

Page 2: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

Corso di Ingegneria del Software a.a. 2009/2010 I costi del software

CoCoMo I

Il metodo CoCoMo

CoCoMo I

Riepilogo

Page 3: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

Corso di Ingegneria del Software a.a. 2009/2010 I costi del software

CoCoMo I

Il metodo CoCoMo

CoCoMo I – Riepilogo

Page 4: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 5: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 6: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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)

Page 7: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 8: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 9: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 10: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 11: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 12: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

Corso di Ingegneria del Software a.a. 2009/2010 I costi del software

CoCoMo I

Il metodo CoCoMo

CoCoMo II

Page 13: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 14: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 15: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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).

Page 16: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 17: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 18: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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:

Page 19: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 20: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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:

Page 21: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 22: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 23: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 24: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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”).

Page 25: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 26: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 27: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 28: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 29: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 30: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 31: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 32: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 33: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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)

Page 34: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 35: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 36: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 37: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 38: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 39: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 40: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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;.

Page 41: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 42: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.

Page 43: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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%

Page 44: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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)

Page 45: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

Corso di Ingegneria del Software a.a. 2009/2010 I costi del software

CoCoMo I

Il metodo CoCoMoCoCoMo II – Riepilogo

Page 46: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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/

Page 47: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

Corso di Ingegneria del Software a.a. 2009/2010 I costi del software

CoCoMo I

Il metodo CoCoMoCostar

http://www.softstarsystems.com/tourmain.htm

Page 48: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 49: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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

Page 50: Corso di Ingegneria del Software a.a. 2009/2010 …infocom.uniroma1.it/~cdainformazione/uploads/Ingegneri...Corso di Ingegneria del Software a.a. 2009/2010 I costi del software CoCoMo

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.