Professional Documents
Culture Documents
Coco Mo Presentation
Coco Mo Presentation
Estimating Model
Presentation by Paul T. Bathen
For CIS6516
Management of Software Projects and Personnel
Summer B, 2008
Outline of Presentation
COCOMO Versions
CO (Constructive) CO (Cost) MO (Model)
First version: 1981 by Dr. Barry Boehm
Now known now as COCOMO 81
Cocomo 81 Accuracy
Cocomo homepage: Over 63 data points in the
COCOMO 81 calibration database, the
Intermediate form demonstrates an accuracy of
within 20% of actuals 68% of the time for effort,
and within 20% of actuals 58% of the time for a
non-incremental development schedule.
Kemerer 1993: (estimating in general varies)
from as much as 85 - 610 % between predicated
and actual values. Calibration of the model can
improve these figures, However, models still
produce errors of 50-100%.
Source: http://yunus.hacettepe.edu.tr/~sencer/cocomo.html
Cocomo 81
Three calculation models:
Basic: single-variable static model
Effort in staff months = C1b * (KDSI) P1
Schedule in total months= C2 * (Effort)P2
Cocomo 81
C1i * EAF * (KDSI) P1
AND
C2 * (Effort)P2
Cocomo 81
Effort=C1* EAF * (KDSI) P1 and Sched= C2 * (Effort)P2
Cocomo 81 demo
See Excel demo of Cocomo 81
Cocomo 81:
Limitations as years progressed
Software reuse
Application generation programs
Object oriented approaches
Application engineering (reuse, applications
translation)
Rapid development
Follow this link for an interesting IBM Timeline
Person Months
Default Value: 152 hours per month
19 days at 8 hours per day.
Caveat: I have seen various versions of this calculation but I believe this one to be basically
correct, and good enough for purposes of demonstration.
Cocomo II screens
What the Cocomo II screen looks like upon starting a new Project.
Note you start out in the Post Architecture model, and there is no
Application Composition model available.
1. Change the
module name
to whatever
you want.
This is the
default screen
for Function
Points.
Lets look
deeper at the
Function Type
descriptions
ExternalInput
(Inputs)
ExternalOutput
(Outputs)
Counteachuniqueuserdataorusercontrolinputtypethat(i)
enterstheexternalboundaryofthesoftwaresystembeing
measuredand(ii)addsorchangesdatainalogicalinternal
file.
Counteachuniqueuserdataorcontroloutputtypethatleaves
theexternalboundaryofthesoftwaresystembeingmeasured.
InternalLogicalFile Counteachmajorlogicalgroupofuserdataorcontrol
(Files)
informationinthesoftwaresystemasalogicalinternalfile
type.Includeeachlogicalfile(e.g.,eachlogicalgroupofdata)
thatisgenerated,used,ormaintainedbythesoftwaresystem.
ExternalInterface
Files(Interfaces)
Filespassedorsharedbetweensoftwaresystemsshouldbe
countedasexternalinterfacefiletypeswithineachsystem.
ExternalInquiry
(Queries)
Counteachuniqueinputoutputcombination,whereaninput
causesandgeneratesanimmediateoutput,asanexternal
inquirytype.
From Cocomo II User Manual via software
So lets go back
into this screen
and add some
entries in the
grid.
Notice, there are
some kind of
subtotals per
line, but the
Equivalent
SLOC = 0.
Lets change the
Language and
see what
happens.
By changing the
language to C+
+, we now have
an Equivalent
Total in SLOC.
Also, we can
see a value next
to the Change
Multiplier
button.
Lets change the
language to
Machine Code!
Quite a
difference
jumping from
10,653 SLOC to
128,640 SLOC.
Note the
multiplier
changed from
53 to 640.
Change the
language once
more to 5th
Generation.
So using a 5th
generation level
language would cut
our code base by a
factor of 285 times
according to
Cocomo IIs default
estimation (not
calibrated for your
environment, not
taking into account
other factors).
Change the
language to C++
and change REVL
to 20%
Value
640
320
320
213
128
107
107
105
91
91
91
80
80
80
71
71
64
64
64
53
53
49
49
49
49
Language
Simulation Default
Database Default
Access
Visual C++
APL
Basic, Interpreted
Object Oriented
Visual Basic 5.0
Perl
UNIX Shell
Fourth Generation
PowerBuilder
HTML 3.0
Query Default
Spreadsheet Default
Fifth Generation
USR_1
USR_2
USR_3
USR_4
USR_5
Value
46
40
38
34
32
32
29
29
21
21
20
16
15
13
6
5
1
1
1
1
1
What%oftheadapted
softwaresdesignwill
change?
%ofcodethatwill
change?
% of effort required to
integrate the adapted
software into an
overall product and to
test the resulting
product as compared to
the normal amount of
integration and test
effort for software of
comparable size.
Software Understanding
(SU): Use the table
below to help you come
up with a weighted
average based on three
key areas
Assessment &
Assimilation (AA): 0 to 8.
Effort to determine
whether
a fully-reused software
module is appropriate to
the application, and to
integrate its description
into the overall product
description
Very High, Very Low, etc are ok, but what are
the details behind them? To get this answer, you
actually have to visit the Model Manual, which is
a weakness in Cocomo II. So for RELY, here is
what the Model Manual says:
Totals up to 100%
Parting thoughts
1. There are limited online calculator versions of Cocomo 81 and Cocomo II:
http://sunset.usc.edu/research/COCOMOII/cocomo81_pgm/cocomo81.html
http://sunset.usc.edu/research/COCOMOII/expert_cocomo/expert_cocomo200
0.html
2. SoftStarSystems.com
sells CoStar, a Cocomo II on steroids. A trial version limited to
5,000 lines of code is available. Single user license starts at $2,000!!!
3. Its really hard getting a good handle on all the current algorithms for Cocomo II. It
varies over time, administered by fluctuating grad students, etc.
4. Home website for Cocomo:
http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html
5. Email from USC student: There is no source code available for COCOMO II.
This would be an interesting open source/thesis project if you could get their
data!
Bibliography