Software Estimation With COCOMO II (Bis)
Software Estimation With COCOMO II (Bis)
Management:
Software Estimation
With COCOMO-II
Shawn Bohner
Office: Moench Room F212
Phone: (812) 877-8685
Email: [email protected]
Estimation
Experience
and Beware of
the Sales
Guy…
Yikes!
Cost Estimation
n Project scope must be explicitly defined
n Task, functional, or component
decomposition is necessary
n Historical measures
(metrics) are very helpful
n To assure fit, use two or
more estimation techniques
n Uncertainty is inherent in most estimation
endeavors – plan on it!
Learning Outcomes: Estimation
Q2
Early Design Level
n Estimates made after requirements confirmed
!PM = A × SizeB × M + π
n
! I=1
EMi
where:
n A = 2.5 in initial calibration
n Size in KLOC
n B varies from 1.1 to 1.24 depending on novelty of
project, development flexibility, risk management
approaches, and process maturity
n EM = (ASLOC × (AT / 100) ) / ATPROD
n M = PERS × RCPX × RUSE × PDIF × PREX × FCIL ×
SCED
Q3
Multipliers
Multipliers reflect capability of developers, non-
functional requirements, familiarity with
development platform, etc.
Q4
Post-Architecture Level (continued)
Q5
Project Product attributes
RELY Required system DATA Size of database used
Cost CPLX
reliability
Complexity of system RUSE Required percentage of
Drivers DOCU
modules
Extent of documentation
reusable components
required
Computer attributes
TIME Execution time STOR Memory constraints
constraints
PVOL Volatility of
development platform
Personnel attributes
ACAP Capability of project PCAP Programmer capability
analysts
PCON Personnel continuity AEXP Analyst experience in project
domain
PEXP Programmer experience LTEX Language and tool experience
in project domain
Project attributes
TOOL Use of software tools SITE Extent of multi-site working
and quality of site
communications
SCED Development schedule
compression
Q6
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.
Enter a Project Name
Can’t really do much unless we add a Module,
so choose Edit à Add Module. A new line shows
up in the screen with a default module name.
1. Change the 2. Now double click on
module name the yellow rectangle
to whatever under Module Size…
you want.
This screen will pop up allowing us to choose
between Source Lines Of Code (SLOC),
Function Points, or Adaptation and Re-Use.
Let’s stick with SLOC for this module.
The program language is C++ (this is really
important to know for Function Points), there is
an estimated 10,000 lines of code, and 20% of
the code will be discarded due to requirements
evolution and volatility.
Hit OK…
The main screen is updated with the SLOC and
programming language as well as some calculated values
we will decipher later. Note that the SLOC is 12,000. Why? J
{Pertinent portion of calculation on next slide in red boxes}
Now add another module and choose Function Points.
COCOMO-II Calculations: Effort
Equation for Post Architecture Model
This is the
default screen
for Function
Points.
Let’s look
deeper at the
Function Type
descriptions…
External Input Count each unique user data or user control input type that (i)
(Inputs)
enters the external boundary of the software system being
measured and (ii) adds or changes data in a logical internal file.
External Output Count each unique user data or control output type that leaves
(Outputs)
the external boundary of the software system being measured.
Internal Logical File Count each major logical group of user data or control
(Files)
information in the software system as a logical internal file
type. Include each logical file (e.g., each logical group of data)
that is generated, used, or maintained by the software system.
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 II’s default
estimation (not
calibrated for your
environment, not
taking into account
other factors).
Estimation Method
Estimate
Results Choose
Estimation
Methods
Estimation Estimation
Method 1 (M1) Method 2 (M2)