Software Cost Estimation What do you need for

  • Slides: 31
Download presentation
Software Cost Estimation “What do you need for the project? ” TCS 2411 Software

Software Cost Estimation “What do you need for the project? ” TCS 2411 Software Engineering 1

Lecture Objectives z. To describe different methods of estimation for a software project z.

Lecture Objectives z. To describe different methods of estimation for a software project z. To understand the factors that affects the estimation of a software development project TCS 2411 Software Engineering 2

What Do You Estimate? z. Time (schedule) z. Resources z. Cost TCS 2411 Software

What Do You Estimate? z. Time (schedule) z. Resources z. Cost TCS 2411 Software Engineering 3

Three-point Estimation Technique z Estimate 3 values For each function or count for each

Three-point Estimation Technique z Estimate 3 values For each function or count for each information domain value y. Optimistic value (sopt) y. Most likely value (sm) y. Pessimistic value (spess) z Compute the expected value (EV) for the estimation variable (size), S is: TCS 2411 Software Engineering 4

Time Estimates Example TCS 2411 Software Engineering 5

Time Estimates Example TCS 2411 Software Engineering 5

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

Project Schedule Calculation of the project duration and critical path uses the following times: z. Earliest Start Time (EST) y. Earliest possible time an activity can begin without interfering with the completion of preceding activity z. Latest Finish Time (LFT) y. Latest time an activity can be completed without delaying the end of the project TCS 2411 Software Engineering 6

Calculating Earliest Start Times z. Start with the first node, which has time 0

Calculating Earliest Start Times z. Start with the first node, which has time 0 z. If only one arrow leads into a node, EST at that node is EST for previous node + time estimate A 5 EST=0 TCS 2411 Software Engineering B EST=5 2 EST=7 7

Calculating Earliest Start Times (Continued) z. If more than one arrow leads to a

Calculating Earliest Start Times (Continued) z. If more than one arrow leads to a node, the EST of the node is the largest time value of the separate paths EST=5 C 2 EST=7 D 3 EST=3 TCS 2411 Software Engineering 8

Project Duration z. When all the ESTs have been calculated, the EST at the

Project Duration z. When all the ESTs have been calculated, the EST at the last node is the project duration z. The project duration is also the LFT of the last node z. The calculation is then ‘reversed’ to previous nodes for the LFT values TCS 2411 Software Engineering 9

Calculating Latest Finish Times z. Start with the last node, which has LFT =

Calculating Latest Finish Times z. Start with the last node, which has LFT = project duration z. If only one arrow originates from a node, LFT at that node is LFT for next node time estimate E 3 LFT=6 TCS 2411 Software Engineering F LFT=9 1 LFT=10 10

Calculating Latest Finish Times (Continued) z. If more than one arrow originates at a

Calculating Latest Finish Times (Continued) z. If more than one arrow originates at a node, the LST of the node is the smallest time value of the separate paths G 3 LFT=12 LFT=5 H 5 LFT=10 TCS 2411 Software Engineering 11

Activity Times X EST=5 4 LFT=12 z. Available time = LFT - EST y.

Activity Times X EST=5 4 LFT=12 z. Available time = LFT - EST y. Example, Available time for X = 12 - 5 = 7 z. Total float = Available time - time estimate y. Example, Float for X = 7 - 4 = 3 z. This means that activity X has a ‘slack’ of 3 ycan start late, within 3 days/weeks TCS 2411 Software Engineering 12

Critical Path z. All activities with 0 float time form the critical path of

Critical Path z. All activities with 0 float time form the critical path of the project z. Any delay on these activities will directly affect the project duration TCS 2411 Software Engineering 13

Critical Path Example 8 8 2 A 8 00 1 17 17 D 7

Critical Path Example 8 8 2 A 8 00 1 17 17 D 7 4 G C 3 B 6 E 6 23 23 6 H 3 10 3 11 11 TCS 2411 Software Engineering F 7 5 18 20 EST LFT 14

Software Cost Factors z. Programmer Ability z. Product Complexity z. Product Size z. Available

Software Cost Factors z. Programmer Ability z. Product Complexity z. Product Size z. Available Time z. Required Level of Reliability z. Level of Technology TCS 2411 Software Engineering 15

Estimation Options z. Expert Judgment y. Estimation done by panel of experts z. Bottom-Up

Estimation Options z. Expert Judgment y. Estimation done by panel of experts z. Bottom-Up Approach y. Project separated into components y. Estimate components, then combined z. Algorithmic Models y. Use of software metrics, formulas y. Historical models TCS 2411 Software Engineering 16

