COCOMO Class Upload
COCOMO Class Upload
Model proposed by
B. W. Boehm’s
through his book
Software Engineering Economics in 1981
1
Software Project Planning
COCOMO applied to
Semidetached
Organic mode Embedded
mode mode
2
Software Project Planning
Mode Project size Nature of Project Innovation Deadline of Development
the project Environment
Organic Typically Small size project, experienced Little Not tight Familiar & In
developers in the familiar house
2-50 KLOC
environment. For example, pay
roll, inventory projects etc.
Embedded Typically over Large project, Real time Significant Tight Complex
systems, Complex interfaces, Hardware/
300 KLOC customer
Very little previous experience.
For example: ATMs, Air Traffic Interfaces
Control etc. required
Basic Model
E ab (KLOC) bb
D cb (E) db
4
Software Project Planning
Software ab bb cb db
Project
5
Software Project Planning
When effort and development time are known, the average staff size to complete
the project may be calculated as:
E
Average staff size (SS) Persons
D
When project size is known, the productivity level may be calculated as:
KLOC
Productivity (P) KLOC / PM
E
6
Software Project Planning
Example: 4.5
7
Software Project Planning
Solution
E ab (KLOC) bb
d
D cb (E) b
E = 2.4(400)1.05 = 1295.31 PM
D = 2.5(1295.31)0.38 = 38.07 PM
8
Software Project Planning
(ii) Semidetached mode
E = 3.0(400)1.12 = 2462.79 PM
D = 2.5(2462.79)0.35 = 38.45 PM
E = 3.6(400)1.20 = 4772.81 PM
D = 2.5(4772.8)0.32 = 38 PM
9
Software Project Planning
Example: 4.6
10
Software Project Planning
Solution
The semi-detached mode is the most appropriate mode; keeping in view the size,
schedule and experience of the development team.
E
Average staff size (SS) Persons
D
1133.12
38.67Persons
29.3
11
Software Project Planning
KLOC 200
Productivity 0.1765 KLOC / PM
E 1133.12
P 176 LOC / PM
12
Assume that the size of an organic type software product has been estimated to be
32,000 lines of source code. Assume that the average salary of software engineers be Rs.
15,000/- per month. Determine the effort required to develop the software product and
the nominal development time. Also determine the cost incurred for the above product
development.
System
integration
14
Software Project Planning
Stage Model Name Application for the Applications
No types of projects
Stage II Early design estimation Application generators, Used in early design stage of a
model infrastructure & system project, when less is known about
integration the project.
Stage III Post architecture Application generators, Used after the completion of the
estimation model infrastructure & system detailed architecture of the project.
integration
18
Software Project Planning
iii. Assign complexity weight to each object : The weights are used
for three object types i.e., screen, report and 3GL components using
the Table 10.
19
Software Project Planning
iv. Determine object points: Add all the weighted object instances to
get one number and this known as object-point count.
NOP are the object points that will need to be developed and differ from
the object point count because there may be reuse.
20
Software Project Planning
vi. Calculation of productivity rate: The productivity rate can be
calculated as:
Productivity rate (PROD) = NOP/Person month
NOP
Effort in PM = ------------
PROD
22
Software Project Planning
Example: 4.9
Consider a database application project with the following
characteristics:
I. The application has 4 screens with 4 views each and 7 data
tables for 3 servers and 4 clients.
II. The application may generate two report of 6 sections each
from 07 data tables for two server and 3 clients. There is
10% reuse of object points.
The developer’s experience and capability in the similar
environment is low. The maturity of organization in terms of
capability is also low. Calculate the object point count, New object
points and effort to develop such a project.
23
Example:
• Consider a database application project.The application has four screens with four views each and
seven data tables for three servers and four clients. Application may generate two reports of six section
each from seven data tables for two servers and three clients. 10% reuse of object points.
Developer’s experience and capability in similar environment is low.
Calculate the object point count, New object point and effort to develop such project.
Step-1:
Number of screens = 4
Number of records = 2
Step-2:
For screens,
Number of views = 4
Number of data tables = 7
Number of servers = 3
Number of clients = 4
by using above given information and table (For Screens),
Complexity level for each screen = medium
For reports,
Number of sections = 6
Number of data tables = 7
Number of servers = 2
Number of clients = 3
by using above given information and table (For Reports),
Complexity level for each report = difficult
Step-3:
By using complexity weight table we can assign complexity weight to each object
instance depending upon their complexity level.
Complexity weight for each screen = 2
Complexity weight for each report = 8
Step-4:
Object point count= 4*2+2*8=24
Step-5:
NOP = [object points * (100 - %reuse)]/100
= [24 * (100 -10)]/100 = 21.6
Step-6:
Developer’s experience and capability is low (given)
Using information given about developer and productivity
rate table Productivity rate (PROD) of given project = 7
Step-7:
Effort = NOP/PROD
= 21.6/7
= 3.086 person-month