Software Cost, Effort,Time and H-resource Estimation: Introduction and COCOMO Model
Software Estimating Methods Price-to-win Analogy Expert judgement Algorithmic Models (they constraint eventually other estimations)
What we measure Effort (E): usually measured in Person-Month (PM) or Person- Year (PY) (Month and Year are working quantities, not calendar) LOC: lines of code; KLOC: kilo lines of code Productivity (L) L = LOC/E: lines of codes corresponding to a deployed effort Personal productivity ( ): lines of codes produced by a person per month (year) H-resources (P) P=E/T: average number of persons delivering the effort E in a time T (if E is in PM or PY) Cost=Costhour*hoursmonth*(#months*P) usually measured in Currency (Euro, Dollar etc.) = Costhour*hoursmonth*E (E in PM) Costhour/month: usually each category of personnel has a recognised cost per hour/per month
The Constructive Cost Model COCOMO Modes of Development Level of model E,T in term of KLOC to be delivered
Organic Mode: Characteristics Small size – up to 50,000 lines of code small, in-house development team experienced in application area non-stringent specifications of function, performance, acceptance tests, interfaces minimal communication overhead stable development environment minimal schedule pressure existing, proven technology
Semi-detached Mode Large size – up to 300,000 lines mix of experienced and non-experienced team members in application domain and development environment mix of stringent and non-stringent specifications of function, performance, acceptance tests, interfaces moderate schedule pressure
Embedded Mode Any size Poor experience with the same type of software Stringent specifications of function, performance, acceptance tests, interfaces Rigid, formal quality standards Close development among hardware, software, and operational procedures Leading technology employed Strong schedule pressure
Organic Mode: Examples Standard engineering, scientific and business modeling systems
Semi-detached Mode Standard transaction processing systems New usual DBMS Innovative command & control systems for inventory and production
Embedded Mode Avionic software systems Large and complex transaction processing systems Real-time systems New operating systems
Esempio COCOMO (Basic): comparazione di E KLOC 2.4 * KLOC * KLOC * KLOC
The Intermediate COCOMO Product Attributes C1C2C3C1C2C3 VL very low L low N nominal H high VH very high XH extra high
The Intermediate COCOMO Computer Attributes C4C5C6C7C4C5C6C7 Virtual machine = software likes DBMS, SO, Network, Middleware, VM and so on used to realise the requested software; platform or infrastructure are also applicable terms
The Intermediate COCOMO Personnel Attributes C 8 C 9 C 10 C 11 C 12
The Intermediate COCOMO Project Attributes C 13 C 14 C 15
Riepilogo Coefficienti C i del COCOMO
The Constructive Cost Model COCOMO Modes of Development Level of model 2.4, , , , , , 1.05 Range of C nominal effort
COCOMO Detailed Model Phase sensitive Effort Multipliers –Plans&requirements –Software design –Coding&test –Integration&test
Waterfall and COCOMO Waterfall milestones LCR = Lifecycle Concepts Review SRR = Software Requirements Review PDR = Product Design Review CDR = Critical Design Review (design walkthrough) UTC = Satisfaction of Unit Test Criteria SAR = Software acceptance review Plans & Requirements Product Design Detailed Design Code & Unit Test Deployme nt Operations & Maintenance Phase out LCRSRRPDR CDR UTC SAR Integration & Test Waterfall COCOMO Design EngineeringConstruction Architecture Design
Phase-sensitive Efforts Distribution
COCOMO: Stime E,T KLOC anche per singolo modulo! E EE E E E E E E E E E EE E
Esempio COCOMO E PM (basic)
Divisione in Effort Organic: COCOMO dettagliato
Divisione Tempo Organic: COCOMO dettagliato
Effort e Tempo PM
Interpolazione Lineare (51-55)/(128-32)*(70-32)+55 y=mx+n
Convalida di COCOMO COCOMO è stato convalidato con i seguenti risultati: Tuttavia, se è presente un controllo di processo (basato su un archivio storico dei progetti passati) è possibile valutare l’applicabilità di COCOMO nell’organizzazione specifica (analisi Post-Mortem)
Ipotesi COCOMO Cioè si ipotizza solo il tempo di comprensione dei requisiti e non la loro definizione (si tratta di un modello di processo a cascata) PM Richiede la stima delle linee di codice
Stime usabili e significative 30% Precision Improvement Simple Understanding Tools-supported Trusted
Stima delle linee di codice (LOC o KLOC) La stime può essere per l’intero codice da sviluppare oppure per “pezzo di codice” Il “pezzo di codice” cui viene associata la stima può essere definito in base a: –Casi d’uso –Funzioni in un DFD –Componenti singoli o parti di architetture –…
Struttura dei Modelli di Costo effort = const+tuning coefficient * size exponent usually derived as person-months of effort required either a constant or a number derived based on complexity of project Software size in term of LOC (or FP) empirically derived