Software researchers and practitioners have been addressing the problems of effort estimation for software development projects since at least the 1960s; see, e.g., work by Farr and Nelson. Most of the research has focused on the construction of formal software effort estimation models. The early models were typically based on
regression analysis or mathematically derived from theories from other domains. Since then a high number of model building approaches have been evaluated, such as approaches founded on
case-based reasoning, classification and
regression trees,
simulation,
neural networks,
Bayesian statistics,
lexical analysis of requirement specifications,
genetic programming,
linear programming, economic production models,
soft computing,
fuzzy logic modeling, statistical
bootstrapping, and combinations of two or more of these models. The perhaps most common estimation methods today are the parametric estimation models
COCOMO,
SEER-SEM and SLIM. They have their basis in estimation research conducted in the 1970s and 1980s and are since then updated with new calibration data, with the last major release being COCOMO II in the year 2000. The estimation approaches based on functionality-based size measures, e.g.,
function points, is also based on research conducted in the 1970s and 1980s, but are re-calibrated with modified size measures and different counting approaches, such as the
use case points or
object points and
COSMIC Function Points in the 1990s. ==Estimation approaches==