COCOMO Function Points
COCOMO Function Points
COCOMO
1
COCOMO
The overall resources for software project must be
estimated:
development costs (i.e., programmer-months)
development interval
staffing levels
maintenance costs
2
Empirical Estimation Models
Several models exit with various success and
ease/difficulty of use.
We consider the COCOMO (Constructive Cost
Model) .
Decompose the software into small enough
units to be able to estimate the LOC.
Definitions:
KDSI as kilo delivered source instructions
(statements)
not including comments, test drivers, etc.
PM - person months
3 levels of the Cocomo models: Basic,
Intermediate and, Detailed
3
COCOMO
Model 1: Basic
Embedded
800
600
Intermediate
400
Simple
200
0
0
20 40 60 80 100 120
KDSI
5
©Ian Sommerville 1995
Exercise - 1
A project executed in organic mode has 32 KLOC. Find
the effort in person-months, development duration,
and number of people.
6
COCOMO examples
Organic mode project, 32KLOC
PM = 2.4 (32) 1.05 = 91 person months
TDEV = 2.5 (91) 0.38 = 14 months
N = 91/14 = 6.5 people
7
©Ian Sommerville 1995
Exercise - 2
A project executed in embedded mode has a size of 128
KLOC. The values of the constants for a, b, c, and d are
3.6, 1.2, 2.5 and 0.32 respectively
Find the effort in person-months, development
duration, and number of people.
8
COCOMO examples
Embedded mode project, 128KLOC
PM = 3.6 (128)1.2 = 1216 person-months
TDEV = 2.5 (1216)0.32 = 24 months
N = 1216/24 = 51 people
9
©Ian Sommerville 1995
COCOMO examples
Organic mode project, 32KLOC
PM = 2.4 (32) 1.05 = 91 person months
TDEV = 2.5 (91) 0.38 = 14 months
N = 91/14 = 6.5 people
Embedded mode project, 128KLOC
PM = 3.6 (128)1.2 = 1216 person-months
TDEV = 2.5 (1216)0.32 = 24 months
N = 1216/24 = 51 people
10
©Ian Sommerville 1995
COCOMO
Model 2: Intermediate
step I: obtain the nominal effort
estimation as:
PMNOM = ai (KDSI)bi where
ai bi
Organic 3.2 1.05
Semi-detached 3.0 1.12
Embedded 2.8 1.2
11
COCOMO
organic: small s/w team; familiar; in-
house environment; extensive experience;
specifications negotiable.
embedded: firm, tight constraints;
(hardware SRS), generally less known
territory.
semi-detached: in between.
13
COCOMO
a total of 15 attributes, each rated on a 6 point scale:
very low - low - nominal - high - very high - extra high
use the Cocomo model to calculate the effort
adjustment factor (EAF) as:
15
EAF attributes
i 1
14
COCOMO
step IV: estimate the related
resources as:
TDEV = ci (PMDEV)di
ci di
Organic 2.5 0.38
Semi-detached 2.5 0.35
Embedded 2.5 0.32
15
Function-Oriented Metrics
Mainly used in business applications
The focus is on program functionality
A measure of the information domain + a
subjective assessment of complexity
Most common are:
function points and
feature points (FP) .
16
Function Points
The function point metric is evaluated using the following
tables:
Weighting Factor
Parameter Count Simple Average Complex Weight
# of user *3 4 6=
inputs
# of user * 4 5 7=
outputs
#of user *3 4 6=
inquiries
# of files *7 10 15 =
# of *5 7 10 =
external
interfaces
Total_weight =
17
Function Points
18
Function Points
where Fi (i = 1 to 14) are complexity adjustment
values based on the table below:
20
Function Points
No Influence = 0; Incidental = 1;
Moderate = 2 Average = 3;
Significant = 4 Essential = 5
21
Function-Oriented Metrics
Once function points are calculated, they are used in a
manner analogous to LOC as a measure of software
productivity, quality and other attributes, e.g.:
productivity FP/person-month
quality faults/FP
cost $$/FP
documentation doc_pages/FP
22
Example: Function Points
23
Example: Your PBX project
Total of FPs = 25
F4 = 4, F10 = 4, other Fi’s are set to 0. Sum of all Fi’s
= 8.
FP = 25 x (0.65 + 0.01 x 8) = 18.25
Lines of code in C = 18.25 x 128 LOC = 2336 LOC
For the given example, developers have
implemented their projects using about 2500 LOC
which is very close to predicted value of 2336 LOC
24
Feature Point Metrics
It represents the same thing – “functionality”
delivered by the software.
Measurement parameters and weights are:
Number of user inputs – weight = 4
Number of user outputs – weight = 5
Number of user inquiries – weight = 4
Number of files – weight = 7
Number of external interfaces – weight = 7
Number of algorithms – weight = 3
Total_weight or total_count = ?
25