Principi base (1)

17
Ingegneria del software Modulo 2 - Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Lezione 8 – Approfondimenti COCOMO (1)

description

Principi base (1). Il costo è stimato come una funzione matematica di attributi di prodotto, progetto e processo i cui valori sono determinati dai manager di progetto Effort = A ´ Dimensioni B ´ M - PowerPoint PPT Presentation

Transcript of Principi base (1)

Page 1: Principi base (1)

Ingegneria del software

Modulo 2 - Il software come prodotto

Unità didattica 2 - I costi del software

Ernesto Damiani

Università degli Studi di Milano

Lezione 8 – Approfondimenti COCOMO (1)

Page 2: Principi base (1)

Principi base (1)

• Il costo è stimato come una funzione matematica di attributi di prodotto, progetto e processo i cui valori sono determinati dai manager di progetto

– Effort = A DimensioniB M

– A è una costante che dipende dall’organizzazione, B riflette l’effort non proporzionale per grandi progetti e M è un moltiplicatore che riflette attributi di persone, processi e prodotti.

Page 3: Principi base (1)

Principi base (2)

• L’attributo di prodotto usato più comunemente per la stima dei costi è la dimensione del codice

• In genere, i modelli sono simili, ma usano valori diversi per A, B e M.

Page 4: Principi base (1)

Precisione della stima

• Le dimensioni di un sistema software possono essere note con precisione solo quando il sistema è terminato

• Man mano che il processo di sviluppo progredisce, la stima delle dimensioni diventa più precisa

• Molti fattori influenzano le dimensioni finali:– l’uso di COTS e componenti

– il linguaggio di programmazione

– la distribuzione di sistema

Page 5: Principi base (1)

Incertezza della stima

Page 6: Principi base (1)

Richiami a COCOMO 81

Page 7: Principi base (1)

COCOMO II

• COCOMO 81 è stato sviluppato con il presupposto che sarebbe stato usato un processo waterfall e che tutto il software sarebbe stato sviluppato da zero

• Dalla sua formulazione ci sono stati molti cambiamenti nell’ingegneria del software e COCOMO II è progettato per adattare i diversi approcci allo sviluppo software

Page 8: Principi base (1)

Modelli COCOMO II (1)

• Come visto nelle lezioni precedenti, COCOMO II include una serie di modelli che producono stime di software sempre più dettagliate

– Application Composition

– Early Design

– Reuse

– Post-Architecture

Page 9: Principi base (1)

Modelli COCOMO II (2)

• Application Composition– Usato quando il software viene creato da parti esistenti

• Early Design– Usato quando i requisiti sono disponibili, ma il design non è ancora stato iniziato

• Reuse– Usato per calcolare l’effort di integrare componenti riutilizzabili

• Post-Architecture– Usato dopo che l’architettura del sistema è stata progettata e sono disponibili più informazioni sul sistema

Page 10: Principi base (1)

Uso di modelli COCOMO II

Page 11: Principi base (1)

Modello Application Composition

• Supporta progetti di prototyping e progetti in cui c’è riuso completo

• Si basa su stime standard della produttività dello sviluppatore in mese/punti applicazione (CASE)

• Tiene conto dell’uso di strumenti CASE

• La formula è:– PM = ( NAP (1 - %riuso/100 ) ) / PROD

– PM è l’effort in mesi-uomo, NAP è il numero di punti applicazione e PROD è la produttività

Page 12: Principi base (1)

Produttività in punti oggetto

Page 13: Principi base (1)

Modello Early Design

• Le stime possono essere effettuate dopo che i requisiti sono stati concordati

• Si basa su una formula standard per modelli algoritmici : PM = = A DimensioniB M

– M = PERS RCPX RUSE PDIF PREX FCIL SCED

– A = 2,94 nella calibrazione iniziale, Dimensioni in KLOC, B varia da 1,1 a 1.24 a seconda della novità del progetto, della flessibilità di sviluppo, degli approcci di gestione dei rischi e della maturità dei processi

Page 14: Principi base (1)

Moltiplicatori

• I moltiplicatori riflettono l’esperienza degli sviluppatori, i requisiti non funzionali, la familiarità con la piattaforma di sviluppo ecc.

– RCPX:complessità e affidabilità del prodotto

– RUSE: il riuso richiesto

– PDIF: difficoltà della piattaforma

– PREX: esperienza del personale

– PERS: capacità del personale

– SCED: programma di lavoro richiesto

– FCIL: funzionalità di supporto del team

Page 15: Principi base (1)

Il modello Reuse

• Tiene conto del codice black-box che viene riutilizzato senza cambiamenti e del codice che deve essere adattato per integrarlo al nuovo

• Ci sono due versioni:– Il black-box reuse in cui il codice non è modificato. Viene calcolata una stima degli effort (PM)

– Il white-box reuse in cui il codice viene modificato. Viene calcolata una stima delle dimensioni equivalente al numero di linee di codice sorgente aggiunte; questo poi adatta la stima delle dimensioni per il nuovo codice

Page 16: Principi base (1)

Stime del modello Reuse (1)

Per il codice generato automaticamente

• PM = (ASLOC * AT/100)/ATPROD

• ASLOC è il numero di linee di codice generato

• AT è la percentuale di codice generato automaticamente

• ATPROD è la produttività degli ingegneri nell’integrare questo codice

Page 17: Principi base (1)

Stime del modello Reuse (2)

Quando il codice deve essere capito e integrato

• ESLOC = ASLOC * (1-AT/100) * AAM

• ASLOC e AT come prima

• AAM è il moltiplicatore di adattamento calcolato dai costi di cambiamento del codice riusato, i costi per capire come integrare il codice e i costi del processo decisionale del riuso

FINE