The software equation is a dynamic multivariable model that assumes a specific distribution of effort over the life of a software developme...
The software equation is a dynamic multivariable model that assumes a specific distribution of effort over the life of a software development project. The model has been derived from productivity data collected for over 4000 contemporary software projects. Based on these data, an estimation model of the form
E = [LOC B0.333/P]3 (1/t4) where
E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”
t = project duration in months or years
B = “special skills factor”
P = “productivity parameter” that reflects:
• Overall process maturity and management practices
• The extent to which good software engineering practices are used
• The level of programming languages used
• The state of the software environment
• The skills and experience of the software team
• The complexity of the application
Typical values might be P = 2,000 for development of real-time embedded software; P = 10,000 for telecommunication and systems software; P = 28,000 for business systems applications. The productivity parameter can be derived for local conditions using historical data collected from past development efforts. It is important to note that the software equation has two independent parameters:
(1) an estimate of size (in LOC) and (2) an indication of project duration in calendar months or years.
To simplify the estimation process and use a more common form for their estimation model, Putnam and Myers suggest a set of equations derived from the software equation. Minimum development time is defined as
tmin = 8.14 (LOC/P)0.43 in months for tmin > 6 months
E = 180 Bt3 in person-months for E ≥ 20 person-months
tmin = 8.14 (33200/12000)0.43
tmin = 12.6 calendar months
E = 180 0.28 (1.05)3
E = 58 person-months
tmin = 12.6 calendar months
E = 180 0.28 (1.05)3
E = 58 person-months