Size-Based Effort Estimation Models (Single and Multivariate)
Static Single-Variable Model
A static single-variable model uses one main size parameter, such as Lines of Code (LOC) or Function Points (FP), to estimate effort:
(3.1)
Where:
- E = Effort (typically in person-months)
- Size = LOC, KLOC, or FP (depending on the model)
- a, b = constants derived from historical data
These models are simple and easy to apply, but:
- They do not capture variations in complexity, team capability, or technology.
- They are less reliable for projects that differ significantly from the historical data used to derive a and b.
Static Multivariate Model
A static multivariate model uses multiple factors to estimate effort or cost, such as:
- Project size
- Complexity
- Team experience
- Tools and environment
These models are more expressive and can account for interactions between attributes. Typical examples include:
- COCOMO family (size + cost drivers)
- Walston–Felix model and other early parametric models
Specific Estimation Models
Software Engineering Lab (SEL) Model
The SEL model, introduced by NASA’s Software Engineering Laboratory, is a static, single-variable model used for estimating software production. The effort and development time according to the SEL model are calculated as follows. Let L be the size of software (often in thousands of lines of code, KLOC). Then:
(3.2)
(3.3)
Walston–Felix Model
The Walston–Felix model, developed at IBM (1977), relates delivered source code size L (in KLOC) to effort and duration. According to Walston and Felix, effort and development time are computed as:
$$D = 4.1 \times L^{0.36}\ \text{months}$$
The productivity index (I) defined by Walston and Felix uses 29 variables (i = 1 to 29) that are highly correlated to productivity:
Where Wi is the weight factor for the ith variable, and Xi \in \{-1, 0, +1\}. The estimator assigns Xi as:
- -1 if the variable decreases productivity
- 0 if the variable has no effect
- +1 if the variable increases productivity
Example 3.1: Comparing Walston–Felix and SEL Models
Problem: A software project is expected to require 8 person-years of effort. Compare the SEL and Walston–Felix models by estimating the size of software (in LOC) that can be produced.
Solution: Manpower involved = 8 Person Years (PY) = 96 (12 × 8) person-months (PM). The number of lines of code can be obtained by reversing the effort equation:
Accordingly:
- $L(\text{SEL}) = \left(\frac{96}{1.4}\right)^{\frac{1}{0.93}} \approx 94{,}264\ \text{LOC}$
- $L(\text{Walston–Felix}) = \left(\frac{96}{5.2}\right)^{\frac{1}{0.91}} \approx 24{,}632\ \text{LOC}$
Interpretation: For the same effort (96 person-months):
- SEL model predicts the team can deliver about 94 KLOC.
- Walston–Felix model predicts about 25 KLOC.
This large difference shows why it is important to:
- Understand the assumptions behind each model.
- Use models calibrated with local historical data.
- Treat these formulas as guides, not absolute truth.