Software Cost and Effort Estimation
Software Cost and Effort Estimation
Table of Contents What is Costs Estimation?.....................................................................................................................................2 1.1. Types of Cost Estimate .................................................................................................................................2 Conceptual Estimate............................................................................................................................2 Detailed Estimate ................................................................................................................................2
1.1.1. 1.1.2. 2. 3.
Why Costs Estimation? .........................................................................................................................................2 How to Make Cost Estimation? .............................................................................................................................4 3.1. Non-algorithmic Methods ............................................................................................................................5 Analogy costing: ..................................................................................................................................5 Expert judgment: .................................................................................................................................6 Parkinsons Method ............................................................................................................................6 Price-to-Win Model .............................................................................................................................6 The Definitive Estimate (or bottom-up estimate) ...............................................................................7 The Budget Estimate (or top-down estimate) .....................................................................................7 Reserve Analysis: .................................................................................................................................7
Algorithmic methods ....................................................................................................................................7 Cost factors ..........................................................................................................................................8 Linear models ......................................................................................................................................8 Power function models .......................................................................................................................8 COCOMO 1 ..........................................................................................................................................8 COCOMO 2 ........................................................................................................................................11
Effort Estimation? ...............................................................................................................................................13 Why Effort Estimation? .......................................................................................................................................13 How Effort Estimating? .......................................................................................................................................13 6.1. 6.2. Deductive or Top-down Methods ..............................................................................................................15 Inductive or Bottom-up Methods ..............................................................................................................15 Factor Analysis:..................................................................................................................................15 Multiplication Method: .....................................................................................................................15 Analogy Method: ...............................................................................................................................15 Function Point Method: ....................................................................................................................16 Delphi Method: .................................................................................................................................16
Page 1 of 16
Page 2 of 16
From IT to construction, most projects have to purchase materials: routers and cables, shingles and cement, and so on. We almost always must buy some things to complete the project work. Regardless of scope or schedule, projects need funds to complete the work. Technically, even projects that use only labor have funds attached to them; someone, somewhere is paying for that labor. What happens if you don't have the correct amount of funds to complete the project scope? Your project is doomed.
The ultimate goal of cost estimation is to determine the amount of fixed and variable costs so that a cost equation can be used to predict future costs. The function that represents the equation of a line will appear in the format of:
y=mx+b
Where y = total cost m = the slope of the line, i.e., the unit variable cost x = the number of units of activity b = the y-intercept, i.e., the total fixed costs
To avoid project cost overruns. Minimizing the differences between preliminary project planning cost estimates and final project design cost estimates. Accurate cost estimation is important because It can help to classify and prioritize development projects with respect to an overall business plan.
Page 3 of 16
Page 4 of 16
These are some of the common mistakes that can lead to inaccurate estimates. Not understanding what is involved to complete an item of work. Starting with an amount of money and making the project cost fit it. Assigning resources at more than 80 percent utilization. Failing to build in contingency. Failing to adjust the estimate following changes in scope. Dividing tasks between more than one resource. Providing estimates under pressure in project meetings. Giving single-data-point estimates rather than range estimates.
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. Others are based on regression models and differential equations. 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.
3.1.Non-algorithmic Methods
3.1.1. Analogy costing:
An analogy costing model is a non-algorithmic costing model that estimates the cost of a project by relating it to another similar completed project. 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. Take a completed project, similar in scope, size, structure, environment, constraints, and functions to the current project as its benchmark. Use reasoning and analogy to relate the actual costs incurred for elements of the completed project to similar elements in the current project. Such estimation may be conducted either top-down or bottom-up. This method has the advantage of assessing costs based on actual project experience rather than theoretical assumptions. Success, however, depends on the extent to which the previous project bears resemblance to the current project, and such relation remains subjective.
Page 5 of 16
A related method is the parametric estimation model, or taking historical information as the base, making assumptions regarding changes, and extrapolating the information to the preset project
Page 6 of 16
3.1.7. Reserve Analysis: The method deals with unforeseen circumstances in a project environment, which necessitates the establishment of reserves for the project activities. These reserves are also called contingency allowances that are utilized for reducing risks, and countering threats. Characteristics of a cost estimating system are to ensure that the cost estimates are accurate. If the funds are not adequate, then the reserves are used for the project activities.
3.2.Algorithmic methods
The algorithmic methods are based on mathematical models that produce cost estimate as a function of a number of variables, which are considered to be the major cost factors. Any algorithmic model has the form: Effort = f(x1, x2, , x) where {x1, x2, , xn}
Denote the cost factors. The existing algorithmic methods differ in two aspects: the selection of cost factors, and the form of the function f. We will first discuss the cost factors used in these models, then characterize the models according to the form of the functions and whether the models are analytical or empirical.
Page 7 of 16
Where,a1,a2..,an are selected according to the project information. 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.
3.2.4. COCOMO 1
The most popular algorithmic cost estimation model for software projects is the Constructive Cost Model (COCOMO II), developed by Barry Boehm and Ellis Harrowitz in 2000. 3.2.4.1. The basic COCOMO'81 It is a simple static model that considers the software development cost as a function of a program's size expressed in estimated lines of code.
Page 8 of 16
It computes software development effort (and cost) as a function of program size expressed in estimated lines of code (LOC). The basic COCOMO estimation model is given by the following expressions: Effort = a * (KLOC)b PM Tdev = 2.5 * (Effort)c Months here KLOC is the estimated size of the software product expressed in Kilo Lines of Code a, b, c are constants for each category of software products Tdev is the estimated time to develop the software, expressed in months Effort is the total effort required to develop the software product, expressed in person months (PMs) The effort estimation is expressed in units of person-months (PM). The value of the constants a, b, c are given below: Software project Organic Semi-detached Embedded a 2.4 3.0 3.6 b 1.05 1.12 1.20 c 0.38 0.35 0.32
3.2.4.2. The intermediate COCOMO'81 model It computes software development cost as a function of program size and a set of four subjective cost drivers: product factors, computer factors, constraints, and personnel factors. Product factors include aspects such as required reliability, complexity, usability, size of database, and more. Computer factors include constraints such as execution time, storage, turnaround, and platform volatility. Personnel factors include capability of the analyst, application, language, and tool experience, personnel continuity, and more. Project factors include multi-site development, software tools and more. The basic COCOMO model assumes that effort and development time are functions of the product size alone. However, many other project parameters apart from the product size affect the development effort and time required for the product. Therefore, in order to obtain an accurate estimation of the effort and project duration, the effect of all relevant parameters must be taken into account.
Page 9 of 16
The intermediate COCOMO model recognizes this fact and refines the initial estimate obtained using the basic COCOMO expressions by using a set of 15 cost drivers (multipliers) based on various attributes of software development. For example, if modern programming practices are used, the initial estimates are scaled downward by multiplication with a cost driver having a value less than 1. Each of the 15 attributes receives a rating on a six-point scale that ranges from "very low" to "extra high" (in importance or value) as shown below. An effort multiplier from the table below [i] applies to the rating. The product of all effort multipliers results in an Effort Adjustment Factor (EAF).
EAF is used to refine the estimates obtained by basic COCOMO as follows: Effort|corrected = Effort * EAF Tdev|corrected = 2.5 * (Effort|corrected) c 3.2.4.3. The detailed COCOMO'81 model It incorporates all characteristics of the intermediate version and also incorporates an assessment of the cost drivers impact on each step of the software engineering process.
Page 10 of 16
Regardless of the cost estimation model chosen, success depends on a good understanding of how the model works and how to apply it to determine project costs. A project manager is better off adopting a familiar yet limited albeit suitable model rather than another model, which may enjoy better industry recognition but which the project manager remains incompetent to handle. The following development project can be considered as an example application of the complete COCOMO model. A distributed Management Information System (MIS) product for an organization having offices at several places across the country can have the following sub-components: Database part Graphical User Interface (GUI) part Communication part Of these, the communication part can be considered as embedded software. The database part could be semidetached software, and the GUI part organic software. The costs for these three components can be estimated separately, and summed up to give the overall cost of the system.
3.2.5. COCOMO 2
Cocomo 2 consists of two models; the Early Design Model and the Post-Architecture model. The Early design model is a high-level model and can be used in the architectural design stage to explore architectural alternatives or incremental development strategies. This model is closest to the original COCOMO. The Post-Architectural model on the other hand is a more detailed model that can be used for the actual development stage and maintenance stage. It is the most detailed version of COCOMO 2. Both the early Design model and the Post-Architecture model use the same formula to estimate the amount of effort required to develop a software project. Besides these two models also the Application Composition model is described by B. Bohem. The Application Composition model can be used as sizing metric for application composition; and the estimation is based on the number of screens, reports and 3GL components.
Page 11 of 16
Formula:
Page 12 of 16
4. Effort Estimation?
Effort can be measured in staff-hours or staff-months (Used to be known as man-hours or man-months). Effort estimation is answering two basic questions about testing: I. What will be done? How much effort would it take?
II.
A project manager has to produce: An estimate of the effort. An estimate of the activity durations.
Before we can plan the project schedule we have to estimate effort and duration of all the work packages of the WBS. Effort estimation will generate a lot more information than only effort and duration:
Page 13 of 16
Who will be responsible for each work package? What is the work package specification? What are the expected results of each work package? How is the achievement of the results measured? What are the prerequisites for the work package? What are the conditions under which the work has to be done? What are the required start and end times? What and how much material is needed for each work package, at what cost? What tools are needed for each work package, at what rates? Obviously, effort estimation needs expertise on a work package specific level to accomplish this transition.
Page 14 of 16
There are two categories of estimating the effort of each work package: deductive and inductive methods.
For example, the effort of a work package "Develop hardware control unit" is influenced by the number of people involved, P=4, the number of interfaces, S=5, the number of functional blocks, B=10. From earlier projects with similar control units we might know the correlation coefficients. For example, cP=2.5, cS=2, cB=1.5, cU=2.0. Our formula could look like this Effort = f(P, S, B) = cP*P + cS*S*S + cB*B = = 10 + 50 + 15 = = 75 (working days)
Page 15 of 16
Page 16 of 16