A mathematical model used to predict the overall cost of creating software or hardware. Usually for hardware the model comprises a database of past achieved effort/duration/costs for development and manufacture (sometimes maintenance), and support for the estimator in matching characteristics of the historic data with those of the proposed new systems (or similar parts of the systems). The estimate of cost is then formed from the historic data, from constants and parameters derived from the database, and is modified using engineering judgment and a knowledge of the risk factors and local conditions.
For software the expected size of the software (lines of code) is usually used as the main input to a cost estimation model, with other inputs characterizing the main risk factors in the development. An underlying (software estimation model) database of past projects is built up from experience in a particular company or using one software paradigm. Typical software cost estimation models are COCOMO (Barry Boehm) and GECOMO (GEC Software, UK), PRICE S (RCA), PROMPT Estimator (LBMS, UK), and SLIM (Putnam, Norden, Rayleigh model, software from QSM Inc, US). The models make no apportionment of costs to different life-cycle phases, and generally give cost to deliver. Some models (e.g. COCOMO) can be used to estimate maintenance costs.
See also function point analysis.