Project Estimation Software Engineering Approaches
Lines of Code (LOC)
Function Points
COCOMO
Heuristics
Software Engineering Metrics
and Approaches
Lines of Code (LOC)
An often used metric for determining the size
of the project
Most controversial
Count comments?
Declaring variables?
Efficient code vs. code bloat
Language differences
Easier to count afterwards than to estimate before
programming begins
Function Point Analysis
Allan Albrecht, IBM 1979
Synthetic metric
Independent of the Technology
IFPUG standards (www.ifpug.org)
5 Primary Elements
Inputs
Outputs
Inquiries
Logical Files
Interfaces
The Application Boundary for
Function Point Analysis
Complexity
Low
Average
High
Total
_3x 7=21
_2x 10=20
_1x 15=15
56
__x 5=__
_2x 7=14
__x 10=__
14
ExternalInput
(EI)
_3x 3=9
_5x 4=20
_4x 6=24
53
External
Output(EO)
_4x 4=16
_2x 5=10
_1x 7=7
33
External
Inquiry(EQ)
_2x 3=6
_5x 4=20
_3x 6=18
44
Internal
LogicalFiles
(ILF)
External
InterfaceFiles
(EIF)
Total Unadjusted Function Points (UAF)
200
General System Characteristic
Degree of Influence
DataCommunications
DistributedDataProcessing
Performance
HeavilyUsedConfiguration
TransactionRate
On-lineDataEntry
EndUserEfficiency
OnlineUpdate
ComplexProcessing
Reusability
InstallationEase
OperationalEase
MultipleSites
FacilitateChange
2
Total Degrees of Influence
ValueAdjustmentFactorVAF=(*0.01)+.65
TDI
Total Adjusted Function Points = FP = UAF * VAF
40
VAF=(40*.01)+.65=1.05
FP=200*1.05=210
Language
Average Source LOC
per Function Pont
Average Source LOC
for a 210 FP
Application
Access
38
7,980
Basic
107
22,470
128
26,880
C++
53
11,130
COBOL
107
22,470
Delphi
29
6,090
Java
53
11,130
MachineLanguage
640
134,440
VisualBasic5
29
6,090
Source:http://www.theadvisors.com/langcomparison.htm
COCOMO
COnstructive COst MOdel
Parametric Model developed by Barry Boehm in
1981
Project types
Organic
Routine projects where the work is expected to go smoothly
with few problems
Embedded
Challenging projects that may be new ground for the
organization or project team
Semi-detached
In between organic and embedded. Projects that may not be
simple and straightforward, but there is a high degree of
confidence that the project team can meet the challenge
COCOMO Models (Effort)
Organic Routine
Person Months = 2.4 * KDSI1.05
Embedded Challenging
Person Months = 3.6 * KDSI1.20
Semi-Detached Middle
Person Months = 3.0 * KDSI1.12
COCOMO Effort Example
Semi-Detached
10,600 Java LOC = 200 FP * 53
Person Months = 3.0 * KDSI1.12
= 3.0 * (10.6) 1.12
= 42.21
COCOMO Models (Duration)
Organic
Duration = 2.5 * Effort0.38
Semi-Detached
Duration = 2.5 * Effort0.35
Embedded
Duration = 2.5 * Effort0.32
COCOMO Duration Example
Duration = 2.5 * Effort0.35
= 2.5 *(42.21)0.35
= 9.26 months
People Required = Effort / Duration
= 42.21 / 9.26
= 4.55
COCOMO
COnstructive COst MOdel
COCOMO Model Types
Basic
Intermediate
Advanced
COCOMO II
Heuristics
(Rules of Thumb)
Whenforschedulingasoftwaretask:
1/3Planning
1/6Coding
1/4Componenttestandearlysystemtest
1/4Systemtest,allcomponentsinhand
Some Examples of Heuristics from Estimating
Software Costs by Capers Jones (1988)
Each formal design inspection will find and
remove 65 percent of the bugs present.
Each formal code inspection will find and
remove 60 percent of the bugs present.
Function points raised to the 0.4 power predict
the approximate development schedule in
calendar months.
Function points divided by 150 predict the
approximate number of personnel required for
the application.
What Is the Best Way to
Estimate IT Projects?
Use more than one technique for
estimating
If estimates from different techniques
close, average them
Adjust estimate based on experience
Negotiation may lead to unrealistic
estimations