Pages

Sunday, 21 July 2019

COCOMO MODEL

COCOMO MODEL OR CONSTRUCTIVE COST ESTIMATION MODEL OR EMPIRICAL ESTIMATION MODEL

COCOMO (Constructive Cost Estimation Model) was proposed by Barry Boehm [1981]. According to Boehm, software cost estimation should be done through three stages:
 1. Basic COCOMO,
 2. Intermediate COCOMO,
 3. Detailed OR Complete COCOMO.

1. Basic COCOMO Model
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 Person Months
Development time (Tdev) = c x (Effort)d Months
Number Of People Required Or Staff Required (P) = E/Tdev

Where
• KLOC is the estimated size of the software product expressed in Kilo Lines of Code,

• a,b,c,d 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).
It should be carefully noted that an effort of 100 PM does not imply that 100 persons should work for  1 month nor does it imply that 1 person should be employed for 100 months, but it denotes the area under the person-month curve as shown in fig.
Fig : Person-month curve

According to Barry Boehm, every line of source text should be calculated as one LOC irrespective of the actual number of instructions on that line. Thus, if a single instruction spans several lines (say n lines), it is considered to be nLOC. The values of a, b, c, d for different categories of products (i.e. organic, semidetached, and embedded) as given by Boehm [1981] are summarized below. He derived the above expressions by examining historical data collected from a large number of actual projects.

Software Project
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

Estimation of development effort (E)
For the three classes of software products, the formulas for estimating the effort based on the code size are shown below:


Organic :

Effort = 2.4(KLOC)1.05 PM 
Semi-detached:

Effort=3.0(KLOC)1.12 PM 
Embedded :

Effort = 3.6(KLOC)1.20 PM


Estimation of development time (Tdev)
 For the three classes of software products, the formulas for estimating the development time based on the effort are given below:

Organic :

Tdev = 2.5(Effort)0.38 Months
Semi-detached :

Tdev = 2.5(Effort)0.35 Months
Embedded :

Tdev = 2.5(Effort)0.32 Months


Number of people required to work (P)

 For the three classes of software products, the formulas for estimating the number of people required based on the effort and development time are given below:

Organic      :
P=2.4(KLOC)1.05PM/2.5(Effort)0.38 Month

Semi-detached  :
P=3.0(KLOC)1.05PM/2.5(Effort)0.35Months

Embedded         : 
P=3.6(KLOC)1.05PM/2.5(Effort)0.32 Month


BASIC COCOMO MODEL can be obtained by plotting the estimated characteristics for different software sizes. Fig. shows a plot of estimated effort versus product size. From fig. we can observe that the effort is somewhat superlinear in the size of the software product. Thus, the effort required to develop a product increases very rapidly with project size.


The development time versus the product size in KLOC is plotted in fig,it can be observed that the development time is a sublinear function of the size of the product, i.e. when the size of the product increases by two times, the time to develop the product does not double but rises moderately. This can be explained by the fact that for larger products, a larger number of activities which can be carried out concurrently can be identified The parallel activities can be carried out simultaneously by the engineers. This reduces the time to complete the project. Further, from fig., it can be observed that the development time is roughly the same for all the three categories of products. For example, a 60 KLOC program can be developed in approximately 18 months, regardless of whether it is of organic, semidetached, or embedded type.



Example:
Suppose a project was estimated to be 400 kloc. Calculate the effort & development time of organic ,semi-detached, embedded software projects.


Solution:- 
Given kloc=400 
We know that Effort=a(kloc)^b PM 
Development time=c(kloc)^d M  
No of people = effort/(development time) P 

Organic:-  from the above table we know that for organic project the values for the constants a,b,c,d are as follows ;   a=2.4,b=1.05,c=2.5,d=0.38.
Effort= 2.4(400)^1.05  
Effort=2.4*539.71 
Effort=1295.31 PM.

Development time= 2.5(1295.31)^0.38 
Development time= 38.07 M

No of persons or people =   1295.31/(38.07 )  
No of persons or people = 34 persons 

Semi –detached :-    from the above table we know that for semi detached project the values for the constants are a=3.0,b=1.12,c=2.5,d=0.35.
Effort=3.0(400)^1.12
Effort= 3.0*820.93
Effort=2462.79PM

Development time=2.5(2462.79)^0.35
Development time= 2.5*15.38
Development time=38.45M

No of persons or people =   2462.79/38.45  
No of persons or people=  64 persons

