Open In App

Cost Estimation Models in Software Engineering

Last Updated : 08 Nov, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Cost estimation

simply means a technique that is used to find out the cost estimates. The cost estimate is the financial spend that is done on the efforts to develop and test software in

Software Engineering

. Cost estimation models are some mathematical algorithms or parametric equations that are used to estimate the cost of a product or a project. Various techniques or models are available for cost estimation, also known as Cost Estimation Models as shown below :

  1. Empirical Estimation Technique – Empirical estimation is a technique or model in which empirically derived formulas are used for predicting the data that are a required and essential part of the software project planning step. These techniques are usually based on the data that is collected previously from a project and also based on some guesses, prior experience with the development of similar types of projects, and assumptions. It uses the size of the software to estimate the effort. In this technique, an educated guess of project parameters is made. Hence, these models are based on common sense. However, as there are many activities involved in empirical estimation techniques, this technique is formalized. For example Delphi technique and Expert Judgement technique.
  2. Heuristic Technique – Heuristic word is derived from a Greek word that means “to discover”. The heuristic technique is a technique or model that is used for solving problems, learning, or discovery in the practical methods which are used for achieving immediate goals. These techniques are flexible and simple for taking quick decisions through shortcuts and good enough calculations, most probably when working with complex data. But the decisions that are made using this technique are necessary to be optimal. In this technique, the relationship among different project parameters is expressed using mathematical equations. The popular heuristic technique is given by Constructive Cost Model (COCOMO). This technique is also used to increase or speed up the analysis and investment decisions.
  3. Analytical Estimation Technique – Analytical estimation is a type of technique that is used to measure work. In this technique, firstly the task is divided or broken down into its basic component operations or elements for analyzing. Second, if the standard time is available from some other source, then these sources are applied to each element or component of work. Third, if there is no such time available, then the work is estimated based on the experience of the work. In this technique, results are derived by making certain basic assumptions about the project. Hence, the analytical estimation technique has some scientific basis. Halstead’s software science is based on an analytical estimation model.

Other Cost Estimation Models are:

  1. Function Point Analysis (FPA): This technique counts the number and complexity of functions that a piece of software can perform to determine how functional and sophisticated it is. The effort needed for development, testing and maintenance can be estimated using this model.
  2. Putnam Model: This model is a parametric estimation model that estimates effort, time and faults by taking into account the size of the the programme, the expertise of the development team and other project-specific characteristics.
  3. Price-to-Win Estimation: Often utilized in competitive bidding, this model is concerned with projecting the expenses associated with developing a particular software project in order to secure a contract. It involves looking at market dynamics and competitors.
  4. Models Based on Machine Learning: Custom cost estimating models can be built using machine learning techniques including neural networks, regression analysis and decision trees. These models are based on past project data. These models are flexible enough to adjust to changing data and project-specific features.
  5. Function Points Model (IFPUG): A standardized technique for gauging the functionality of software using function points is offered by the International Function Point Users Group (IFPUG). It is employed to calculate the effort required for software development and maintenance.

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads