Project Management: Estimation
Project Management: Estimation
Estimation
The LOC and FP techniques differ in the level of detail required for decomposition. With LOC, decomposition must be taken to extremes; with FP less detail is required because the data required to estimate function points are more macroscopic. Note that LOC is estimated directly, FP indirectly.
Expected value?
Regardless of whether LOC or FP is used, the planner provides a range of values for each decomposed function. Using historical data (or intuition) the planner estimates an optimistic, most likely, and pessimistic LOC or FP for each function. The expected value for LOC or FP is then computed as a weighted average of the three.
For example, E = (a + 4m + b) / 6 gives greatest credence to the most likely estimate and follows a beta probability distribution. Once the expected value has been determined, productivity data are applied.
COCOMO
Boehm, in his 1981 book "Software Engineering Economics", introduced a hierarchy of software estimation models called COCOMO, COnstructive COst MOdel. (Version 2 in 1995)
Basic COCOMO, Intermediate COCOMO, Advanced COCOMO,
COCOMO is a well developed model which takes project, product, hardware and personnel attributes into account. It also includes means of estimating development schedules. A disadvantage is that it depends on historical data which may not always be available.
Basic COCOMO
a static single-valued model that computes software development effort (and cost) as a function of program size expressed in lines of code.
Intermediate COCOMO
computes software development effort as a function of program size and a set of "cost drivers" that include subjective assessments of product, hardware, personnel, and project attributes.
Advanced COCOMO
incorporates all characteristics of the intermediate version with an assessment of the cost driver's impact on each step (analysis, design, ...) of the software engineering process.
E = aKb D = cEd
E is the effort applied in person-months, D is the development time in chronological months, and KLOC is the estimated number of delivered lines of code for the project (expressed in thousands).
The coefficients ab and cb and the exponents bb and db are given below.
Software project ab
Organic Semi-detached Embedded 2.4 3.0 3.6
bb
1.05 1.12 1.20
cb
db
Extensions
The basic model is extended to consider a set of "cost driver attributes" that can be grouped into four major categories:
Product attributes Hardware attributes Personnel attributes Project attributes
Product attributes
Required software reliability Size of application database Complexity of the product
Hardware attributes
Runtime performance constraints Memory constraints Volatility of the virtual machine environment Required turnaround time
Personnel attributes
Analyst capability Software engineer capability Applications experience Virtual machine experience Programming language experience
Project attributes
Use of software tools Application of software engineering methods Required development schedule
E = aKb * EAF
E is the effort applied in personmonths and KLOC is the estimated number of delivered lines of code for the project. The coefficient ai and the exponent bi are given below
Software project ai
Organic Semi-detached Embedded 3.2 3.0 2.8
bi
1.05 1.12 1.20
But ...
Boehm's own comments about COCOM0 (and by extension all models) should be heeded:
"Today, a software cost estimation model is doing well if it can estimate software development costs within 20% of actual costs, 70% of the time, and on its own turf (that is, within the class of projects to which it has been calibrated) .... This is not as precise as we might like, but it is accurate enough to provide a good deal of help in software engineering economic analysis and decision making."
Example ...
estimated LOC estimated project cost estimated effort (PM) 33360 $656,680 144.5
and the table of coefficients earlier, and using the semidetached model, we get
e.g.
If FP=350 and project is shrink-wrap in an average organisation then 350 0.42 = 11.7087, giving a rough schedule of 12 calendar months. In a best-in-class organisation 350 0.39 giving a schedule of 10 months.