37
2007-10-03 CSCI 510 2007 COCOMO Tuto rial 1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye Yang Center for Systems and Software Engineering University of Southern California {AWBrown, YangY}@sunset.usc.edu

2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 1

CS510 2007 “Tutorial” Presentation:Software Cost Estimation Tools –

COCOMO II and COCOTS

A Winsor Brown and Ye Yang

Center for Systems and Software EngineeringUniversity of Southern California

{AWBrown, YangY}@sunset.usc.edu

Page 2: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 2

Helpful Hints

What is COCOMO II.2000.3 vs. COCOMO II.2000• A third code variant of COCOMO II.2000 (in book’s CD)

– Added more function point conversion tables

– “fixed” the Adapted/Reused Code size input

– …

• Based on 2000 USC model calibration of COCOMOcombined Expert Judgement and Data using a Bayesian approach

If you’ve installed COCOMO II.2000.3 correctly• On line Help is available• Scale factor value shows on 2nd open/change• Charts and COPSEMO are available

Page 3: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 3

RUP/ICM Anchor Points Enable Concurrent EngineeringVCR

I RR

ACR

LCO

DCR

LCA

CCD

IOC

OCR

PRR

VCR: Valuation Commitment Review DCR: Development Commitment Review

ACR: Architecting Commitment Review OCR: Operations Commitment Review

Page 4: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 4

COCOMO Black Box Model

COCOMO II

product size estimate

product, process, platform, and personnel attributes

reuse, maintenance, and increment parameters

organizational project data

development, maintenance cost and schedule estimates

cost, schedule distribution by phase and activity(for Elaboration and Construction!)

local recalibration to organizational data

Page 5: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 5

COCOMO Sub-models• Applications Composition involves rapid development or prototyping efforts to

resolve potential high-risk issues such as user interfaces, software/system interaction, performance, or technology maturity. It’s sized with application points (weighted screen elements, reports and 3GL modules).

• The Early Design model involves exploration of alternative software/system architectures and concepts of operation using function points and a course-grained set of 7 cost drivers.

• The Post-Architecture model involves the actual development and maintenance of a software product using source instructions and / or function points for sizing, with modifiers for reuse and software breakage; a set of 17 multiplicative cost drivers; and a set of 5 factors determining the project's scaling exponent.

Page 6: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 6

# of cost drivers

Effort (person-months) = A (Size)B EMii=1

• Where:– A is a constant derived from historical project data

(currently A = 2.94 in COCOMOII.2000)– Size is in KSLOC (thousand source lines of code),

or converted from function points or object points– B is an exponent for the diseconomy of scale dependent on five additive

scale drivers according to b = .91 + .01*SFi,where SFi is a weighting factor for ith scale driver

– EMi is the effort multiplier for the ith cost driver. The geometric product results in an overall effort adjustment factor to the nominal effort.

• Automated translation effects are not included

COCOMO Effort Formulation

Page 7: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 7

More helpful hints

• Edit / Add Module Or Click on• Set Size: Click on

• Select “SLOC” Method

• Enter SLOC

Page 8: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 8

1st Run of COCOMO II (cont.)

Page 9: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 9

Coverage of SDLC’s Processes• Original COCOMO was predicated on the waterfall process

– single-pass, sequential progression of requirements, design, code, test

– Still applicable (see Appendix A of SwCEwCII)!• Modern processes are concurrent, iterative, incremental,

and cyclic– e.g. Rational Unified Process (RUP), the USC Model-Based

Architecting and Software Engineering (MBASE) process • Effort and schedule are distributed among different phases

and activities in MBASE/RUP/ICM per work breakdown structure of chosen process

Page 10: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 10

MBASE Phase Distributions

125118Project Total

100100COCOMO Total

12.512Transition

62.576Construction

37.524Elaboration

12.56Inception

Schedule %Effort %Phase

• see COCOMO II book for complete phase/activity distributions

Page 11: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 11

RUP/ICM Anchor Points Enable Concurrent EngineeringVCR

I RR

ACR

LCO

DCR

LCA

CCD

IOC

OCR

PRR

VCR: Validation Commitment Review DCR: Development Commitment Review

ACR: Architecting Commitment Review OCR: Operations Commitment Review

Page 12: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 12

COPSEMO Distributes Effort & Schedule

Page 13: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 13

More Helpful Hints – 3

Never do an estimate without REVL!

Page 14: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 14

2nd Run COCOMO II

• Set REVL to 15% (a good first guess)

Page 15: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 15

Cost Factors• Significant factors of development cost:

– SIZE! (the most significant factor)

– scale drivers are sources of exponential effort variation

– cost drivers are sources of linear effort variation

• product, platform, personnel and project attributes

• effort multipliers associated with cost driver ratings

– Defined to be as objective as possible

• Each factor is rated between very low and very high per rating guidelines– relevant effort multipliers adjust the cost up or down

Page 16: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 16

Scale Drivers• Precedentedness (PREC)

– Degree to which system is new and past experience applies

• Development Flexibility (FLEX)– Need to conform with specified requirements

• Architecture/Risk Resolution (RESL)– Degree of design thoroughness and risk elimination

• Team Cohesion (TEAM)– Need to synchronize stakeholders and minimize conflict

• Process Maturity (PMAT)– SEI CMM process maturity rating

Page 17: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 17

Scale Factors• Sum scale factors SFi across all of the factors to determine a scale

exponent, B, using B = .91 + .01 SFi

Scale 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

Page 18: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 18

Cost Drivers• Product Factors

– Reliability (RELY)

– Data (DATA)

– Complexity (CPLX)

– Reusability (RUSE)

– Documentation (DOCU)

