Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Lezione 2 – Processo di stima dei costi
Processo di stima dei costi del software Una serie di tecniche e procedure che viene usata per ottenere la stima dei costi del software Il processo di stima riceve una serie di input che poi usa questi input per generare loutput
Input e output al processo di stima (1) Vista classica del processo di stima dei costi del software
Input e output al processo di stima (2) Processo effettivo di stima dei costi del software
Precisione della stima dei costi Definiamo la precisione con cui un modello di stima dei costi effettua le previsioni Valutazione delle prestazioni del modello – Errore assoluto = (E prev – E eff ) – Errore di percentuale = (E prev – E eff )/E eff – Errore relativo medio:
Metodi di stima dei costi Top–down Bottom–up Stima basata su un modello algoritmico (parametrico) Stima basata sul giudizio di esperti Stima per analogia Stima price-to-win
Modello algoritmico (parametrico) (1) Uso di equazioni matematiche per eseguire la stima dei costi del software Le equazioni si basano su dati teorici o storici Input costituito da SLOC, numero di funzioni da eseguire e altri cost driver La precisione del modello può essere migliorata calibrando il modello allambiente specifico
Esempio di modello algoritmico (1) COCOMO (COnstructive COst MOdel) Sviluppato da Barry Boehm nel 1981 Modello matematico basato sui dati presi da 63 progetti software storici È diventato uno dei più famosi e diffusi modelli di stima dei costi del software
Esempio di modello algoritmico (2) COCOMO II Pubblicato nel 1995 Affronta i problemi relativi ai processi di sviluppo iterativi, alla reingegnerizzazione, al riuso, lorientamento agli oggetti ecc. Ha tre sottomodelli: application composition, early design and post-architecture
Esempio di modello algoritmico (3) SLIM (Software Life-cycle Model) di Putnam Sviluppato alla fine degli anni 70 Basato sullanalisi di Putnam del ciclo di vita in termini di una distribuzione, chiamata Rayleigh, del livello del personale del progetto rispetto al tempo La gestione quantitativa del software ha portato allo sviluppo di tre tool: stima SLIM, controllo SLIM e metrica SLIM
Vantaggi del modello algoritmico Genera stime ripetibili Consente di modificare con facilità i dati dinput Permette di perfezionare e personalizzare con facilità le formule È oggettivamente calibrato allesperienza
Svantaggi del modello algoritmico Non è in grado di gestire condizioni eccezionali Lesperienza ed alcuni fattori non possono essere quantificati correttamente Talvolta gli algoritmi possono essere proprietari FINE