cocomo

advertisement
SOFTWARE METRICS
USING
CONSTRUCTIVE COST MODEL
Prepared By
KONDAM GOPAL REDDY
TABLE OF CONTENTS
1.
2.
3.
4.
ABSTRACT
INTRODUTION
CONSTRUCTIVE COST MODEL
COCOMO MODELS
 Basic COCOMO
 CLASSES OF COCOMO
 INTERMEDIATE COCOMO
 ADVANCED COCOMO
5. LIMITATIONS OF COCOMO
6. COST ESTIMATION ACCURACY
7. COCOMO II
8. COCOMO II CALCULATION
9. COCOMO II USES
10.CONCLUSION
11.REFERENCES
1
1
2
2
2
3
4
4
4
5
5
6
6
6
7
ABSTRACT:
Software products are said to be feasible if they are developed within the
budget constraints. The cost estimation models are used to predict the effort and
cost required to develop a project .These models give a base to predict the cost for
developing a software project. The cost estimation can be used to develop a
product utilizing optimum resources. In this paper we will be discussing
Constructive Cost Model as the cost estimation model.
INTODUCTION:
Software cost estimation model is an indirect measure, which is used by
software personnel to predict the cost of a project. The development of software
product varies depending upon the environment in which it is being developed. For
projects with familiar environment it is easy to predict the cost of the project. The
estimation model is useful for trade off between the developer and customer.
Organization can realize of what is achievable and deliverable to the customer.[1]
For the organization to develop a cost estimation model the following
things are required.






List important or critical cost drivers.
Prepare a scaling model for each cost driver.
Find projects with similar environments.
Compare the project with previous familiar projects.
Evaluate the project whether it is feasible within the budget constraints.
Incorporate the critical features in an iterative manner.[1]
Cost drivers are those critical features which have an impact on the
project. The cost drivers may vary the cost of building a project. The most
important cost driver is size of the project. Size of the project is measured in Kilo
lines of code (KLOC). Function points are the empirical measurement to measure
size of the project. Function points may vary the size of the project due to the
variation in





Number of inputs
Number of outputs
Number of inquires
Number of files
Number of interfaces[1]
CONSTRUCTIVE COST MODEL (COCOMO):
Constructive Cost model was developed by Barry W Boehm in 1981[3]. It
is an algorithmic cost model. Algorithmic cost model is developed based on
relating the current project to previous projects. It is based on historical
information. [2]
Cocomo is based on size of the project. The size of the project may vary
depending upon the function points. [1]
COCOMO MODELS:
 BASIC COCOMO




It is used for relatively small project.
Only a few cost drivers are associated.
Cost drivers depend upon project size mainly.
Useful when the team size is small, i.e. small staff.
The effort (E) and schedule (S) of the project are calculated as follows
 Effort E = a * (KDSI) b * EAF Where KDSI is number of thousands of
delivered source instructions a and b are constants, may vary depending on
size of the project .[2]
 Schedule S= c * (E) d
where E is the Effort and c, d are constants. [1]
 EAF is called Effort Adjustment Factor which is 1 for basic cocomo , this
value may vary from 1 to 15.[3]
Constants
Project modes
a
b
c
d
Organic project mode
2.4
1.05
2.5
0.38
Semi-detached project mode
3.0
1.12
2.5
0.35
Embedded project mode
3.6
1.20
2.5
0.32
Table 1 [3]
The above table 1 shows typical constant values that have been calculated
from various projects.
The basic cocomo gives the magnitude of cost of the project. It varies
depending upon size of the project. The various classes of software projects are
 Organic mode projects :
 Used for relatively smaller teams.
 Project is developed in familiar environment.
 There is a proper interaction among the team members and they
coordinate their work.
 Bohem observed E=2.4(KDSI)1.05 E in person-months.
 And S=2.5(E)0.38. [2]
 Semi-detached mode projects :
 It lies between organic mode and embedded mode in terms of
team size.
 It consists of experienced and inexperienced staff.
 Team members are unfamiliar with the system under
