300 likes | 539 Views
Software Cost, Effort,Time and H-resource Estimation: Introduction and COCOMO Model G.Berio. Estimating Methods. Price-to-win Analogy Expert judgement Algorithmic Models (may constraint other estimations). What it is measured.
E N D
Software Cost, Effort,Time and H-resource Estimation:Introduction and COCOMO ModelG.Berio
Estimating Methods • Price-to-win • Analogy • Expert judgement • Algorithmic Models (may constraint other estimations)
What it is measured • 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; DSI: delivered source instructions; KDSI: kilo delivered source instructions • Productivity (L)L = LOC/E: lines of codes corresponding to a deployed effort • Personal productivity (Lp): - maximal - lines of codes produced by a person per month (year) • H-resources (P) P=E/T:average number of (full-time) persons delivering the effort E within 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, Costmonth: usually each category of personnel has a recognised cost per hour/per month
Modes of Development (generic features of software and development) Level of the model (specific features of software and development) COCOMO: COnstructive COst MOdel E,T in term of KLOC to be delivered (DKSI)
Organic Mode: features of software and development • 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: features of software and development • Large size – up to 300,000 lines of code • 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: features of software and development • 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, E,T • Standard engineering, scientific and business modeling systems
Semi-detached Mode: Examples, E,T • Standard transaction processing systems • New usual DBMS • Innovative command & control systems for inventory and production
Embedded Mode: Examples, E,T • Avionic software systems • Large and complex transaction processing systems • Real-time systems • New operating systems
Intermediate COCOMO: E, T Modes of Development Level of the model 2.4, 1.05 3.0, 1.12 3.6, 1.2 3.2, 1.05 3.0, 1.12 2.8, 1.2 Range of C 0.09 - 9.42 nominal effort
Intermediate COCOMO: C Product Attributes C1C2 C3 VL very low L low N nominal H high VH very high XH extra high
Intermediate COCOMO: C Computer Attributes C4 C5 C6 C7 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
Intermediate COCOMO: C Personnel Attributes C8 C9 C10 C11 C12
Intermediate COCOMO: C Project Attributes C13 C14 C15
Ratings Very low Low Nominal High Very Extra Cost Drivers (Ci) High High Product attributes .75 .88 1.00 1.15 1.40 Required software reliability .94 1.00 1.08 1.16 Data base size .70 .85 1.00 Product complexity 1.15 1.30 1.65 Comput er attributes 1.00 1.11 1.30 1.66 Execution time constraints 1.00 1.06 1.21 1.56 Main storage constraints .87 1.00 1.15 1.30 Virtual machine volatility .87 1.00 1.07 1.15 Computer turnaround time Personnel attributes 1.46 1.19 1.00 .86 .71 Anal yst capability 1.29 1.13 1.00 .91 .82 Applications experience 1.42 1.17 1.00 .86 .70 Programmer capability 1.21 1.10 1.00 .90 Virtual machine experience 1.14 1.07 1.00 .95 Programming language experience Project attributes 1.24 1.10 1.00 .91 .82 Use of modern programming practices 1.24 1.10 1.00 .91 .83 Use of software tools 1.23 1.08 1.00 1.04 1.10 Required development schedule Riepilogo Coefficienti Ci del COCOMO
COCOMO Detailed • Phase sensitive effort distribution on • Plans&requirements • Software design • Coding&test • Integration&test
Design Engineering Construction Architecture Design COCOMO Plans & Requirements Product Design Detailed Design Code& Unit Test Integration & Test Deployment Operations & Maintenance Phaseout LCR SRR PDR UTC CDR SAR Waterfall 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
Nominal Nominal manpower development time 6% - 8% 10% - 40% Plans/ requirements 16% - 18% 19% - 38% Software design 48% - 68% 24% - 64% Coding / test 16% - 34% 18% - 34% Integration /test Phase-sensitive Effort Distribution
KLOC anche per singolo modulo! E E E E E E E E E E E E E E E COCOMO: Stime E,T
(basic) PM E Esempio COCOMO Si può verificare il calcolo a http://cost.jsc.nasa.gov/COCOMO.html
Effort e Tempo PM PM PM Si può verificare il calcolo a http://cost.jsc.nasa.gov/COCOMO.html
Interpolazione Lineare (51-55)/(128-32)*(70-32)+55 y=mx+n 55 51 Si può verificare il calcolo a http://cost.jsc.nasa.gov/COCOMO.html 32 70 128
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)
PM Cioè si ipotizza solo il tempo di comprensione dei requisiti e non la loro definizione (si tratta di un modello di processo a cascata) Ipotesi COCOMO Richiede la stima delle linee di codice da fornire (KDSI)
Stima delle linee di codice (LOC, KLOC, DSI, KDSI) • La stima delle linee di codice può essere relativa all’intero codice da sviluppare oppure a singoli “pezzi di codice” • I “pezzi di codice” cui può essere associata la stima possono essere definiti in base a • Casi d’uso, • Funzioni in un DFD, • Componenti singoli o package di un’architettura, • … via via che tali informazioni diventano disponibili durante lo sviluppo del software
Struttura dei Modelli Algoritmici di Costo exponent effort = const+tuning coefficient * size empirically usually derived derived as person-months of effort required Software size in term of LOC (or FP) either a constant or a number derived based on complexity of project