You are on page 1of 20

COCOMO: A Classical Estimation Model

Juan José Amor Iglesias


jjamor at gsyc.escet.urjc.es

April 2005
1

(cc) 2005 Juan José Amor Iglesias.


Some rights reserved. This work licensed under Creative Commons
Attribution-ShareAlike License. To view a copy of full license, see
http://creativecommons.org/licenses/by-sa/2.0/

c
°2005 Juan José Amor Iglesias
Software Estimation 2

Software Estimation

Software Estimation
Metrics and calculations for answering following questions:
• What will be its size?
• How much it will cost?
• How many months of development will be needed?
Classical software engineering proposed techniques for:
Estimating future size by using several information.
• Example: Function Points
Estimating future costs by using estimated size and some more
information (cost drivers, etc): COCOMO

COCOMO: COnstructive COst Model


c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Software Estimation 3

Software Estimation

COCOMO Inputs:
Estimated SLOCs
Cost drivers
...
COCOMO Outputs:
Estimated cost (in Man-Months)
Estimated development time
Here we can obtain:
Human resources
Cost (money)

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
COCOMO: Projects 4

COCOMO: Projects

What type of project are we estimating?


Organic Mode
Semi-detached Mode
Embedded Mode
COCOMO parameters and formulas change with different development
models. So, first step is to determine what “type of project” are we
estimating.

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
The Organic Mode 5

The Organic Mode

Software developed “in house”


Experienced developers
Requires small developer teams
Small communication overhead
Stable development environment
Small size (about 50 KSLOCs)

NOTE: Boehm’s notation for SLOCs: DSI (Delivered Source Instruc-


tions).

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Semi-Detached Mode 6

Semi-Detached Mode

Developers have an intermediate level of experience with related


systems.
Mixture of experienced and unexperienced developers.
Team can have experience relative only for some project aspects.
Size extends up 300 KDSI

This is the intermediate level between Organic and Embedded mode.

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Embedded Mode 7

Embedded Mode

Projects developed within tight constraints.


Product must operate within (embedded in) a strongly coupled
complex of hardware, software and operational procedures.
High cost on changing parts.
Projects on not very known fields.
Any size

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Modes: Examples 8

Modes: Examples

Organic:
An inventory control
A compiler
An operating system for a very known architecture
Semi-detached:
Most transaction processing systems.
More complex operating system.
Embedded:
Large scale transaction system
Avionics

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Basic COCOMO 9

Basic COCOMO

Used for small/medium projects, developed “in house”. So, mainly Or-
ganic mode.
Organic: M M = 2,4(KDSI)1,05 , T DEV = 2,5(M M )0,38
Semi-detached: M M = 3,0(KDSI)1,12 , T DEV = 2,5(M M )0,35
Embedded: M M = 3,6(KDSI)1,2 , T DEV = 2,5(M M )0,32
Software maintenance effort estimation: Formula uses ACT (Annual
Change Traffic): The fraction of the software product’s source instruc-
tions which undergo change during a (typical) year, either through
addition or modification.
M MACT = 1,0(ACT )M MD
Example: After first year, a 32KDSI project added 4000 lines and modified
4000+2400
2400 lines. Then: ACT = 32000
= 0,20.

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Intermediate COCOMO 10

Intermediate COCOMO

Extension of Basic COCOMO


More accurate
Incorporates 15 variables (“cost drivers”) selected by their general
significance and independence (avoiding correlated variables).
Product Attributes:

RELY: Required Software Reliability

DATA: Data base size

CPLX: Product Complexity

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Intermediate COCOMO (II) 11

Intermediate COCOMO (II)

Computer Attributes
TIME: Execution Time Constraint
STOR: Main Storage Constraint
VIRT: Virtual Machine Volatility
TURN: Computer Turnaround Time
Personnel Attributes
ACAP: Analyst Capability
AEXP: Applications Experience
PCAP: Programmer Capability
VEXP: Virtual Machine Experience
LEXP: Programming Language Experience

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Intermediate COCOMO (III) 12

Intermediate COCOMO (III)

Project Attributes

MODP: Modern Programming Practices

TOOL: Use of Software Tools

SCED: Required Development Schedule

Each “cost driver” determines a multiplying factor which estimates the


effect of the attribute on software development effort. These multipliers
are applied to a nominal COCOMO development effort to obtain a refi-
ned estimation. A similar process is done to determine a refined software
maintenance effort estimation.

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Intermediate COCOMO: Formulas 13

Intermediate COCOMO: Formulas

1. Compute effort estimation using next formulas (“nominal” effort).


2. Multiply effort (MM) with product of all cost drivers.
3. TDEV does not change.
Organic: M Mnom = 3,2(KDSI)1,05
Semi-detached: M Mnom = 3,0(KDSI)1,12
Embedded: M Mnom = 2,8(KDSI)1,2

n
Y
M MIN T ERM EDIAT E = M Mnom DRIV ERi
i=1

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Cost drivers: multipliers 14

Cost drivers: multipliers

Cost Drivers Very Low Low Nominal High Very High Extra High
Product Attributes
RELY 0.75 0.88 1.00 1.15 1.40
DATA 0.94 1.00 1.08 1.16
CPLX 0.70 0.85 1.00 1.15 1.30 1.65
Computer Attributes
TIME 1.00 1.11 1.30 1.66
STOR 1.00 1.06 1.21 1.56
VIRT 0.87 1.00 1.15 1.30
TURN 0.87 1.00 1.07 1.15

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Cost drivers: multipliers (II) 15

Cost drivers: multipliers (II)

Cost Drivers Very Low Low Nominal High Very High Extra High
Personnel Attributes
ACAP 1.46 1.19 1.00 0.86 0.71
AEXP 1.29 1.13 1.00 0.91 0.82
PCAP 1.42 1.17 1.00 0.86 0.70
VEXP 1.21 1.10 1.00 0.90
LEXP 1.14 1.07 1.00 0.95
Project Attributes
MODP 1.24 1.10 1.00 0.91 0.82
TOOL 1.24 1.10 1.00 0.91 0.83
SCED 1.23 1.08 1.00 1.04 1.10

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Maintenance Effort Estimation 16

Maintenance Effort Estimation

1. Obtain ACT and M MACT as in Basic COCOMO


2. Consider possible changes in ratings
3. Multiply value by cost drivers. But note that:
4. Three drivers changes their multipliers:
SCED not used (consider always as “nominal”).
RELY and MODP change multipliers.

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Maintenance Effort Estimation (II) 17

Maintenance Effort Estimation (II)

Cost Drivers Very Low Low Nominal High Very High Extra High
RELY 1.35 1.15 1.00 0.98 1.10
SCED 1.00 1.00 1.00 1.00 1.00

MODP
Size Very Low Low Nominal High Very High Extra High
2 1.25 1.12 1.00 0.90 0.81
8 1.30 1.14 1.00 0.88 0.77
32 1.35 1.16 1.00 0.86 0.74
128 1.40 1.18 1.00 0.85 0.72
512 1.45 1.20 1.00 0.84 0.70

NOTE: Product Size in KDSI.

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
Intermediate COCOMO: Discussion 18

Intermediate COCOMO: Discussion

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model
References 19

References

Barry W. Boehm: Software Engineering Economics


Prentice-Hall, 1981.
David Wheeler: SLOCCount
http://www.dwheeler.com/sloccount/

c
°2005 Juan José Amor Iglesias COCOMO: A Classical Estimation Model

You might also like