Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
Software Cost Estimation and Software Cost Estimation and
COCOMO II OverviewCOCOMO II Overview
CS 566 CS 566 –– Software Management and EconomicsSoftware Management and Economics
Lecture 4 (Madachy 2005; Chapters 1 and 2, Boehm et al. 2000)Lecture 4 (Madachy 2005; Chapters 1 and 2, Boehm et al. 2000)
Ali Afzal MalikAli Afzal Malik
6/20/20086/20/2008 LUMSLUMS 22
OutlineOutline
�� Software cost estimation overviewSoftware cost estimation overview
�� COCOMO II introductionCOCOMO II introduction
�� Basic estimation formulasBasic estimation formulas
�� Cost factorsCost factors
�� Reuse modelReuse model
�� SizingSizing
�� ReferencesReferences
6/20/20086/20/2008 LUMSLUMS 33
Software Cost Estimation Software Cost Estimation
MethodsMethods�� Cost estimationCost estimation: prediction of both the person: prediction of both the person--effort and effort and
elapsed time of a projectelapsed time of a project
�� Methods:Methods:–– AlgorithmicAlgorithmic–– Expert judgmentExpert judgment–– Estimation by analogyEstimation by analogy–– ParkinsonianParkinsonian–– PricePrice--toto--winwin–– TopTop--downdown–– BottomBottom--upup
�� Best approach is a combination of methodsBest approach is a combination of methods–– compare and iterate estimates, reconcile differencescompare and iterate estimates, reconcile differences
�� COCOMO is the most widely used, thoroughly documented COCOMO is the most widely used, thoroughly documented and calibrated cost modeland calibrated cost model
6/20/20086/20/2008 LUMSLUMS 44
COCOMO BackgroundCOCOMO Background
�� COCOMO COCOMO -- the the ““COnstructiveCOnstructive COstCOst MOdelMOdel””–– COCOMO II is the update to COCOMO 1981COCOMO II is the update to COCOMO 1981
–– ongoing research with annual calibrations made availableongoing research with annual calibrations made available
�� Originally developed by Dr. Barry Boehm Originally developed by Dr. Barry Boehm and published in 1981 book and published in 1981 book Software Software Engineering EconomicsEngineering Economics
�� COCOMO II described in new bookCOCOMO II described in new book Software Software Cost Estimation with COCOMO IICost Estimation with COCOMO II
�� COCOMO can be used as a framework for COCOMO can be used as a framework for cost estimation and related activitiescost estimation and related activities
6/20/20086/20/2008 LUMSLUMS 55
Software Estimation Accuracy Software Estimation Accuracy
–– Effect of UncertaintiesEffect of Uncertainties
Feasibility Plans/Rqts. Design Develop and Test
Phases and Milestones
Relative Size
Range
OperationalConcept
Life Cycle Objectives
Life Cycle Architecture
Initial Operating Capability
x
0.5x
0.25x
4x
2x
6/20/20086/20/2008 LUMSLUMS 66
Black Box ModelBlack Box Model
COCOMO II
product size estimate
product, process, platform, and personnel attributes
reuse, maintenance, and increment parameters
organizationalproject data
development, maintenance cost and schedule estimates
cost, schedule distribution by phase, activity, increment
recalibration toorganizational data
6/20/20086/20/2008 LUMSLUMS 77
Major COCOMO II Major COCOMO II
FeaturesFeatures
�� MultiMulti--model coverage of different model coverage of different
development sectorsdevelopment sectors
�� VariableVariable--granularity cost model inputsgranularity cost model inputs
�� Flexibility in size inputsFlexibility in size inputs
–– SLOCSSLOCS
–– function pointsfunction points
�� Range vs. point estimatesRange vs. point estimates
6/20/20086/20/2008 LUMSLUMS 88
COCOMO Uses for COCOMO Uses for
Software Decision MakingSoftware Decision Making
�� Making investment decisions and businessMaking investment decisions and business--case analyses case analyses
�� Setting project budgets and schedules Setting project budgets and schedules
�� Performing tradeoff analysesPerforming tradeoff analyses
�� Cost risk managementCost risk management
�� Development vs. reuse decisionsDevelopment vs. reuse decisions
�� Legacy software phaseLegacy software phase--out decisionsout decisions
�� Software reuse and product line decisionsSoftware reuse and product line decisions
�� Process improvement decisionsProcess improvement decisions
6/20/20086/20/2008 LUMSLUMS 99
COCOMO SubmodelsCOCOMO Submodels
�� The The Early DesignEarly Design model involves exploration of model involves exploration of alternative software/system architectures and alternative software/system architectures and concepts of operation using function points and a concepts of operation using function points and a coursecourse--grained set of 7 cost drivers.grained set of 7 cost drivers.
�� The The PostPost--ArchitectureArchitecture model involves the actual model involves the actual development and maintenance of a software development and maintenance of a software product using source instructions and/or function product using source instructions and/or function points for sizing, with modifiers for reuse and points for sizing, with modifiers for reuse and software breakage; a set of 17 multiplicative cost software breakage; a set of 17 multiplicative cost drivers; and a set of 5 factors (same as Early drivers; and a set of 5 factors (same as Early Design) determining the project's scaling exponent.Design) determining the project's scaling exponent.
6/20/20086/20/2008 LUMSLUMS 1010
COCOMO Effort (PM) COCOMO Effort (PM)
FormulationFormulation
PMPM = = AA x (x (SizeSize))EE x x ΠΠi=1 to ni=1 to n ((EMEMii))
�� WhereWhere::–– AA is a constant derived from historical project data is a constant derived from historical project data
(currently (currently AA = 2.94 in COCOMOII.2000)= 2.94 in COCOMOII.2000)–– SizeSize is in KSLOC (thousand source lines of code), is in KSLOC (thousand source lines of code),
or converted from function pointsor converted from function points–– EE is an exponent for the diseconomy of scale dependent on five is an exponent for the diseconomy of scale dependent on five
additive scale drivers according to additive scale drivers according to EE = 0.91 + 0.01 x = 0.91 + 0.01 x ΣΣΣΣΣΣΣΣSFSFii,,where where SFSFii is a weighting factor for is a weighting factor for iithth scale driverscale driver
–– n is the number of effort multipliersn is the number of effort multipliers–– EMEMii is the effort multiplier for the is the effort multiplier for the iithth cost driver. The geometric cost driver. The geometric
product results in an overall effort adjustment factor (EAF) to product results in an overall effort adjustment factor (EAF) to the the nominal effort.nominal effort.
�� Automated translation effects are not includedAutomated translation effects are not included
6/20/20086/20/2008 LUMSLUMS 1111
Diseconomy of ScaleDiseconomy of Scale
�� Nonlinear relationship when exponent (B) > 1 Nonlinear relationship when exponent (B) > 1
0
2 0 0 0
4 0 0 0
6 0 0 0
8 0 0 0
1 0 0 0 0
1 2 0 0 0
1 4 0 0 0
1 6 0 0 0
0 5 0 0 1 0 0 0
K S L O C
Per
son
Mon
ths
B = 1 .2 2 6
B = 1 .0 0
B = 0 .9 1
6/20/20086/20/2008 LUMSLUMS 1212
SizingSizing
�� Lines of CodeLines of Code
�� Function PointsFunction Points
6/20/20086/20/2008 LUMSLUMS 1313
Lines of CodeLines of Code
�� Source Lines of Code (Source Lines of Code (SLOCsSLOCs) = logical source ) = logical source statementsstatements
�� Logical source statements = data declarations Logical source statements = data declarations + executable statements+ executable statements
�� Executable statements cause runtime actionsExecutable statements cause runtime actions
�� Declaration statements are Declaration statements are nonexecutablenonexecutablestatements that affect an assembler's or statements that affect an assembler's or compiler's interpretation of other program compiler's interpretation of other program elementselements
�� CodecountCodecount tool available on USC web sitetool available on USC web site
6/20/20086/20/2008 LUMSLUMS 1414
Lines of Code Counting Lines of Code Counting
RulesRules�� Standard definition for Standard definition for
counting linescounting lines
–– Based on SEI definition Based on SEI definition checklist from checklist from CMU/SEICMU/SEI--9292--TRTR--2020
–– Modified for COCOMO Modified for COCOMO IIII
�� When a line or statement When a line or statement contains more than one contains more than one type, classify it as the type type, classify it as the type with the highest with the highest precedence. Order of precedence. Order of precedence is in precedence is in ascending orderascending order
Statement type Includes Excludes
1. Executable �
2. Non-executable:
3. Declarations �
4. Compiler directives �
5. Comments:
6. On their own lines �
7. On lines with source code �
8. Banners and non-blank spacers �
9. Blank (empty) comments �
10. Blank lines �
6/20/20086/20/2008 LUMSLUMS 1515
Counting with Function Counting with Function
PointsPoints
�� Used in both the Early Design and the PostUsed in both the Early Design and the Post--
Architecture models.Architecture models.
�� Based on the amount of functionality in a Based on the amount of functionality in a
software product and project factors using software product and project factors using
information available early in the project life information available early in the project life
cycle. cycle.
�� Quantify the information processing Quantify the information processing
functionality with the following user function functionality with the following user function
types: EI, EO, ILF, EIF, EQtypes: EI, EO, ILF, EIF, EQ
6/20/20086/20/2008 LUMSLUMS 1616
COCOMO Schedule COCOMO Schedule
(Months) Formulation(Months) Formulation
� TDEV = C x (PM)(0.33+0.2(E – 0.91)) x SCED%/100
�� Where: Where: –– TDEVTDEV is the calendar time in months from the requirements is the calendar time in months from the requirements
baseline to acceptancebaseline to acceptance
–– CC is a constant derived from historical project data is a constant derived from historical project data (currently (currently CC = 3.67 in COCOMOII.2000)= 3.67 in COCOMOII.2000)
–– PMPM is the estimated personis the estimated person--months excluding the SCED effort months excluding the SCED effort multipliermultiplier
–– EE is the exponent of size in Effort Formulationis the exponent of size in Effort Formulation–– SCED%SCED% is the compression / expansion percentage in the SCED is the compression / expansion percentage in the SCED
cost drivercost driver
�� This is the COCOMOII.2000 calibrationThis is the COCOMOII.2000 calibration
6/20/20086/20/2008 LUMSLUMS 1717
Coverage of Different Coverage of Different
ProcessesProcesses
�� COCOMO II provides a framework for tailoring the COCOMO II provides a framework for tailoring the model to any desired processmodel to any desired process
�� Original COCOMO was predicated on the waterfall Original COCOMO was predicated on the waterfall processprocess–– singlesingle--pass, sequential progression of requirements, design, code, testpass, sequential progression of requirements, design, code, test
�� Modern processes are concurrent, iterative, Modern processes are concurrent, iterative, incremental, and cyclicincremental, and cyclic–– e.g. Rational Unified Process (RUP), the USC Modele.g. Rational Unified Process (RUP), the USC Model--Based (System) Based (System)
Architecting and Software Engineering (MBASE) process Architecting and Software Engineering (MBASE) process
�� Effort and schedule are distributed among different Effort and schedule are distributed among different phases and activities per work breakdown structure phases and activities per work breakdown structure of chosen processof chosen process
6/20/20086/20/2008 LUMSLUMS 1818
Common Process Anchor Common Process Anchor
PointsPoints
�� Anchor points are common process Anchor points are common process milestones around which cost and schedule milestones around which cost and schedule budgets are organizedbudgets are organized
�� COCOMO II submodels address different COCOMO II submodels address different development stages anchored by these development stages anchored by these generic milestones:generic milestones:–– Life Cycle Objectives (LCO)Life Cycle Objectives (LCO)
�� inceptioninception: establishing a sound business case: establishing a sound business case
–– Life Cycle Architecture (LCA)Life Cycle Architecture (LCA)�� elaborationelaboration: commit to a single architecture and elaborate it to cover : commit to a single architecture and elaborate it to cover
all major risk sourcesall major risk sources
–– Initial Operational Capability (IOC)Initial Operational Capability (IOC)�� constructionconstruction: commit to transition and support operations: commit to transition and support operations
6/20/20086/20/2008 LUMSLUMS 1919
MBASE Phase MBASE Phase
DistributionsDistributions
125118Project Total
100100COCOMO Total
12.512Transition
62.576Construction
37.524Elaboration
12.56Inception
Schedule %Effort %Phase
6/20/20086/20/2008 LUMSLUMS 2020
Waterfall Phase Waterfall Phase
DistributionsDistributions
125119Project Total
100100COCOMO Total
12.512
Integration & Test
4858Programming
2617Product Design
207Plans & rqts
Schedule %Effort %Phase
Transition
25 26
6/20/20086/20/2008 LUMSLUMS 2121
COCOMO II Output COCOMO II Output
RangesRanges
�� COCOMO II provides one standard deviation optimistic and COCOMO II provides one standard deviation optimistic and pessimistic estimates.pessimistic estimates.
�� Reflect sources of input uncertainties per funnel chart.Reflect sources of input uncertainties per funnel chart.
�� Apply to effort or schedule for all of the stage models.Apply to effort or schedule for all of the stage models.
�� Represent 80% confidence limits: below optimistic or Represent 80% confidence limits: below optimistic or pessimistic estimates 10% of the time.pessimistic estimates 10% of the time.
Stage OptimisticEstimate
PessimisticEstimate
1 0.50 E 2.0 E
2 0.67 E 1.5 E
3 0.80 E 1.25 E
6/20/20086/20/2008 LUMSLUMS 2222
COCOMO Tailoring and COCOMO Tailoring and
EnhancementsEnhancements
�� Calibrate effort equations to organizational Calibrate effort equations to organizational experienceexperience–– USC COCOMO has a calibration capabilityUSC COCOMO has a calibration capability
�� Consolidate or eliminate redundant cost Consolidate or eliminate redundant cost driver attributesdriver attributes
�� Add cost drivers applicable to your Add cost drivers applicable to your organizationorganization
�� Account for systems engineering, hardware Account for systems engineering, hardware and software integrationand software integration
6/20/20086/20/2008 LUMSLUMS 2323
Cost FactorsCost Factors
�� Significant factors of development cost:Significant factors of development cost:–– scale driversscale drivers are sources of exponential effort variationare sources of exponential effort variation
–– cost driverscost drivers are sources of linear effort variationare sources of linear effort variation
�� product, platform, personnel and project attributesproduct, platform, personnel and project attributes
�� effort multipliers associated with cost driver ratingseffort multipliers associated with cost driver ratings
–– Defined to be as objective as possibleDefined to be as objective as possible
�� Each factor is rated between very low and Each factor is rated between very low and very high per rating guidelinesvery high per rating guidelines–– relevant effort multipliers adjust the cost up or downrelevant effort multipliers adjust the cost up or down
6/20/20086/20/2008 LUMSLUMS 2424
Scale Drivers (Five)Scale Drivers (Five)
�� Precedentedness (PREC)Precedentedness (PREC)–– Degree to which system is new and past experience Degree to which system is new and past experience
appliesapplies
�� Development Flexibility (FLEX)Development Flexibility (FLEX)–– Need to conform with specified requirementsNeed to conform with specified requirements
�� Architecture/Risk Resolution (RESL)Architecture/Risk Resolution (RESL)–– Degree of design thoroughness and risk eliminationDegree of design thoroughness and risk elimination
�� Team Cohesion (TEAM)Team Cohesion (TEAM)–– Need to synchronize stakeholders and minimize conflictNeed to synchronize stakeholders and minimize conflict
�� Process Maturity (PMAT)Process Maturity (PMAT)–– SEI CMM process maturity ratingSEI CMM process maturity rating
6/20/20086/20/2008 LUMSLUMS 2525
Cost Drivers (Seventeen)Cost Drivers (Seventeen)
�� Product FactorsProduct Factors–– Reliability (RELY)Reliability (RELY)
–– Data (DATA)Data (DATA)
–– Complexity (CPLX)Complexity (CPLX)
–– Reusability (RUSE)Reusability (RUSE)
–– Documentation (DOCU)Documentation (DOCU)
�� Platform FactorsPlatform Factors–– Time constraint (TIME)Time constraint (TIME)
–– Storage constraint (STOR)Storage constraint (STOR)
–– Platform volatility (PVOL)Platform volatility (PVOL)
�� Personnel factorsPersonnel factors–– Analyst capability (ACAP)Analyst capability (ACAP)
–– Program capability (PCAP)Program capability (PCAP)
–– Applications experience Applications experience (APEX)(APEX)
–– Platform experience (PLEX)Platform experience (PLEX)
–– Language and tool Language and tool experience (LTEX)experience (LTEX)
–– Personnel continuity (PCON)Personnel continuity (PCON)
�� Project FactorsProject Factors–– Software tools (TOOL)Software tools (TOOL)
–– Multisite development (SITE)Multisite development (SITE)
–– Required schedule (SCED)Required schedule (SCED)
6/20/20086/20/2008 LUMSLUMS 2626
Example Cost Driver Example Cost Driver --
Required Software Required Software
Reliability (RELY)Reliability (RELY)�� Measures the extent to which the software Measures the extent to which the software
must perform its intended function over a must perform its intended function over a
period of time. period of time.
�� Ask: what is the effect of a software Ask: what is the effect of a software
failure?failure?Very Low Low Nominal High Very High Extra High
RELY slightinconvenience
low, easilyrecoverablelosses
moderate,easilyrecoverablelosses
high financialloss
risk to humanlife
6/20/20086/20/2008 LUMSLUMS 2727
Example Effort Multiplier Example Effort Multiplier
Values for RELYValues for RELY
Very Low Low High Very High
Slight Inconvenience
Low, Easily Recoverable
Losses
High Financial Loss
Risk to Human Life
1.15
0.75
0.88
1.39
1.0
Moderate, Easily Recoverable
Losses
Nominal
e.g. a highly reliable system costs e.g. a highly reliable system costs
39% more than a nominally 39% more than a nominally
reliable system (1.39/1.0=1.39) or reliable system (1.39/1.0=1.39) or
a highly reliable system costs 85% a highly reliable system costs 85%
more than a very low reliability more than a very low reliability
system (1.39/.75=1.85) system (1.39/.75=1.85)
6/20/20086/20/2008 LUMSLUMS 2828
Scale FactorsScale Factors
�� Sum all scale factors Sum all scale factors WWii to determine to determine a scale exponent, a scale exponent, EE, using , using
EE = 0.91 + 0.01 = 0.91 + 0.01 ΣΣ WWiiScale Factors (Wi) Very Low Low Nominal High Very High Extra High
Precedentedness(PREC)
thoroughlyunprecedented
largelyunprecedented
somewhatunprecedented
generallyfamiliar
largelyfamiliar
throughlyfamiliar
DevelopmentFlexibility (FLEX)
rigorous occasionalrelaxation
somerelaxation
generalconformity
someconformity
generalgoals
Architecture/RiskResolution (RESL)*
little (20%) some (40%) often (60%) generally(75%)
mostly(90%)
full (100%)
Team Cohesion(TEAM)
very difficultinteractions
some difficultinteractions
basicallycooperativeinteractions
largelycooperative
highlycooperative
seamlessinteractions
Process Maturity(PMAT)
Weighted average of “Yes” answers to CMM Maturity Questionnaire
* % significant module interfaces specified, % significant risks eliminated
6/20/20086/20/2008 LUMSLUMS 2929
Cost DriversCost Drivers
�� Product Factors Product Factors
�� Platform Factors Platform Factors
�� Personnel Factors Personnel Factors
�� Project Factors Project Factors
6/20/20086/20/2008 LUMSLUMS 3030
Cost Driver Rating Level Cost Driver Rating Level
SummarySummary
Very Low Low Nominal High Very High Extra High
RELY slightinconvenience
low, easilyrecoverablelosses
moderate, easilyrecoverable losses
high financial loss risk to human life
DATA DB bytes/Pgm SLOC < 10
10 ≤ D/P < 100 100 ≤ D/P < 1000 D/P > 1000
CPLX (see Complexity Table)
RUSE none across project across program across product line across multipleproduct lines
DOCU Many life-cycleneeds uncovered
Some life-cycleneeds uncovered
Right-sized to life-cycle needs
Excessive forlife-cycle needs
Very excessive forlife-cycle needs
TIME ≤ 50% use ofavailable executiontime
70% 85% 95%
STOR ≤ 50% use ofavailable storage
70% 85% 95%
PVOL major changeevery 12 mo.;minor changeevery 1 mo.
major: 6 mo.;minor: 2 wk.
major: 2 mo.;minor: 1 wk.
major: 2 wk.;minor: 2 days
6/20/20086/20/2008 LUMSLUMS 3131
Cost Driver Rating Level Cost Driver Rating Level
Summary Summary contcont’’dd
Very Low Low Nominal High Very High Extra High
ACAP 15th percentile 35th percentile 55th percentile 75th percentile 90th percentile
PCAP 15th percentile 35th percentile 55th percentile 75th percentile 90th percentile
PCON 48% / year 24% / year 12% / year 6% / year 3% / year
AEXP ≤ 2 months 6 months 1 year 3 years 6 years
PEXP ≤ 2 months 6 months 1 year 3 years 6 year
LTEX ≤ 2 months 6 months 1 year 3 years 6 year
TOOL edit, code,debug
simple, frontend,backend CASE,little integration
basic lifecycletools, moderatelyintegrated
strong, maturelifecycle tools,moderatelyintegrated
strong, mature, proactivelifecycle tools, wellintegrated with processes,methods, reuse
SITE:Collocation
International Multi-city andMulti-company
Multi-city orMulti-company
Same city ormetro. area
Same building or complex Fullycollocated
SITE:Commu-nications
Some phone,mail
Individual phone,FAX
Narrowband email Widebandelectroniccommunication.
Wideband elect. comm,occasional video conf.
Interactivemultimedia
SCED 75% of nominal 85% 100% 130% 160%
6/20/20086/20/2008 LUMSLUMS 3232
Cost Factor RatingCost Factor Rating
�� Whenever an assessment of a cost Whenever an assessment of a cost
driver is between the rating levels: driver is between the rating levels:
–– always round to the Nominal rating always round to the Nominal rating
–– e.g. if a cost driver rating is between e.g. if a cost driver rating is between
High and Very High, then select High. High and Very High, then select High.
6/20/20086/20/2008 LUMSLUMS 3333
Productivity RangesProductivity Ranges
4.14
3.37
2.21
1.85
1.72
1.67
1.64
1.60
1.57
1.49
1.48
1.29
1.28
1.27
1 1.5 2 2.5 3 3.5 4 4.5
Personnel Capability
Personnel Experience
Product Complexity
Required Reliability
Use of Software Tools
Execution Time Constraint
Required Reuse
Multisite Development
Main Storage Constraint
Platform Volatility
Personnel Continuity
Required Development Schedule
Database Size
Documentation
Co
st F
acto
r
Productivity Range
6/20/20086/20/2008 LUMSLUMS 3434
Reused and Modified Reused and Modified
SoftwareSoftware
�� Effort for adapted software (reused or Effort for adapted software (reused or
modified) is not the same as for new modified) is not the same as for new
software.software.
�� Approach: convert adapted software Approach: convert adapted software
into equivalent size of new software. into equivalent size of new software.
6/20/20086/20/2008 LUMSLUMS 3535
Nonlinear Reuse EffectsNonlinear Reuse Effects�� The reuse cost function does not go through the origin due to a The reuse cost function does not go through the origin due to a cost cost
of about 5% for assessing, selecting, and assimilating the reusaof about 5% for assessing, selecting, and assimilating the reusable ble component. component.
�� Small modifications generate disproportionately large costs primSmall modifications generate disproportionately large costs primarily arily due the cost of understanding the software to be modified, and tdue the cost of understanding the software to be modified, and the he
relative cost of interface checking.relative cost of interface checking.
Relativecost
Amount Modified
1.0
0.75
0.5
0.25
0.25 0.5 0.75 1.0
0.55
0.70
1.0
0.046
Usual LinearAssumption
Data on 2954NASA modules
[Selby,1988]
6/20/20086/20/2008 LUMSLUMS 3636
COCOMO Reuse ModelCOCOMO Reuse Model
�� A nonlinear estimation model to convert A nonlinear estimation model to convert adapted (reused or modified) software adapted (reused or modified) software into equivalent size of new software:into equivalent size of new software:
AAF DM CM IM= + +0 4 0 3 0 3. ( ) . ( ) . ( )
ESLOCASLOC AA AAF SU UNFM
AAF=+ +
≤[ ( . ( )( ))]
, .1 0 02
10005
ESLOCASLOC AA AAF SU UNFM
AAF=+ +
>[ ( )( )]
, .100
05
6/20/20086/20/2008 LUMSLUMS 3737
COCOMO Reuse Model COCOMO Reuse Model contcont’’dd
�� ASLOCASLOC -- Adapted Source Lines of CodeAdapted Source Lines of Code
�� ESLOCESLOC -- Equivalent Source Lines of CodeEquivalent Source Lines of Code
�� AAFAAF -- Adaptation Adjustment FactorAdaptation Adjustment Factor
�� DMDM -- Percent Design Modified. The percentage of the adapted softwarePercent Design Modified. The percentage of the adapted software's 's design which is modified in order to adapt it to the new objectidesign which is modified in order to adapt it to the new objectives and ves and environment. environment.
�� CMCM -- Percent Code Modified. The percentage of the adapted software'sPercent Code Modified. The percentage of the adapted software's code code which is modified in order to adapt it to the new objectives andwhich is modified in order to adapt it to the new objectives and environment. environment.
�� IMIM -- Percent of Integration Required for Modified Software. The percPercent of Integration Required for Modified Software. The percentage entage of effort required to integrate the adapted software into an oveof effort required to integrate the adapted software into an overall product rall product and to test the resulting product as compared to the normal amouand to test the resulting product as compared to the normal amount of nt of integration and test effort for software of comparable size. integration and test effort for software of comparable size.
�� AAAA -- Assessment and Assimilation effort needed to determine whether Assessment and Assimilation effort needed to determine whether a fullya fully--reused software module is appropriate to the application, and toreused software module is appropriate to the application, and to integrate its integrate its description into the overall product description. See table.description into the overall product description. See table.
�� SUSU -- Software Understanding. Effort increment as a percentage. OnlSoftware Understanding. Effort increment as a percentage. Only used y used when code is modified (zero when DM=0 and CM=0). See table.when code is modified (zero when DM=0 and CM=0). See table.
�� UNFMUNFM -- Unfamiliarity. The programmer's relative unfamiliarity with thUnfamiliarity. The programmer's relative unfamiliarity with the e software which is applied multiplicatively to the software undersoftware which is applied multiplicatively to the software understanding effort standing effort increment (0increment (0--1).1).
6/20/20086/20/2008 LUMSLUMS 3838
Assessment & Assimilation Assessment & Assimilation
Increment (AA)Increment (AA)
AA Increment Level of AA Effort
0 None
2 Basic module search and documentation
4 Some module Test and Evaluation (T&E), documentation
6 Considerable module T&E, documentation
8 Extensive module T&E, documentation
6/20/20086/20/2008 LUMSLUMS 3939
Software Understanding Software Understanding
Increment (SU)Increment (SU)
�� Take the subjective average of the three categories. Take the subjective average of the three categories.
�� Do not use SU if the component is being used unmodified Do not use SU if the component is being used unmodified (DM=0 and CM =0).(DM=0 and CM =0).
Very Low Low Nominal High Very High
Structure Very lowcohesion, highcoupling,spaghetti code.
Moderately lowcohesion, highcoupling.
Reasonably well-structured; someweak areas.
High cohesion, lowcoupling.
Strong modularity,information hiding indata / controlstructures.
ApplicationClarity
No matchbetween programand applicationworld views.
Some correlationbetween programand application.
Moderatecorrelationbetween programand application.
Good correlationbetween programand application.
Clear match betweenprogram andapplication world-views.
Self-Descriptiveness
Obscure code;documentationmissing, obscureor obsolete
Some codecommentary andheaders; someusefuldocumentation.
Moderate level ofcodecommentary,headers,documentations.
Good codecommentary andheaders; usefuldocumentation;some weak areas.
Self-descriptive code;documentation up-to-date, well-organized,with design rationale.
SU Incrementto ESLOC
50 40 30 20 10
6/20/20086/20/2008 LUMSLUMS 4040
Programmer Unfamiliarity Programmer Unfamiliarity
(UNFM)(UNFM)
UNFM Increment Level of Unfamiliarity
0.0 Completely familiar
0.2 Mostly familiar
0.4 Somewhat familiar
0.6 Considerably familiar
0.8 Mostly unfamiliar
1.0 Completely unfamiliar
�� Only applies to modified softwareOnly applies to modified software
6/20/20086/20/2008 LUMSLUMS 4141
Commercial OffCommercial Off--thethe--Shelf Shelf
(COTS) Software(COTS) Software
�� Possible approach is to treat as reusePossible approach is to treat as reuse
�� Best approach is to use COCOTSBest approach is to use COCOTS
6/20/20086/20/2008 LUMSLUMS 4242
Reuse Parameter Reuse Parameter
GuidelinesGuidelinesReuse Parameters
Code Category DM CM IM AA SU UNFMNew- all original software
not applicable
Adapted- changes to pre-existing software
0% - 100%normally >
0%
0+% - 100%usually >DM and
must be >0%
0% -100+%
IM usuallymoderateand can be> 100%
0% – 8% 0% - 50% 0 - 1
Reused- unchanged existing software 0% 0%
0% -100%
rarely 0%,but couldbe verysmall
0% – 8% not applicable
COTS- off-the-shelf software (oftenrequires new glue code as a wrapperaround the COTS)
0% 0% 0% -100%
0% – 8% not applicable
Auxiliary ChartsAuxiliary Charts
6/20/20086/20/2008 LUMSLUMS 4444
Product FactorsProduct Factors
�� Required Software Reliability (RELY) Required Software Reliability (RELY) –– Measures the extent to which the software Measures the extent to which the software must perform its intended function over a must perform its intended function over a period of time. Ask: what is the effect of a period of time. Ask: what is the effect of a software failuresoftware failure
Very Low Low Nominal High Very High Extra HighRELY slight
inconveniencelow, easilyrecoverable losses
moderate, easilyrecoverable losses
high financial loss risk to human life
6/20/20086/20/2008 LUMSLUMS 4545
Product Factors Product Factors contcont’’dd
�� Data Base Size (DATA)Data Base Size (DATA)–– Captures the effect large data requirements have Captures the effect large data requirements have
on development to generate test data that will be on development to generate test data that will be
used to exercise the program. used to exercise the program.
–– Calculate the data/program size ratio (D/P):Calculate the data/program size ratio (D/P):
)(
)(
SLOCSizeProgram
ByteszeDataBaseSi
P
D =
Very Low Low Nominal High Very High Extra High
DATA DB bytes/ Pgm SLOC < 10 10 ≤ D/P < 100 100 ≤ D/P < 1000 D/P > 1000
6/20/20086/20/2008 LUMSLUMS 4646
Product Factors Product Factors contcont’’dd
�� Product Complexity (CPLX) Product Complexity (CPLX) –– Complexity is divided into five areas:Complexity is divided into five areas:
�� control operations, control operations,
�� computational operations, computational operations,
�� devicedevice--dependent operations, dependent operations,
�� data management operations, and data management operations, and
�� user interface management operations. user interface management operations.
–– Select the area or combination of areas that characterize Select the area or combination of areas that characterize the product or a subthe product or a sub--system of the product.system of the product.
–– See the module complexity table, next several slidesSee the module complexity table, next several slides
6/20/20086/20/2008 LUMSLUMS 4747
Product Factors Product Factors contcont’’dd
�� Module Complexity Ratings vs. Type of Module Module Complexity Ratings vs. Type of Module
–– Use a subjective weighted average of the attributes, weighted Use a subjective weighted average of the attributes, weighted by their relative product importance.by their relative product importance.Very Low Low Nominal High Very High Extra High
ControlOperations
Straightline codewith a few non-nested structuredprogrammingoperators: DOs,CASEs,IFTHENELSEs.Simple modulecomposition viaprocedure calls orsimple scripts.
Straightforwardnesting ofstructuredprogrammingoperators.Mostly simplepredicates.
Mostly simplenesting. Someintermodulecontrol. Decisiontables. Simplecallbacks ormessagepassing,includingmiddleware-supporteddistributedprocessing.
Highly nestedstructuredprogrammingoperators with manycompoundpredicates. Queueand stack control.Homogeneous, dist.processing. Singleprocessor soft real-time ctl.
Reentrant andrecursive coding.Fixed-priorityinterrupt handling.Task synchronization,complex callbacks,heterogeneous dist.processing. Single-processor hard real-time ctl.
Multiple resourcescheduling withdynamically changingpriorities. Microcode-level control.Distributed hard real-time control.
ComputationalOperations
Evaluation ofsimpleexpressions: e.g.,A=B+C*(D-E)
Evaluation ofmoderate-levelexpressions:e.g.,D=SQRT(B**2-4.*A*C)
Use of standardmath andstatisticalroutines. Basicmatrix/vectoroperations.
Basic numericalanalysis: multivariateinterpolation, ordinarydifferential eqns.Basic truncation,roundoff concerns.
Difficult but structurednumerical analysis:near-singular matrixequations, partialdifferential eqns.Simpleparallelization.
Difficult andunstructurednumerical analysis:highly accurateanalysis of noisy,stochastic data.Complexparallelization.
6/20/20086/20/2008 LUMSLUMS 4848
Product Factors Product Factors contcont’’dd
�� Module Complexity Ratings vs. Type of Module Module Complexity Ratings vs. Type of Module
–– Use a subjective weighted average of the attributes, weighted Use a subjective weighted average of the attributes, weighted by their relative product importance.by their relative product importance.
Very Low Low Nominal High Very High Extra High
Device-dependentOperations
Simple read,writestatementswith simpleformats.
No cognizanceneeded of particularprocessor or I/Odevicecharacteristics. I/Odone at GET/PUTlevel.
I/O processingincludes deviceselection, statuschecking and errorprocessing.
Operations at physicalI/O level (physicalstorage addresstranslations; seeks,reads, etc.).Optimized I/O overlap.
Routines for interruptdiagnosis, servicing,masking.Communication linehandling.Performance-intensiveembedded systems.
Device timing-dependent coding,micro-programmedoperations.Performance-critical embeddedsystems.
DataManagementOperations
Simple arraysin mainmemory.Simple COTS-DB queries,updates.
Single file subsettingwith no data structurechanges, no edits, nointermediate files.Moderately complexCOTS-DB queries,updates.
Multi-file input andsingle file output.Simple structuralchanges, simpleedits. ComplexCOTS-DB queries,updates.
Simple triggersactivated by datastream contents.Complex datarestructuring.
Distributed databasecoordination. Complextriggers. Searchoptimization.
Highly coupled,dynamic relationaland objectstructures. Naturallanguage datamanagement.
UserInterfaceManagement
Simple inputforms, reportgenerators.
Use of simple graphicuser interface (GUI)builders.
Simple use ofwidget set.
Widget setdevelopment andextension. Simplevoice I/O, multimedia.
Moderately complex2D/3D, dynamicgraphics, multimedia.
Complexmultimedia, virtualreality.
6/20/20086/20/2008 LUMSLUMS 4949
Product Factors Product Factors contcont’’dd
�� Required Reusability (RUSE)Required Reusability (RUSE)–– Accounts for the additional effort needed to construct componentAccounts for the additional effort needed to construct components intended s intended
for reuse.for reuse.
Very Low Low Nominal High Very High Extra High
RUSE none across project across program across product line across multiple product lines
Very Low Low Nominal High Very High Extra High
DOCU Many life-cycleneeds uncovered
Some life-cycleneeds uncovered
Right-sized to life-cycle needs
Excessive for life-cycle needs
Very excessive forlife-cycle needs
�� Documentation match to lifeDocumentation match to life--cycle needs (DOCU)cycle needs (DOCU)–– What is the suitability of the projectWhat is the suitability of the project’’s documentation to its lifes documentation to its life--cycle needs.cycle needs.
6/20/20086/20/2008 LUMSLUMS 5050
Platform FactorsPlatform Factors
�� Platform Platform –– Refers to the targetRefers to the target--machine complex of hardware machine complex of hardware
and infrastructure software (previously called the and infrastructure software (previously called the
virtual machine).virtual machine).
�� Execution Time Constraint (TIME)Execution Time Constraint (TIME)–– Measures the constraint imposed upon a system in Measures the constraint imposed upon a system in terms of the percentage of available execution terms of the percentage of available execution time expected to be used by the system.time expected to be used by the system.
Very Low Low Nominal High Very High Extra High
TIME ≤ 50% use of available execution time 70% 85% 95%
6/20/20086/20/2008 LUMSLUMS 5151
Platform Factors Platform Factors contcont’’dd
�� Main Storage Constraint (STOR)Main Storage Constraint (STOR)–– Measures the degree of main storage constraint Measures the degree of main storage constraint
imposed on a software system or subsystem.imposed on a software system or subsystem.
�� Platform Volatility (PVOL)Platform Volatility (PVOL)–– Assesses the volatility of the platform (the Assesses the volatility of the platform (the
complex of hardware and software the software complex of hardware and software the software
product calls on to perform its tasks).product calls on to perform its tasks).
Very Low Low Nominal High Very High Extra High
STOR ≤ 50% use of available storage 70% 85% 95%
Very Low Low Nominal High Very High Extra High
PVOL major change every 12 mo.;minor change every 1 mo.
major: 6 mo.;minor: 2 wk.
major: 2 mo.;minor: 1 wk.
major: 2 wk.;minor: 2 days
6/20/20086/20/2008 LUMSLUMS 5252
Personnel FactorsPersonnel Factors
�� Analyst Capability (ACAP)Analyst Capability (ACAP)–– Analysts work on requirements, high level design and detailed Analysts work on requirements, high level design and detailed
design. Consider analysis and design ability, efficiency and design. Consider analysis and design ability, efficiency and thoroughness, and the ability to communicate and cooperate. thoroughness, and the ability to communicate and cooperate.
�� Programmer Capability (PCAP)Programmer Capability (PCAP)–– Evaluate the capability of the programmers as a team rather Evaluate the capability of the programmers as a team rather
than as individuals. Consider ability, efficiency and than as individuals. Consider ability, efficiency and thoroughness, and the ability to communicate and cooperate.thoroughness, and the ability to communicate and cooperate.
Very Low Low Nominal High Very High Extra High
ACAP 15th percentile 35th percentile 55th percentile 75th percentile 90th percentile
Very Low Low Nominal High Very High Extra High
PCAP 15th percentile 35th percentile 55th percentile 75th percentile 90th percentile
6/20/20086/20/2008 LUMSLUMS 5353
Personnel Factors Personnel Factors contcont’’dd
�� Applications Experience (AEXP)Applications Experience (AEXP)–– Assess the project team's equivalent level of experience with Assess the project team's equivalent level of experience with
this type of application. this type of application.
�� Platform Experience (PEXP)Platform Experience (PEXP)–– Assess the project team's equivalent level of experience with Assess the project team's equivalent level of experience with
this platform including the OS, graphical user interface, this platform including the OS, graphical user interface,
database, networking, and distributed middleware.database, networking, and distributed middleware.
Very Low Low Nominal High Very High Extra High
AEXP ≤ 2 months 6 months 1 year 3 years 6 years
Very Low Low Nominal High Very High Extra High
PEXP ≤ 2 months 6 months 1 year 3 years 6 year
6/20/20086/20/2008 LUMSLUMS 5454
Personnel Factors Personnel Factors contcont’’dd
�� Language and Tool Experience (LTEX)Language and Tool Experience (LTEX)–– Measures the level of programming language and software tool Measures the level of programming language and software tool
experience of the project team.experience of the project team.
�� Personnel Continuity (PCON)Personnel Continuity (PCON)–– The scale for PCON is in terms of the project's annual The scale for PCON is in terms of the project's annual
personnel turnover.personnel turnover.
Very Low Low Nominal High Very High Extra High
LTEX ≤ 2 months 6 months 1 year 3 years 6 years
Very Low Low Nominal High Very High Extra High
PCON 48% / year 24% / year 12% / year 6% / year 3% / year
6/20/20086/20/2008 LUMSLUMS 5555
Project FactorsProject Factors
�� Use of Software Tools (TOOL)Use of Software Tools (TOOL)–– Assess the usage of software tools used to develop the Assess the usage of software tools used to develop the
product in terms of their capabilities and maturity.product in terms of their capabilities and maturity.
Very Low Low Nominal High Very High Extra High
edit, code,debug
simple,frontend,backend CASE,little integration
basic lifecycletools, moderatelyintegrated
strong, maturelifecycle tools,moderatelyintegrated
strong, mature,proactive lifecycletools, well integratedwith processes,methods, reuse
6/20/20086/20/2008 LUMSLUMS 5656
Project Factors Project Factors contcont’’dd
�� Multisite Development (SITE)Multisite Development (SITE)–– Assess and average two factors: site collocation and Assess and average two factors: site collocation and
communication support.communication support.
�� Required Development Schedule Required Development Schedule (SCED)(SCED)–– Measure the imposed schedule constraint in terms of the Measure the imposed schedule constraint in terms of the
percentage of schedule stretchpercentage of schedule stretch--out or acceleration with out or acceleration with
respect to a nominal schedule for the project.respect to a nominal schedule for the project.
Very Low Low Nominal High Very High Extra High
SITE:Collocation
International Multi-city andMulti-company
Multi-city orMulti-company
Same city ormetro. area
Same building orcomplex
Fully collocated
SITE:Communications
Some phone,mail
Individual phone,FAX
Narrowbandemail
Widebandelectroniccommunication
Wideband elect.comm, occasionalvideo conf.
Interactivemultimedia
Very Low Low Nominal High Very High Extra High
SCED 75% of nominal 85% 100% 130% 160%
6/20/20086/20/2008 LUMSLUMS 5757
ReferencesReferences
� Raymond J. Madachy, EC-6 –COCOMO II Overview, CS 510 Lecture, 2005.
� Barry W. Boehm et al., Software Cost Estimation with COCOMO II, Prentice Hall PTR, 2000.