development.
 Bohem observed E=3(KDSI)1.12 E in person-months.
 And S=2.5(E)0.35.[2]
 Embedded mode projects :
 The project environment is complex.
 Team members are highly skilled.
 Team members are familiar with the system under
development.
 Bohem observed E=3.6(KDSI)1.20 E in person-months.
 And S=2.5(E)0.32.[2]
 Intermediate COCOMO
 It is used for medium sized projects.
 The cost drivers are intermediate to basic and advanced cocomo.
 Cost drivers depend upon product reliability, database size,
execution and storage.[2]
 Team size is medium.
 Advanced COCOMO
 It is used for large sized projects.
 The cost drivers depend upon requirements, analysis, design,
testing and maintenance.
 Team size is large.
LIMITATIONS OF COCOMO
 COCOMO is used to estimate the cost and schedule of the project, starting
from the design phase and till the end of integration phase. For the
remaining phases a separate estimation model should be used.
 COCOMO is not a perfect realistic model. Assumptions made at the
beginning may vary as time progresses in developing the project.
 When need arises to revise the cost of the project. A new estimate may
show over budget or under budget for the project. This may lead to a partial
development of the system, excluding certain requirements.

COCOMO assumes that the requirements are constant throughout the
development of the project; any changes in the requirements are not
accommodated for calculation of cost of the project.
 There is not much difference between basic and intermediate COCOMO,
except during the maintenance and development of the software project.[1]
 COCOMO is not suitable for non-sequential ,rapid development,
reengineering ,reuse cases models.[3]
COST ESTIMATION ACCURACY
The cost estimation may vary due to changes in the requirements, staff size, and
environment in which the software is being developed.
The calculation for cost estimation accuracy is given as follows
Absolute error= (Epred - Eactual)
Percentage error= (Epred - Eactual)/Eactual
Relative error= 1/n ∑ (Epred - Eactual)/Eactual
The above results give a more accurate estimation of costs for future
projects.[3] The cost estimation model now becomes more realistic .
COCOMO II
 COCOMOII was developed in 1995
 It could overcome the limitations of calculating the costs for nonsequential, rapid development, reengineering and reuse models of
software.
 It has 3 modules
 Application composition: - good for projects with GUI
interface for rapid development of project.
 Early design: - Prepare a rough picture of what is to be
designed. Done before the architecture is designed.
 Post architecture: - Prepared after the architecture has been
designed. [3]
COCOMO II calculation
In COCOMO II the constant value b is replaced by 5 scale factors. [3]
 Effort (E) is calculated as follows
E = a * (KDSI) sf * π (EM)
Where a is constant, sf is scaling factor, EM is Effort Multiplier (7 for Early
design, 17 for Post architecture). [4]
COCOMO II USES
 Helps in making decisions based on business and financial calculations of
the project.
 Establishes the cost and schedule of the project under development, this
provides a plan for the project.
 Provides a more reliable cost and schedule, hence the risk mitigation is easy
to accomplish.
 It overcomes the problem of reengineering and reuse of software modules.
 Develops a process at each level . Hence takes care of the capability
maturity model.[5]
CONCLUSION:
Constructive Cost Model developed by Barry W Boehm, is the most
common and widely used cost estimation models for most software projects. The
effort and schedule calculated by the model is based on two things, historical
information and experience. Thus the reliability on cocomo has been increased.
The website provided by NASA on cocomo, provides a cocomo calculator with
cost drivers for a complex project. Cost drivers directly have an impact on the
development of the project.
References:
[1] Farshad Faghih,” Software Effort and Schedule Estimation”,
http://www2.enel.ucalgary.ca/People/Smith/619.94/prev689/1997.94/reports/fa
rshad.htm
[2]IAN SOMMERVILLE,” Software Engineering”, published by addision wesley, pg 514521.
[3]Seth Bowen, Samuel Lee, Lance Titchkosky,”Software cost estimation”,
http://www.computing.dcu.ie/~renaat/ca421/BLTCostEst.ppt
[4]Barry Boehm, “Cost Estimation With COCOMO II”,
http://sunset.usc.edu/classes/cs577a_2002/lectures/19/ec19.pdf
[5]Center for Systems and Software engineering, “COCOMO II”,
http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html.
Download