Software Cost, Effort,Time and H-resource Estimation: Introduction and COCOMO Model G.Berio.
-
Upload
alberico-belli -
Category
Documents
-
view
221 -
download
2
Transcript of Software Cost, Effort,Time and H-resource Estimation: Introduction and COCOMO Model G.Berio.
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• 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
COCOMO: COnstructive COst MOdelModes of Development (generic features of software and development)
Organic Semi-detached
Embedded
Basic
Inter- mediate
Detailed
Level of th
e mod
el (sp
ecific features of
software an
d
develop
men
t)
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
EKLOC
38.0
05.1
5.2T
4.2E
Semi-detached Mode: Examples, E,T
• Standard transaction processing systems
• New usual DBMS
• Innovative command & control systems for inventory and production
EKLOC
35.0
12.1
5.2T
0.3E
Embedded Mode: Examples, E,T • Avionic software systems
• Large and complex transaction processing systems
• Real-time systems
• New operating systems
EKLOC
32.0
20.1
5.2T
6.3E
COCOMO (Basic): variabilità di E delle linee di codice
KLOC 2.4 * KLOC 1.05 3.0 * KLOC 1.12 3.6 * KLOC 1.20
1 2.4 3.0 3.6
10 26.9 39.6 57.1
50 145.9 239.4 392.9
100 302.1 521.3 904.2
1000 3390.1 6872.0 14333.0
Intermediate COCOMO: E, T
Organic Semi-detached
Embedded
Basic
Inter- mediate
Modes of Development
Level of th
e mod
el
2.4, 1.05 3.0, 1.12 3.6, 1.2
2.8, 1.23.0, 1.123.2, 1.05
1521 CCCC CKLOCE ___
___
Range of C0.09 - 9.42nominal
effort
Intermediate COCOMO: C
VL L N H VH XH Reliability .75 .88 1 1.15 1.4 Database size .94 1 1.08 1.16 Complexity .7 .85 1 1.15 1.3 1.65
Product Attributes
C1
C2
C3
VL very low
L low
N nominal
H high
VH very high
XH extra high
Intermediate COCOMO: C
VL L N H VH XH
Exec time constraints
1 1.11 1.3 1.66
Storage constr.
1 1.06 1.21 1.56
Virtual machine volat.
.87 1 1.15 1.3
Turn around .87 1 1.07 1.15
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
VL L N H VH Designer capability
1.46 1.19 1 .86 .71
Application experience
1.29 1.13 1 .91 .82
Programmer capability
1.42 1.17 1 .86 .7
Virtual machine experience
1.21 1.1 1 .9
Language experience
1.14 1.07 1 .95
Personnel Attributes
C8
C9
C10
C11
C12
Intermediate COCOMO: C
VL L N H VH XH Modern program practice
1.24 1.10 1 0.91 0.82
Tools usage 1.24 1.10 1 0.91 0.83 Schedule constraints
1.23 1.08 1 1.04 1.10
Project Attributes
C13
C14
C15
Ratings
Cost Drivers (Ci) Very low Low Nominal High Very High
Extra High
Product attributes
Required software
reliability
.75 .88 1.00 1.15 1.40
Data base size .94 1.00 1.08 1.16
Product complexity .70 .85 1.00 1.15 1.30 1.65
Computer attributes
Execution time constraints 1.00 1.11 1.30 1.66
Main storage constraints 1.00 1.06 1.21 1.56
Virtual machine volatility .87 1.00 1.15 1.30
Computer turnaround time .87 1.00 1.07 1.15
Personnel attributes
Analyst capability 1.46 1.19 1.00 .86 .71
Applications experience 1.29 1.13 1.00 .91 .82
Programmer capability 1.42 1.17 1.00 .86 .70
Virtual machine
experience
1.21 1.10 1.00 .90
Programming language
experience
1.14 1.07 1.00 .95
Project attributes
Use of modern
programming practices
1.24 1.10 1.00 .91 .82
Use of software tools 1.24 1.10 1.00 .91 .83
Required development
schedule
1.23 1.08 1.00 1.04 1.10
Rie
pilo
go C
oeff
icie
nti C
i del
CO
CO
MO
COCOMO Detailed
• Phase sensitive effort distribution on– Plans&requirements
– Software design
– Coding&test
– Integration&test
Waterfall and COCOMOWaterfall 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
Deployment
Operations & Maintenance
Phaseout
LCR
SRR
PDR
CDR
UTC
SAR
Integration
& Test
Waterfall
COCOMO
Design Engineering ConstructionArchitecture
Design
Phase-sensitive Effort Distribution
Nominal manpower
Nominal development time
Plans/ requirements
6%-8% 10%-40%
Software design
16%-18% 19%-38%
Coding/ test
48%-68% 24%-64%
Integration /test
16%-34% 18%-34%
COCOMO: Stime E,TKLOC anche per singolo modulo!
EE E
E
E E
E
E
E
E
E
E
E E
E
Esempio COCOMO
E PM
(basic)
Si può verificare il calcolo ahttp://cost.jsc.nasa.gov/COCOMO.html
Divisione di Effort - Organic: COCOMO dettagliato
Divisione Tempo - Organic: COCOMO dettagliato
Effort e TempoPM
PM PM
Si può verificare il calcolo ahttp://cost.jsc.nasa.gov/COCOMO.html
Interpolazione Lineare
32 128
55
51
70
(51-55)/(128-32)*(70-32)+55
y=mx+n
Si può verificare il calcolo ahttp://cost.jsc.nasa.gov/COCOMO.html
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 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
effort = const+tuning coefficient * sizeeffort = const+tuning coefficient * sizeexponentexponent
usually derivedusually derivedas person-monthsas person-monthsof effort requiredof effort required
either a constant oreither a constant ora number derived based a number derived based on complexity of projecton complexity of project
Software size in term of LOC (or FP)Software size in term of LOC (or FP)
empiricallyempiricallyderivedderived