• Platform Factors– Time constraint (TIME)

– Storage constraint (STOR)

– Platform volatility (PVOL)

• Personnel factors– Analyst capability (ACAP)– Program capability (PCAP)– Applications experience (APEX)– Platform experience (PLEX)– Language and tool experience

(LTEX)– Personnel continuity (PCON)

• Project Factors– Software tools (TOOL)– Multisite development (SITE)– Required schedule (SCED)

Page 19: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 19

Example Cost Driver - Required Software Reliability (RELY)

• Measures the extent to which the software must perform its intended function over a period of time.

• Ask: what is the effect of a software failure?

Page 20: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 20

Many Organizations Provide Generic Guidance• PREC• RESL

See Table 2.42 in SwCEwCII

PMAT and DATA most commonly misunderstood

Page 21: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 21

Significant CSCI577A Effort MultipliersDATA DOCU

Page 22: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 22

Reused and Modified Software

• Effort for adapted software (reused or modified) is not the same as for new software.

• Approach: convert adapted software into equivalent size of new software.

Page 23: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 23

Nonlinear Reuse Effects• The reuse cost function does not go through the origin due to a

cost of about 5% for assessing, selecting, and assimilating the reusable component.

• Small modifications generate disproportionately large costs primarily due the cost of understanding the software to be modified, and the 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]

Page 24: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 24

COCOMO Reuse Model• A nonlinear estimation model to convert adapted

(reused or modified) software into equivalent size of new software:

A A F D M C M I M 0 4 0 3 0 3. ( ) . ( ) . ( )

E S L O CA S L O C A A A A F S U U N F M

A A F

[ ( . ( ) ( ) ) ]

, .1 0 0 2

1 0 00 5

E S L O CA S L O C A A A A F S U U N F M

A A F

[ ( ) ( ) ]

, .1 0 0

0 5

Page 25: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 25

COCOMO Reuse Model (cont’d)• ASLOC - Adapted Source Lines of Code• ESLOC - Equivalent Source Lines of Code• AAF - Adaptation Adjustment Factor• DM - Percent Design Modified. The percentage of the adapted software's

design which is modified in order to adapt it to the new objectives and environment.

• CM - Percent Code Modified. The percentage of the adapted software's code which is modified in order to adapt it to the new objectives and environment.

• IM - Percent of Integration Required for Modified Software. The percentage of effort required to integrate the adapted software into an overall product and to test the resulting product as compared to the normal amount of integration and test effort for software of comparable size.

• AA - Assessment and Assimilation effort needed to determine whether a fully-reused software module is appropriate to the application, and to integrate its description into the overall product description. See table.

• SU - Software Understanding. Effort increment as a percentage. Only used when code is modified (zero when DM=0 and CM=0). See table.

• UNFM - Unfamiliarity. The programmer's relative unfamiliarity with the software which is applied multiplicatively to the software understanding effort increment (0-1).

Page 26: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 26

4th Run COCOMO II

Page 27: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 27

Sizing - Lines of Code• Source Lines of Code (SLOCs) = logical source statements

• Logical source statements = data declarations + executable statements

• Executable statements cause runtime actions

• Declaration statements are non-executable statements that affect an assembler's or compiler's interpretation of other program elements

• CodeCount tool available on CSSE website

Page 28: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 28

Size Estimation

• By analogy with Wide-Band Delphi before LCO

– Ask each team member what they think the size might be

• Apply personal experience,

• Look at completed projects,

• Guess (WAG),

• SWAG based on “modules” known to date

– Collect and share in a meeting: discuss why/how different people made their estimate

– Repeat

– When stable, Size = (H + 4 X Ave. + L)/6

Page 29: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 29

Part II: COCOTS Model and Demo

Page 30: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 30

Relationship between CII and COCOTS

Page 31: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 31

COCOTS

• COCOTS is the acronym for the Constructive COTS integration cost estimation model

• A member of the USC COCOMO II family of cost estimation models

• For estimating the expected initial cost of integrating COTS software into a new software system development

• Three sub-models: – COTS Assessment– COTS Tailoring– COTS Glue code development

Page 32: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 32

COTS Assessment Sub-model

• COTS Assessment: the activity of determining the appropriateness or feasibility of using specific COTS products to fulfill required system functions.

Page 33: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 33

COTS Tailoring Sub-model

• COTS Tailoring: the activity associated with setting or defining shell parameters or configuration options available for a COTS product, but which do not require modification of COTS source code, including defining I/O report formats, screens, etc.

Page 34: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 34

COTS Glue Code Sub-model

• COTS “glue” code/integration refers to software developed in-house and composed of

– 1) code needed to facilitate data or information exchange between the COTS and the system or other COTS;

– 2) code needed to connect the COTS into the system or other COTS but does not necessarily enable data exchange;

– 3) code needed to provide required functionality missing in the COTS AND which depends upon or must interact with the COTS.

Page 35: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 35

COTS Glue Code Sub-model Formula

Page 36: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 36

Total COCOTS Estimation

• Sum of three sub-models’ estimates:– EffortCOT = EffortA + EffortT + EffortGC

• “Grand” total effort for developing a COTS-Based System (CBS):– EffortCBS = EffortCOC + EffortCOT

Page 37: 2007-10-03CSCI 510 2007 COCOMO Tutorial1 CS510 2007 “Tutorial” Presentation: Software Cost Estimation Tools – COCOMO II and COCOTS A Winsor Brown and Ye

2007-10-03 CSCI 510 2007 COCOMO Tutorial 37

Questions and Answers

• Questions from you?

• Question from HHGG: “The great question of Life, The Universe and Everything”.

• Answer: 42! (1010102)