Lezione 3 – Metodi topdown/bottom-up Ingegneria del software Modulo 2 - Il software come prodotto Unità didattica 2 - I costi del software Ernesto Damiani Università degli Studi di Milano Stima basata sul giudizio di esperti (1) • Si usano le conoscenze e l’esperienza di professionisti, considerando le stime basate su tutti i progetti a cui l’esperto ha partecipato • Esempi – Delphi sviluppato nel 1940 dalla Rand Corporation i partecipanti sono coinvolti in due cicli di valutazione – WBS (Work Breakdown Structure) un modo per organizzare gli elementi del progetto in una gerarchia che semplifica il compito di stima e controllo del budget Stima basata sul giudizio di esperti (2) • Vantaggi – È utile in assenza di dati empirici quantificati – Può tener conto delle differenze tra le esperienze del progetto passato e i requisiti del progetto proposto – Può tener conto di fattori emergenti, linguaggi, applicazioni e tecnologie nuovi • Vantaggi – La stima può essere considerata solo come l’opinione di un buon esperto – È difficile documentare i criteri usati dagli esperti Metodo top-down (1) • Chiamato anche Macro Modello • Deriva dalle proprietà globali del prodotto • Viene eseguita la ripartizione del progetto software in vari componenti di basso livello, che si stimano indipendentemente • Un esempio: modello di Putnam Metodo top-down (2) • Vantaggi – Tiene conto dei dettagli del progetto – Di solito è veloce e facile da implementare • Svantaggi – Dipende dalla stima corretta dei componenti di basso livello – Non esiste un repertorio di stime già pronte Metodo bottom-up (1) • Viene stimato il costo di ogni componente, poi i risultati vengono uniti per arrivare al costo totale del progetto • L’obiettivo è costruire la stima del sistema dalla conoscenza accumulata sui componenti software e le loro interazioni • Un esempio: modello COCOMO dettagliato Metodo bottom-up (2) • Vantaggi – Più stabile – Più dettagliato – Consente a ogni ruolo professionale (sviluppatore, tester) di fornire una stima • Svantaggi – Può trascurare i costi a livello di sistema – Richiede più tempo Stima per analogia (1) • Il progetto proposto viene confrontato con un progetto simile completato precedentemente nello stesso dominio applicativo • Dai progetti completati vengono estrapolati i dati effettivi • Può essere usata sia a livello di sistema sia a livello di componente Stima per analogia (2) • Vantaggi – Basata su dati reali • Svantaggi – È impossibile effettuarla se in passato non è stato affrontato alcun progetto comparabile – Il progetto di riferimento può non essere abbastanza simile a quello attuale Stima price-to-win • Si adatta la stima dei costi al prezzo necessario per aggiudicarsi il contratto • Vantaggi – Spesso premiata con il contratto • Svantaggi – Tempo e denaro finiscono prima che il lavoro sia terminato FINE