COCOMO (COnstructive COst estimation MOdel) was proposed by Boehm in 1981. According to the Boehm any software development project can be classified into one of the following three categories based on the development complexity:
1. Organic
2. Semi-detached
3. Embedded
Boehm’s definition of organic, semidetached, and embedded systems:
1. Organic:
A
development project can be considered of organic type, if the project deals with developing a well understood
application program, the size of the development team is small, and the team
members are experienced in developing similar types of projects.
2. Semidetached:
A development
project can be considered of semidetached type, if the development team consists
of a mixture of experienced and inexperienced staff. Team members may have
limited experience on related systems but may be unfamiliar with some aspects
of the system being developed.
3. Embedded:
A development
project can be considers to be of embedded type, if the software being developed
is strongly coupled to hardware, or if stringent regulations on the operational
procedures exist.
According to Boehm, software cost estimation should be done through three stages:
1. Basic COCOMO Model
2. Intermediate COCOMO Model
3. Complete COCOMO Model
Basic
COCOMO Model:
Basic COCOMO Model is a single-valued model and calculates the
software development cost and effort by measuring Lines Of Code (LOC). It is one type of static
model to estimate software development effort quickly and roughly. The Basic
COCOMO model is good for quick estimates.
The basic COCOMO model gives an approximate estimate of the project parameters. The basic COCOMO estimation model is given by the following expressions:
Effort, E= a(KLOC)b PM
Time for development, Tdev = c(E)d Months
Where,
E is the amount of effort required for the project in
Person-Months (PM).
Tdev is estimated time
to develop the software in months,
KLOC is the
size of the code for the project in Kilo lines of code.
a, b, c, d is the constant parameter , values of a, b, c and d depends upon the three modes of development of projects.
(a) Organic mode: It
is for small sized simple software projects upto 2-50 KLOC (thousand lines of code) with experienced developers in a
familiar environment.
(b) Semi detached mode: It
is for medium sized software projects upto 50-300
KLOC with average previous experience on similar projects.
(c) Embedded mode: It is for large and complex software projects
typically over 300 KLOC with
developers having very little previous experience.
The
constant values of a , b , c and d of the Basic COCOMO Model for the different categories of system:
Mode
a
b
c
d
Organic
2.4
1.05
2.5
0.38
Semidetached
3.0
1.12
2.5
0.35
Embedded
3.6
1.20
2.5
0.32
Mode
a
b
c
d
Organic
2.4
1.05
2.5
0.38
Semidetached
3.0
1.12
2.5
0.35
Embedded
3.6
1.20
2.5
0.32
Intermediate COCOMO model:
Intermediate COCOMO
model is an extension of the Basic COCOMO model which includes a set of cost
drivers into account in order to enhance more accuracy to the cost estimation
model as a result.
The basic COCOMO model assumes that effort and development time are functions of the product size alone. However, a host of other project parameters besides the product size affect the effort required to develop the product as well as the development time. 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. 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.
In general, the cost drivers can be classified as being attributes of the following items:
- Product: The characteristics of the product that are considered include the inherent complexity of the product, reliability requirements of the product, etc.
- Computer: Characteristics of the computer that are considered include the execution speed required, storage space required etc.
- Personnel: The attributes of development personnel that are considered include the experience level of personnel, programming capability, analysis capability, etc.
- Development Environment: Development environment attributes capture the development facilities available to the developers. An important parameter that is considered is the sophistication of the automation (CASE) tools used for software development
Complete COCOMO model
A major shortcoming of both the basic and
intermediate COCOMO models is that they consider a software product as a single
homogeneous entity. However, most large systems are made up of several smaller
sub-systems. These sub-systems may have widely different characteristics. For
example, some sub-systems may be considered as organic type, some semidetached,
and some embedded. Not only that the inherent development complexity of the
subsystems may be different, but also for some subsystems the reliability
requirements may be high, for some the development team might have no previous
experience of similar development etc. The complete COCOMO model considers
these differences in characteristics of the subsystems and estimates the effort
and development time as the sum of the estimates for the individual subsystems.
The cost of each subsystem is estimated separately. This approach reduces the
margin of error in the final estimate
0 Comments
if you have any doubts plz let me know...