3. 3
Software Engineering CS 594 T. E. Potok - University of Tennessee
AMI Update
200 jobs per day
AMI has received a quote from Acme
Consulting of $40K to do the work in 2
months
Ballpark price range for AMI is $20-
$30K.
4. 4
Software Engineering CS 594 T. E. Potok - University of Tennessee
Linear Regression
Where is an estimate of the mean of Y,
and are numerical estimated of the parameters
Sample Regression Line
0
5
10
15
20
25
0 2 4 6 8 10 12
i
i
i E
Y
i
Y
5. 5
Software Engineering CS 594 T. E. Potok - University of Tennessee
Many early studies applied
regression
Data gathered from multiple software
project
Log-linear relationship found between
project size and effort
Where PM are person-months, KLOC is
thousands of lines of code
ln(PM) = ln() + ln(KLOC)+ .
6. 6
Software Engineering CS 594 T. E. Potok - University of Tennessee
Derivation
KLOC
PM
KLOC
e
PM
e
e
PM
e
e
PM
e
e
KLOC
PM
Y
E
Y
KLOC
KLOC
KLOC
PM
i
i
i
)
ln(
)
ln(
)
ln(
)
ln(
)
ln(
)
ln(
)
ln(
)
ln(
7. 7
Software Engineering CS 594 T. E. Potok - University of Tennessee
Typical Effort Vs Project Size
Curve
Typical Log-linear Effort Curve
0
2000
4000
6000
8000
10000
12000
14000
0 100000 200000 300000 400000 500000 600000
Lines of code
Effort
8. 8
Software Engineering CS 594 T. E. Potok - University of Tennessee
Constructive Cost Model
(COCOMO)
Developed by Barry Boehm
Statistical model of software development
effort and time.
Base on results from 63 projects completed at
TRW.
Basic model is a log-linear regression model
that fits the 63 projects
Productivity ranges:
– 20 - 1250 LOC/PM
9. 9
Software Engineering CS 594 T. E. Potok - University of Tennessee
Basic COCOMO
Organic - small to medium size, familiar
projects
– Person-months=2.4(KLOC)1.05
– Development-time = 2.5(PM).38
Semidetached - intermediate
– Person-months=3.0(KLOC)1.12
– Development-time = 2.5(PM).35
Embedded - ambitious, tightly constrained
– Person-months=3.6(KLOC)1.20
– Development-time = 2.5(PM).32
10. 10
Software Engineering CS 594 T. E. Potok - University of Tennessee
COCOMO Models
COCOMO Models
0
1000
2000
3000
4000
5000
6000
7000
0 100 200 300 400 500 600
Thousands of lines of code
Person-months
Organic
Semidetached
Embedded
11. 11
Software Engineering CS 594 T. E. Potok - University of Tennessee
Cost Drivers
Product Attributes
– Required Reliability
– Database Size
– Product Complexity
Computer Attributes
– Execution Time Constraints
– Main storage constraints
– Virtual Machine Volatility
– Computer turnaround time
12. 12
Software Engineering CS 594 T. E. Potok - University of Tennessee
More Cost Drivers
Personnel Attributes
– Analyst Capability
– Application Experience
– Programmer Capability
– Virtual Machine Experience
– Programming Language Experience
Project Attributes
– Modern Programming Practices
– Use of Software Tools
– Required Development Schedule
13. 13
Software Engineering CS 594 T. E. Potok - University of Tennessee
Example
Need to produce 10,000 LOC, 10 KLOC.
Small project, familiar development
Use organic model:
– Person-months=2.4(10)1.05 =26.9 Person-months
– Development-time = 2.5(26.9).38 =8.7 Months
– Average People = 26.9 PM/8.7 Months = 3 People
Linear model 3 people would take 16.5
months, at 50 person-months
14. 14
Software Engineering CS 594 T. E. Potok - University of Tennessee
Example
We also know that the design experience is low
– Analyst, - 1.19
– application, - 1.13
– programmer experience is low. - 1.17
Yet the programming experience is high - .95
Adjustment factor 1.19*1.13*1.17*.95 = 1.49
PM = 26.9*1.49 = 40 Person-months
Development time = 10.2 Months
People = 3.9 People
15. 15
Software Engineering CS 594 T. E. Potok - University of Tennessee
Drawbacks
COCOMO has to be calibrated to your
environment.
Very sensitive to change.
– Over a person-year difference in a 10 KLOC
project with minor adjustments
Broad brush model that can generate
significant errors
16. 16
Software Engineering CS 594 T. E. Potok - University of Tennessee
COCOMO 2.0
Includes
– COTS and reusable software
– Degree of understanding of requirements and architectures
– Schedule constraints
– Project size
– Required reliability
Three Types of models
– Application Composition - Prototyping or RAD
– Early Design - Alternative evaluation
– Post-architecture - Detailed estimates
17. 17
Software Engineering CS 594 T. E. Potok - University of Tennessee
COCOMO Summary
Quick and easy to use
Provides a reasonable estimate
Needs to be calibrated
Results must be treated as ball park
values unless substantial validation has
been performed.
18. 18
Software Engineering CS 594 T. E. Potok - University of Tennessee
PERT
Project Evaluation and Review
Technique
– Developed for the Navy Polaris Missile
Program
– Directed Acyclic Graphs of project activities
– Used for estimation and control of a project
19. 19
Software Engineering CS 594 T. E. Potok - University of Tennessee
Example
Start project
Gather requirements
Document
requirements
Create design
Document design
Review design
Create code
Document code
Define test cases
Test code
Demonstrate
Finish project
To create our 10K program we need the following activities
20. 20
Software Engineering CS 594 T. E. Potok - University of Tennessee
PERT Example
Start Req Design Review Code Test Demo Finish
Doc
Req
Doc
Design
Doc
Code
Test
Case
21. 21
Software Engineering CS 594 T. E. Potok - University of Tennessee
Duration Estimates
Tasks Minimum Average Maximum Critical Path
Start project 0 0 0 Y
Gather requirements 3 5 7 Y
Document requirements 2 3 5 N
Create design 5 9 13 Y
Document design 2 3 5 N
Review design 1 2 3 Y
Create code 7 12 20 Y
Document code 2 4 7 N
Define test cases 3 5 8 N
Test code 5 7 12 Y
Demonstrate 1 2 3 Y
Finish project 0 0 0 Y
22. 22
Software Engineering CS 594 T. E. Potok - University of Tennessee
Critical Path Estimate
Tasks Minimum Average Maximum Critical Path
Start project 0 0 0 Y
Gather requirements 3 5 7 Y
Create design 5 9 13 Y
Review design 1 2 3 Y
Create code 7 12 20 Y
Test code 5 7 12 Y
Demonstrate 1 2 3 Y
Finish project 0 0 0 Y
Total 22 37 58
23. 23
Software Engineering CS 594 T. E. Potok - University of Tennessee
Completion Probability
Triangular Distribution
0.000
0.010
0.020
0.030
0.040
0.050
0.060
20 25 30 35 40 45 50 55 60
Duration
Probability
Probability
24. 24
Software Engineering CS 594 T. E. Potok - University of Tennessee
Cumulative Completion
Probability
Triangular Distribution
0.000
0.100
0.200
0.300
0.400
0.500
0.600
0.700
0.800
0.900
1.000
20 25 30 35 40 45 50 55 60
Duration
Cumulative
Probability
Cumulative Probability
80% Probability of
Completion in 46 days