Lezione 7 – Metodi di stima dell’effort Ingegneria del software Modulo 2 - Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano 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