Qualitative (small, medium, large) vs. quantitative
(LOC or FP)
Modeling Technique:
Formal (e.g., use
regression analysis
to estimate parameters of the model from the data) vs. informal
(e.g., identify rules-of-thumb)
An Example - Organization-Specific, Quantitative, Informal
Background Information:
Function points for earlier products
A rule-of-thumb about organization-specific productivity
in function points per person-months (e.g., 5 FP/pm)
Labor cost in dollars per person-month (e.g., $12,000/pm)
Information about the Product:
425 FPs
Constructing a Point Estimate:
Effort: \(E = 425 / 5 = 85\)pm
Cost: \(C = 85 \cdot 12000 = 1020000\)dollars
An Example - Industry-Standard, Quantitative, Formal
KLOC-Based (\(L\)) Log-Linear:
Walston and Felix (1977): \(E = 5.2 L^{0.91}\)
Basili and Freburger (1981): \(E = 1.38 L^{0.93}\)
Boehm (1981): \(E = 3.2 L^{1.05}\)
FP-Based (\(F\)) Linear:
Albrecht and Gaffney (1983): \(E = -91.4 + 0.255 F\)
Kemerer (1987): \(E = -37.0 + 0.96 F\)
(Note that the negative \(y\)-intercept means
that these models are not appropriate for small values
of \(F\).)
An Example - Organization-Specific, Qualitative, Formal
Data Collection (Humphrey, 1995):
Classify features from other products as very small,
small, medium, large, and very large
Collect data from other products on LOC per feature
(if done correctly, categories should vary by at least a
factor of 2)
Estimation:
Classify required features
Count the features in each classification
Multiply
Add
Some Common Models
The Software Equation:
\(E\) (effort) is a function of \(t\)
(project duration) and \(L\) (KLOC)
COCOMO II:
\(E\) is a function of \(L\), \(F\)
(function points), or object points
International Software Benchmarking Standards Group:
\(E\) is a function of \(F\)
and \(N\) (team size) with specific parameters for
different physical architectures and languages
The Software Equation (Putnam and Meyers, 1992)
Additional Notation:
\(t\) denotes the project duration
\(B\) denotes a "special skills factor"
(\(B\) is 0.16 for products with fewer than
15 KLOC and increases to 0.39 for products with more than
70 KLOC)
\(p\) denotes a "productivity factor" that
reflects the process and practices, experience, and
product complexity (e.g., 2000 for real-time embedded
software, 12000 for scientific software)