Ingegneria del software Modulo 2 -Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Lezione 7 – Metodi di stima dell’effort
Richiami sui metodi di stima (1) Non esiste un metodo semplice per effettuare una stima precisa dell’effort necessario per sviluppare un sistema software – Le stime iniziali si basano su informazioni inadeguate (ad esempio, la definizione dei requisiti utente) – Il software può funzionare su computer non noti o usare una nuova tecnologia – Le persone che lavorano al progetto possono essere non note a priori Le stime dei costi del progetto possono essere auto-verificate – La stima definisce il budget e il prodotto viene modificato per rispettare il budget
Richiami sui metodi di stima (2) Ogni metodo ha punti di forza e debolezze La stima dovrebbe basarsi su molti metodi Se i metodi non restituiscono approssimativamente lo stesso risultato, si hanno informazioni insufficienti per poter effettuare una stima Si cerca di ottenere ulteriori informazioni e quindi eseguire stime più precise
Richiami sui metodi di stima (3) Modello algoritmico Il giudizio di esperti Stima per analogia Pricing to win
Modello algoritmico Viene usato un modello basato su informazioni storiche sui costi che mettono in correlazione una metrica software (di solito le sue dimensioni) con il costo del progetto Esempi: COCOMO 81, COCOMO II
Il giudizio di esperti Vengono consultati molti esperti delle tecniche di sviluppo software proposte e del dominio applicativo
Stima per analogia Questa tecnica è applicabile quando sono stati completati altri progetti nello stesso dominio applicativo. Il costo di un nuovo progetto viene stimato per analogia con questi progetti.
Pricing to win (1) Il costo del software stimato è ciò che il cliente è disposto a spendere per il progetto. L’effort stimato dipende dal budget del cliente e non dalla funzionalità del software.
Pricing to win (2) Vantaggi – Si ottiene il contratto Svantaggi – La probabilità che il cliente ottenga il sistema che desidera è bassa. I costi non riflettono accuratamente il lavoro necessario
Pricing to win (3) Può sembrare un approccio non etico e non commerciale, ma quando mancano informazioni dettagliate può essere l’unica strategia appropriata Il costo del progetto viene concordato sulla base di una proposta e lo sviluppo è limitato dal costo Può essere concordata una specificazione dettagliata oppure per lo sviluppo del sistema si può usare un approccio evolutivo FINE