tcs2411 software engineering1 software cost estimation “what do you need for the project?”

32
TCS2411 Software Engineering 1 Software Cost Estimation “What do you need for the project?”

Upload: melinda-perry

Post on 17-Dec-2015

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 1

Software Cost Estimation

“What do you need for the project?”

Page 2: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 2

Lecture Objectives

To describe different methods of estimation for a software project

To understand the factors that affects the estimation of a software development project

Page 3: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 3

What Do You Estimate?

Time (schedule)ResourcesCost

Page 4: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 4

Three-point Estimation Technique

Estimate 3 values For each function or count for each information domain value Optimistic value (sopt) Most likely value (sm) Pessimistic value (spess)

Compute the expected value (EV) for the estimation variable (size), S is:

6

)4( pessmopt sssEV

Page 5: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 5

Time Estimates Example

Activity ImmediatePredecessor

Optimistic MostLikely

Pessimistic Duration(days)

A - 6 7 14 8B - 8 10 12 10C A 2 3 4 3D A 6 7 8 7E B,C 4 6 8 6F B,C 5 7 9 7G D,E 4 6 8 6H F 3 3 3 3

Page 6: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 6

Project Schedule

Calculation of the project duration and critical path uses the following times:

Earliest Start Time (EST) Earliest possible time an activity can

begin without interfering with the completion of preceding activity

Latest Finish Time (LFT) Latest time an activity can be completed

without delaying the end of the project

Page 7: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 7

Calculating Earliest Start Times

Start with the first node, which has time 0If only one arrow leads into a node, EST

at that node is EST for previous node + time estimate

A B

EST=0 EST=5 EST=75 2

Page 8: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 8

Calculating Earliest Start Times (Continued)

If more than one arrow leads to a node, the EST of the node is the largest time value of the separate paths

C

D

EST=3

EST=7

EST=5

2

3

Page 9: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 9

Project Duration

When all the ESTs have been calculated, the EST at the last node is the project duration

The project duration is also the LFT of the last node

The calculation is then ‘reversed’ to previous nodes for the LFT values

Page 10: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 10

Calculating Latest Finish Times

Start with the last node, which has LFT = project duration

If only one arrow originates from a node, LFT at that node is LFT for next node - time estimate

E F

LFT=6 LFT=9 LFT=103 1

Page 11: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 11

Calculating Latest Finish Times (Continued)

If more than one arrow originates at a node, the LST of the node is the smallest time value of the separate paths

G

H

LFT=12

LFT=5

LFT=10

5

3

Page 12: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 12

Activity Times

Available time = LFT - EST Example, Available time for X = 12 - 5 = 7

Total float = Available time - time estimate Example, Float for X = 7 - 4 = 3

This means that activity X has a ‘slack’ of 3 can start late, within 3 days/weeks

X

LFT=12EST=54

Page 13: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 13

Critical Path

All activities with 0 float time form the critical path of the project

Any delay on these activities will directly affect the project duration

Page 14: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 14

Critical Path Example

2

1

GA

3

4

3 5

6

F

E

D

C

BH

7

8

10

7

3

6

6

EST LFT

0 0

8 8

11 11

17 17

18 20

23 23

Page 15: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 15

Software Cost Factors

Programmer AbilityProduct ComplexityProduct SizeAvailable TimeRequired Level of ReliabilityLevel of Technology

Page 16: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 16

Estimation Options

Expert Judgment Estimation done by panel of experts

Bottom-Up Approach Project separated into components Estimate components, then combined

Algorithmic Models Use of software metrics, formulas Historical models

Page 17: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 17

Expert JudgmentOne or more experts are consulted to

provide estimates, given information on the software project

Inherently top-down approachCommon approach is to have a panel

of experts, who will agree on estimates by consensus

May be affected by group dynamicsInteresting variation: Delphi technique

Page 18: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 18

Delphi Technique

Developed by Rand CorporationCoordinator provide estimator informationEstimator provides estimation individually,

without discussion with each otherCoordinator summarises estimations and

other responses, distributes for another round of estimation

Estimation repeated as much as required

Page 19: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 19

Bottom-Up Approach

Product or requirements broken down into smaller components

Estimates done for components, then combined for overall estimate

Applies to Work Breakdown Structure, or other similar methods of decomposing the project

Page 20: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 20

Bottom-Up Approach (Continued)

Easier to estimate, more accurate and detailed estimate can be done

However, the product may be more than the total of the components

Additional cost may be required to consolidate the components

Page 21: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 21

Algorithmic Models

Costs are analyzed using mathematical formulae linking costs with metrics

Common methods use kLOCExample: 3-point estimationDetailed studies of software project

provides empirical estimation modelsExample: COCOMO

Page 22: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 22

Constructive Cost Model (COCOMO)

Introduced by Barry BoehmWidely used for effort and cost

estimation3 models:

Basic COCOMO Intermediate COCOMO Advanced COCOMO

Select a model for estimation, identify ‘mode’ and estimate kLOC, and effort (and cost) is calculated from the model

Page 23: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 23

Project Categories

Category Size Innovation Constraints TeamOrganic mode Small Little Not tight GoodSemi-detachedmode

Large Greater Tight Mixed

Embeddedmode

Medium Medium Very tight -

Page 24: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 24

Basic COCOMO

Computes software development effort (and cost) as function of program size expressed in estimated lines of code

Model:

Category ab bb cb db

Organic 2.4 1.05 2.5 0.38Semi-detached 3.0 1.12 2.5 0.35Embedded 3.6 1.20 2.5 0.32

Page 25: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 25

Basic COCOMO Equations

whereE is effort in person-monthsD is development time in monthskLOC is estimated number of lines of

code

b

b

db

bb

EcD

kLOCaE

Page 26: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 26

Intermediate COCOMO

computes software development effort as a function of program size and a set of “cost drivers” that include subjective assessments of product, hardware, personnel, and project attributes

Give rating to 15 attributes, from “very low” to “extra high”, find effort multipllier (from table) and product of all effort multipliers gives an effort adjustment factor (EAF)

Page 27: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 27

Cost Driver Attributes

Product attributes Required reliability Database size Product complexity

Computer attributes Execution time constraint Main storage constraint Virtual machine volatility Computer turnaround time

Page 28: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 28

Cost Driver Attributes (Continued)

Personnel attributes Analyst capability, Programmer capability Applications experience Virtual machine experience Programming language experience

Project attributes Use of modern programming practices Use of software tools Required development schedule

Page 29: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 29

Intermediate COCOMO Equation

whereE is effort in person-months,kLOC is estimated number of lines of code

Category ai bi

Organic 3.2 1.05Semi-detached 3.0 1.12Embedded 2.8 1.20

EAFkLOCaE ibi

Page 30: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 30

Advanced COCOMO

Incorporates all characteristics of intermediate COCOMOwith an assessment of the cost driver’s impact on each step of software engineering process

Page 31: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 31

Estimation Issues

Historical DataAccuracyEstimation TechniqueAutomationImproving the Estimate

Page 32: TCS2411 Software Engineering1 Software Cost Estimation “What do you need for the project?”

TCS2411 Software Engineering 32

References

“Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001

“Software Engineering” by Ian Sommerville, Addison-Wesley, 2001