Expert Judgment z. One or more experts are consulted to provide estimates, given information

Expert Judgment z. One or more experts are consulted to provide estimates, given information on the software project z. Inherently top-down approach z. Common approach is to have a panel of experts, who will agree on estimates by consensus z. May be affected by group dynamics z. Interesting variation: Delphi technique TCS 2411 Software Engineering 17

Delphi Technique z. Developed by Rand Corporation z. Coordinator provide estimator information z. Estimator

Delphi Technique z. Developed by Rand Corporation z. Coordinator provide estimator information z. Estimator provides estimation individually, without discussion with each other z. Coordinator summarises estimations and other responses, distributes for another round of estimation z. Estimation repeated as much as required TCS 2411 Software Engineering 18

Bottom-Up Approach z. Product or requirements broken down into smaller components z. Estimates done

Bottom-Up Approach z. Product or requirements broken down into smaller components z. Estimates done for components, then combined for overall estimate z. Applies to Work Breakdown Structure, or other similar methods of decomposing the project TCS 2411 Software Engineering 19

Bottom-Up Approach (Continued) z. Easier to estimate, more accurate and detailed estimate can be

Bottom-Up Approach (Continued) z. Easier to estimate, more accurate and detailed estimate can be done z. However, the product may be more than the total of the components z. Additional cost may be required to consolidate the components TCS 2411 Software Engineering 20

Algorithmic Models z. Costs are analyzed using mathematical formulae linking costs with metrics z.

Algorithmic Models z. Costs are analyzed using mathematical formulae linking costs with metrics z. Common methods use k. LOC z. Example: 3 -point estimation z. Detailed studies of software project provides empirical estimation models z. Example: COCOMO TCS 2411 Software Engineering 21

Constructive Cost Model (COCOMO) z. Introduced by Barry Boehm z. Widely used for effort

Constructive Cost Model (COCOMO) z. Introduced by Barry Boehm z. Widely used for effort and cost estimation z 3 models: y. Basic COCOMO y. Intermediate COCOMO y. Advanced COCOMO z. Select a model for estimation, identify ‘mode’ and estimate k. LOC, and effort (and cost) is calculated from the model TCS 2411 Software Engineering 22

Project Categories TCS 2411 Software Engineering 23

Project Categories TCS 2411 Software Engineering 23

Basic COCOMO z. Computes software development effort (and cost) as function of program size

Basic COCOMO z. Computes software development effort (and cost) as function of program size expressed in estimated lines of code z. Model: TCS 2411 Software Engineering 24

Basic COCOMO Equations where z. E is effort in person-months z. D is development

Basic COCOMO Equations where z. E is effort in person-months z. D is development time in months zk. LOC is estimated number of lines of code TCS 2411 Software Engineering 25

Intermediate COCOMO zcomputes software development effort as a function of program size and a

Intermediate COCOMO zcomputes 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 z. 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) TCS 2411 Software Engineering 26

Cost Driver Attributes z. Product attributes y. Required reliability y. Database size y. Product

Cost Driver Attributes z. Product attributes y. Required reliability y. Database size y. Product complexity z. Computer attributes y. Execution time constraint y. Main storage constraint y. Virtual machine volatility y. Computer turnaround time TCS 2411 Software Engineering 27

Cost Driver Attributes (Continued) z. Personnel attributes y. Analyst capability, Programmer capability y. Applications

Cost Driver Attributes (Continued) z. Personnel attributes y. Analyst capability, Programmer capability y. Applications experience y. Virtual machine experience y. Programming language experience z. Project attributes y. Use of modern programming practices y. Use of software tools y. Required development schedule TCS 2411 Software Engineering 28

Intermediate COCOMO Equation zwhere z. E is effort in person-months, zk. LOC is estimated

Intermediate COCOMO Equation zwhere z. E is effort in person-months, zk. LOC is estimated number of lines of code TCS 2411 Software Engineering 29

Advanced COCOMO z. Incorporates all characteristics of intermediate COCOMOwith an assessment of the cost

Advanced COCOMO z. Incorporates all characteristics of intermediate COCOMOwith an assessment of the cost driver’s impact on each step of software engineering process TCS 2411 Software Engineering 30

Estimation Issues z. Historical Data z. Accuracy z. Estimation Technique z. Automation z. Improving

Estimation Issues z. Historical Data z. Accuracy z. Estimation Technique z. Automation z. Improving the Estimate TCS 2411 Software Engineering 31