Embedded :-   from the above table we know that the values for the constants a,b,c,d for embedded project is 3.6,1.20,2.5,0.32 respectively.
Effort=3.6(400)^(1.20 )
Effort=4772.81 PM

Development time =2.5(4772.81)^0.32 
Development time =37.59 M

No of persons or people=  (  4772.81)/37.59
No of persons or people=  126 PERSONS

Therefore all of this is tabulated in a table to yield the final data as follows:-

Software project

a

b

c

d

EFFORT

(E)

DEVELOPMENT
TIME
(T_DEVE)

PERSONS

(P)

Organic

2.4

1.05

2.5

0.38

1295.31

38.07

   34

Semi-detached

3.0

1.12

2.5

0.35

2462.79

38.45

   64

Embedded

3.6

1.20

2.5

0.32

4772.81

37.59

  126


Practical Analysis of Basic COCOMO model using MS project 



2. Intermediate COCOMO
       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.

The cost driver attributes must have values within the range of 0.9 to1.4.

Cost driver attributes
Very low
Low
Average
Significant high
High
Very high
Points
0.9
1.0
1.1
1.2
1.3
1.4
Classification of these cost, driver attributes are used to calculate EAF(Effect Adjustment Factor)
v Product attributes:-
a)      Required software reliability extent
b)      The size of the application database
c)      The complexity of the project
v Hardware attributes:-
a)      Run time performance constraints.
b)      Memory constraints.
c)      The volatility of the virtual machine environment.
d)     Required turn about time
v Personal attributes:-
a)      Analyst capability.
b)      Software engineering capability.
c)      Applications experience.
d)     Virtual machine experience.
e)   Programming language experience.
v  Project attributes:-
a)      Use of Software tools.
b)      Applications of software engineering methods.
c)      Required development schedule.
The project manager is to rate these 15 parameters for a particular  then depending on these ratings the EAF (EFFORT ADJUSTMENT FACTOR) is calculated. 

The tabular form becomes as follows   
Software project
a
b
c
d
Organic
3.2
1.05
2.5
0.38
Semi-detached
3.0
1.12
2.5
0.35
Embedded
2.8
1.20
2.5
0.32

Effort=a(kloc)^b*EAF PM
DEVELOPMENT TIME=c(EFFORT)^d M
No of persons=effort/(development time) P

Example:
Given kloc=400 
We know that effort=a(kloc)^b PM 
Development time=c(effort)^d M  
No of people = effort/(development time) P 

EAF can be calculated by adding all the points of the cost driver attributes i.e. EAF=17.9 
Therefore the values for effort development time and no of persons are as follows:-

Organic:-

Effort=3.2(400)^1.05*17.9

Effort=3.2 * 539.713 * 17.9

Effort= 30914.768 PM


T_DEV=2.5(30914.768)^0.38

T_DEV=2.5* 50.846

T_DEV=127.116 M


NO OF PEOPLE=30914.768/127.116

NO OF PEOPLE= 243.201 P


Semi-detached:-

Effort=3.0(400)^1.12*17.9

Effort=2462.79*17.9

Effort= 44084.048PM


T_DEV=2.5(44084.048)^0.35

T_DEV=2.5* 42.218

T_DEV=105.545 M


NO OF PEOPLE=44084.048/105.545

NO OF PEOPLE= 417.680 P


EMBEDDED:-

EFFORT=2.8 (400)^1.20 *17.9

EFFORT= 3712.1884*17.9

EFFORT=66448.1741PM


T_DEV=  2.5(66448.1741)^0.32

T_DEV= 87.325 M


NO OF PEOPLE=66448.1741/87.325

NO OF PEOPLE = 760.929 P


The tabular form becomes as follows

 

Software project

 

a

 

b

 

c

 

d

 

Effort

 

Devp_time

 

Persons

 

Organic

 

3.2

 

1.05

 

2.5

 

0.38

 

30914.76

 

127.116

 

243.201

 

Semi-detached

 

3.0

 

1.12

 

2.5

 

0.35

 

44084.04

 

105.545

 

417.680

 

Embedded

 

2.8

 

1.20

 

2.5

 

0.32

 

66448.17

 

87.325

 

760.929



Practical Analysis of Intermediate COCOMO model using ms project 




3. Detailed Or Complete COCOMO
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 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. 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:
• Graphical User Interface (GUI) part dealed by project called Organic
• Database part dealed by project called Semi-detached
• Communication part dealed by project called  Embedded


       Problem:

Problem:




No comments:

Post a Comment