








Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
give more insight on cost estimation and formular too
Typology: Essays (university)
1 / 14
This page cannot be seen from the preview
Don't miss anything!
Hareton Leung Zhang Fan Department of Computing The Hong Kong Polytechnic University {cshleung, csfzhang}@comp.polyu.edu.hk
Abstract
Software cost estimation is the process of predicting the effort required to develop a software system. Many estimation models have been proposed over the last 30 years. This paper provides a general overview of software cost estimation methods including the recent advances in the field. As a number of these models rely on a software size estimate as input, we first provide an overview of common size metrics. We then highlight the cost estimation models that have been proposed and used successfully. Models may be classified into 2 major categories: algorithmic and non-algorithmic. Each has its own strengths and weaknesses. A key factor in selecting a cost estimation model is the accuracy of its estimates. Unfortunately, despite the large body of experience with estimation models, the accuracy of these models is not satisfactory. The paper includes comment on the performance of the estimation models and description of several newer approaches to cost estimation.
Keywords: project estimation, effort estimation, cost models.
1. Introduction
In recent years, software has become the most expensive component of computer system projects. The bulk of the cost of software development is due to the human effort, and most cost estimation methods focus on this aspect and give estimates in terms of person-months. Accurate software cost estimates are critical to both developers and customers. They can be used for generating request for proposals, contract negotiations, scheduling, monitoring and control. Underestimating the costs may result in management approving proposed systems that then exceed their budgets, with underdeveloped functions and poor quality, and failure to complete on time. Overestimating may result in too many resources committed to the project, or, during contract bidding, result in not winning the contract, which can lead to loss of jobs. Accurate cost estimation is important because:
Most cost estimation models attempt to generate an effort estimate, which can then be converted into the project duration and cost. Although effort and cost are closely related, they are not necessarily related by a simple transformation function. Effort is often measured in person- months of the programmers, analysts and project managers. This effort estimate can be converted into a dollar cost figure by calculating an average salary per unit time of the staff involved, and then multiplying this by the estimated effort required. Practitioners have struggled with three fundamental issues:
where N1 is the total number of operator occurrences, and N2 is the total number of operand occurrences. Volume corresponds to the amount of required storage space and is defined as: V = N log(n1+n2) where n1 is the number of distinct operators, and n2 is the number of distinct operands that appear in a program. There have been some disagreements over the underlying theory that supports the software science approach [14, 32]. This measurement has received decreasing support in recent years.
Function points : This is a measurement based on the functionality of the program and was first introduced by Albrecht [1]. The total number of function points depends on the counts of distinct (in terms of format or processing logic) types in the following five classes:
= =
5
1
3
i 1
ij j
NijW
where Nij and Wij are respectively the number and weight of types of class i with complexity j. For example, if the raw function-point counts of a project are 2 simple inputs ( Wij = 3), 2 complex outputs ( Wij = 7) and 1 complex internal file ( Wij = 15). Then UFC = 23 + 27 +1*15 =
This initial function-point count is either directly used for cost estimation or is further modified by factors whose values depend on the overall complexity of the project. This will take into account the degree of distributed processing, the amount of reuse, the performance requirement, etc. The final function-point count is the product of the UFC and these project complexity factors. The advantage of the function-point measurement is that it can be obtained based on the system requirement specification in the early stage of software development. The UFC is also used for code-size estimation using the following linear formula: LOC = a * UFC + b The parameters a , b can be obtained using linear regression and previously completed project data. The latest Function Point Counting Practices Manual is maintained by the IFPUG (International Function Point Users Group) in http://www.ifpug.org/.
Extensions of function point: Feature point extends the function points to include algorithms as a new class [21]. An algorithm is defined as the set of rules which must be completely expressed to solve a significant computational problem. For example, a square root routine can be considered as an algorithm. Each algorithm used is given a weight ranging from 1 ( elementary ) to 10 ( sophisticated algorithms ) and the feature point is the weighted sum of the algorithms plus the function points. This measurement is especially useful for systems with few input/output and high algorithmic complexity, such as mathematical software, discrete simulations, and military applications.
Another extension of function points is full function point (FFP) for measuring real-time applications, by also taking into consideration the control aspect of such applications. FFP introduces two new control data function types and four new control transactional function types. A detailed description of this new measurement and counting procedure can be found in [35].
Object points : While feature point and FFP extend the function point, the object point measures the size from a different dimension. This measurement is based on the number and complexity of the following objects: screens, reports and 3GL components. Each of these objects is counted and given a weight ranging from 1 ( simple screen ) to 10 ( 3GL component ) and the object point is the weighted sum of all these objects. This is a relatively new measurement and it has not been very popular. But because it is easy to use at the early phase of the development cycle and also measures software size reasonably well, this measurement has been used in major estimation models such as COCOMO II for cost estimation [6].
4. Cost estimation
There are two major types of cost estimation methods: algorithmic and non-algorithmic. Algorithmic models vary widely in mathematical sophistication. Some are based on simple arithmetic formulas using such summary statistics as means and standard deviations [9]. Others are based on regression models [38] and differential equations [30]. To improve the accuracy of algorithmic models, there is a need to adjust or calibrate the model to local circumstances. These models cannot be used off-the-shelf. Even with calibration the accuracy can be quite mixed. We first give an overview of non-algorithmic methods.
4.1 Non-algorithmic Methods
Analogy costing : This method requires one or more completed projects that are similar to the new project and derives the estimation through reasoning by analogy using the actual costs of previous projects. Estimation by analogy can be done either at the total project level or at subsystem level. The total project level has the advantage that all cost components of the system will be considered while the subsystem level has the advantage of providing a more detailed assessment of the similarities and differences between the new project and the completed projects. The strength of this method is that the estimate is based on actual project experience. However, it is not clear to what extend the previous project is actually representative of the constraints, environment and functions to be performed by the new system. Positive results and a definition of project similarity in term of features were reported in [33].
Expert judgment : This method involves consulting one or more experts. The experts provide estimates using their own methods and experience. Expert-consensus mechanisms such as Delphi technique or PERT will be used to resolve the inconsistencies in the estimates. The Delphi technique works as follows:
many models, some of the factors appear in combined form and some are simply ignored. Also, some factors take discrete values, resulting in an estimation function with a piece-wise form.
4.2.2 Linear models
Linear models have the form:
n a (^) (^0) i 1 ai xi
where the coefficients a 1 , …, an are chosen to best fit the completed project data. The work of Nelson belongs to this type of models [26]. We agree with Boehm's comment that "there are too many nonlinear interactions in software development for a linear model to work well" [5].
4.2.3 Multiplicative models
Multiplicative models have the form:
n i
x i a ai (^01)
Again the coefficients a 1 , …, an are chosen to best fit the completed project data. Walston-Felix [38] used this type of model with each xi taking on only three possible values: -1, 0, +1. Doty model [16] also belongs to this class with each xi taking on only two possible values: 0, +1. These two models seem to be too restrictive on the cost factor values.
4.2.4 Power function models
Power function models have the general form: Effort = a × Sb where S is the code-size, and a , b are (usually simple) functions of other cost factors. This class contains two of the most popular algorithmic models in use, as follows:
COCOMO (Constructive Cost Model) models This family of models was proposed by Boehm [4, 5]. The models have been widely accepted in practice. In the COCOMOs, the code-size S is given in thousand LOC (KLOC) and Effort is in person-month. A) Basic COCOMO. This model uses three sets of { a , b } depending on the complexity of the software only: (1) for simple, well-understood applications, a = 2.4, b = 1.05; (2) for more complex systems, a = 3.0, b = 1.15; (3) for embedded systems, a = 3.6, b = 1.20. The basic COCOMO model is simple and easy to use. As many cost factors are not considered, it can only be used as a rough estimate. B) Intermediate COCOMO and Detailed COCOMO. In the intermediate COCOMO, a nominal effort estimation is obtained using the power function with three sets of { a , b }, with coefficient a being slightly different from that of the basic COCOMO: (1) for simple, well-understood applications, a = 3.2, b = 1. (2) for more complex systems, a = 3.0, b = 1. (3) for embedded systems, a = 2.8, b = 1. Then, fifteen cost factors with values ranging from 0.7 to 1.66 (see Table 1) are determined [5]. The overall impact factor M is obtained as the product of all individual factors, and the estimate is obtained by multiplying M to the nominal estimate.
Table 1: The cost factors and their weights in COCOMO II
Cost Rating Factors
Description Very low low nominal High very high Product RELY required software reliability 0.75 0.88 1.00 1.15 1. DATA database size - 0.94 1.00 1.08 1. CPLX product complexity 0.70 0.85 1.00 1.15 1. Computer TIME execution time constraint - - 1.00 1.11 1. STOR main storage constraint - - 1.00 1.06 1. VIRT virtual machine volatility - 0.87 1.00 1.15 1. TURN computer turnaround time - 0.87 1.00 1.07 1. Personnel ACAP analyst capability 1.46 1.19 1.00 0.86 0. AEXP application experience 1.29 1.13 1.00 0.91 0. PCAP programmer capability 1.42 1.17 1.00 0.86 0. VEXP virtual machine experience 1.21 1.10 1.00 0.90 - LEXP language experience 1.14 1.07 1.00 0.95 - Project MODP modern programming practice
TOOL software tools 1.24 1.10 1.00 0.91 0. SCED development schedule 1.23 1.08 1.00 1.04 1.
While both basic and intermediate COCOMOs estimate the software cost at the system level, the detailed COCOMO works on each sub-system separately and has an obvious advantage for large systems that contain non-homogeneous subsystems. C) COCOMO II. Perhaps the most significant difference from the early COCOMO models is that the exponent b changes according to the following cost factors: precedentedness, development flexibility, architecture or risk resolution, team cohesion, and process maturity. Other differences include newly added cost factors and models for solidifying software architecture and reducing risk.
Putnam's model and SLIM Putnam derives his model based on Norden/Rayleigh manpower distribution and his finding in analyzing many completed projects [30]. The central part of Putnam's model is called software equation as follows: S = E ×(Effort)1/ 3 td 4/ 3 where td is the software delivery time; E is the environment factor that reflects the development capability, which can be derived from historical data using the software equation. The size S is in LOC and the Effort is in person-year. Another important relation found by Putnam is Effort = D 0 × td^3 where D 0 is a parameter called manpower build-up which ranges from 8 (entirely new software with many interfaces) to 27 (rebuilt software). Combining the above equation with the software equation, we obtain the power function form:
Effort = ( D 0^4 /^7 × E −^9 /^7 )× S^9 /^7 and td = ( D 0 − 1 /^7 × E −^3 /^7 )× S^3 /^7
Putnam's model is also widely used in practice and SLIM is a software tool based on this
result.
Table 3. Summary of strengths and weaknesses of different methods
Methods Strengths Weaknesses Non-algorithmic Expert Judgment Expert with the relevant experience can provide good estimation; Fast estimation
Dependent on the ‘expert’; May be bias; Suffer from incomplete recall Analogy Based on actual project data and past experience
Similar projects may not exist; Historical data may not be accurate Parkinson Price-to-win
Often win the contract Poor practice; May have large overruns Top-down System level focus; Faster and easier than bottom-up method; Require minimal project detail
Provide little detail for justifying estimates; Less accurate than other methods
Bottom-up Based on detailed analysis; Support project tracking better than other method, as its estimates address low level tasks
May overlook system level cost factors; Require more estimation effort compared to Top-down; Difficult to perform the estimate early in the lifecycle Algorithmic Objective, repeatable results; Gain a better understanding of the estimation method
Subjective inputs; Calibrated to past projects and may not reflect the current environment; Algorithms may be company specific and not be suitable for software development in general
4.3 Measurement of model performance
Various researchers have used different error measurements. The most popular error measure is Mean Absolute Relative Error (MARE) :
n i 1 (|(estimate i - actual i )/actual i |)/n where estimate i is the estimated effort from the model, actual i is the actual effort, and n is the number of projects. To establish whether models are biased, the Mean Relative Error (MRE) can be used:
n i 1 ((estimate i - actual i )/actual i )/n A large positive MRE would suggest that the model generally overestimates the effort, while a large negative value would indicate the reverse.
The following criteria can be used for evaluating cost estimation models [5]:
Many studies have attempted to evaluate the cost estimation models. Unfortunately, the results are not encouraging, as many of them were found to be not very accurate. Kemerer performed an empirical validation of four algorithmic models (SLIM, COCOMO, Estimacs, and FPA) [22]. No recalibration of models was performed on the project data, which was different from that used for model development. Most models showed a strong over estimation bias and large estimation errors, ranging from a MARE of 57% to 800%. Vicinanza, Mukhopadhyay and Prietula used experts to estimate the project effort using Kemerer’s data set without formal algorithmic techniques and found the results outperformed the models in the original study [37]. However, the MARE ranges from 32 to 1107%. Ferens and Gurner evaluated three models (SPANS, Checkpoint, and COSTAR) using 22 projects from Albrecht’s database and 14 projects from Kemerer’s data set [11]. The estimation error is also large, with MARE ranging from 46% for the Checkpoint model to 105% for the COSTAR model. Another study on COCOMO also found high error rates, averaging 166% [23]. Jeffery and Low investigated the need for model calibration at both the industry and organization levels [19]. Without model calibration, the estimation error was large, with MARE ranging from 43% to 105%. Jeffery, Low and Barnes later compared the SPQR/20 model to FPA using data from 64 projects from a single organization [20]. The models were recalibrated to the local environment to remove estimation biases. Improvement in the estimate was observed with a MARE of 12%, reflecting the benefits of model calibration. There were also studies based on the use of analogy. With the use of a program called ANGEL that was based on the minimization of Euclidian distance in n-dimensional space, Shepperd and Schofield found that estimating by analogy outperformed estimation based on statistically derived algorithms [33]. Heemstra surveyed 364 organizations and found that only 51 used models to estimate effort and that the model users made no better estimate than the non-model users [15]. Also, use of estimation models was no better than expert judgment. A survey of software development within JPL found that only 7% of estimators use algorithmic models as a primary approach of estimation [17].
6. New approaches
Cost estimation remains a complex problem, which continues to attract considerable research attention. Researchers have attempted different approaches. Recently, models based on artificial intelligence techniques have been developed. For example, Finnie and Wittig applied artificial neural networks (ANN) and case-based reasoning (CBR) to estimation of effort [12]. Using a data set from the Australian Software Metrics Association, ANN was able to estimate development
A648750, Systems Development Corp., 1966.