Software Cost Estimation: J. C. Huang Department of Computer Science University of Houston Houston, TX 77204-3010
Software Cost Estimation: J. C. Huang Department of Computer Science University of Houston Houston, TX 77204-3010
J. C. Huang
Department of Computer Science
University of Houston
Houston, TX 77204-3010
On Precision
It is the mark of an instructed mind to rest
satisfied with the degree of precision which
the nature of subject admits, and not to seek
exactness when only an approximation of
the truth is possible... -Aristotle
E = A + BXC
where A, B, and C are empirically derived
constants, E is the effort in person months, and X
is the estimation variable, either in LOC or FP.
It is LOC-based.
type of project a b c d
E = a(KLOC)b(EAF)
type of project a b
organic 3.2 1.05
semi-detached 3.0 1.12
embedded 2.8 1.20
(ref. www.qsm.com)
©J. C. Huang 2005 Estimation Slide 21 of 44
The Software Equation
E = ((LOC)B0.333/P)3(1/t4)
where
E= effort in person-months
t= project duration in months
B= special skill factor ranging from 0.16 to 0.39
60
Dollars per line of source code
50
40
utility
30
20 application
10
10 101 2
100 1000
3 10000
4
Software size in 1,000 lines of code
application
50
Required development time in months
utility
40
system
30
20
10
0
10 1
10 100
2 1000
3 10000
4
Software size in 1,000 lines of source code
0,02
20 application
Lines of code per prgrammer per day
(11.8)
utility
0,01
10
(5.8)
system (2.8)
0,00
00
10 101 100
2 1000
3 4
10000
Software size in 1,000 lines of source code
©J. C. Huang 2005 Estimation Slide 29 of 44
Major Factors
Major factors that influence software cost:
• product size and complexity
• programmer ability
• available time
• required reliability
• level of technology
Computer attributes
Execution time constraint 1.00 to 1.66
Main storage constraint 1.00 to 1.56
Virtual machine volatility 0.87 to 1.30
Computer turn-around time 0.87 to 1.15
Personnel attributes
Analyst capability 1.46 to 0.71
Programmer capability 1.42 to 0.70
Applications experience 1.29 to 0.82
Virtual machine experience 1.21 to 0.90
Programming language experience 1.14 to 0.95
Project attributes
Use of modern programming practices
1.24 to 0.82
Use of software tools 1.24 to 0.83
Required development schedule
1.23 to 1.00
Rayleigh curve