Top Banner
3. Project Estimation Kasun Ranga Wijeweera ([email protected])
36

Project Estimation

Dec 07, 2014

Download

Engineering

Project Estimation in Software Engineering
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Project Estimation

3. Project Estimation

Kasun Ranga Wijeweera

([email protected])

Page 2: Project Estimation

Why We Need Estimation?

• Large software systems usually take 200-300% cost overruns and a 100% schedule slip

• 15% of large projects fail without delivering anything

• Failures occur basically due to poor management and inaccurate estimations of development cost and development schedule

• Developers have to pay the price in schedule slips

Page 3: Project Estimation

Estimation Problems

• Software cost prediction• Software schedule prediction• Software risk control• Progress tracking• Project management

Page 4: Project Estimation

Software Cost

• Hardware and software• Travel and training• Effort: (dominant factor)– Salaries of engineers– Social and insurance

• Other– Building, heating, lighting– Networking and communications– Shared facilities (E.g. library, restaurant)

Page 5: Project Estimation

Cost and Price

• The relationship between the software development cost and charged price from the customer is not simple

• Price is influenced by– Organization– Economy– Politics– Business considerations

Page 6: Project Estimation

Pricing Factors

• Market opportunity– Accepting low profit on one project may give the

opportunity of more profit later– Gaining experience–Wish of moving into a new segment in market

• Cost estimate uncertainty– Unsure cost estimate can lead expecting higher

than normal profit

Page 7: Project Estimation

Pricing Factors…

• Contractual terms– Customer allows developers to retain the

ownership of the source code and reuse it in other projects

• Requirements volatility– Requirements are likely to change– Price can be lowered to win the contract– Higher prices can be charged later for changing

requirements

Page 8: Project Estimation

Pricing Factors…

• Financial health– Developers may be in financial difficulty– Price can be lowered to win the contract– Better to make smaller profit than normal profit

than to go out of business– Break even may also be a solution

Page 9: Project Estimation

Estimation Models

• Expert judgment• Analogy• Parkinson’s law• Price to win

Page 10: Project Estimation

Expert Judgment

• Experts in both software development and application domain use their experience

• Advantages– Relatively cheap– Accurate if they have knowledge in similar

systems

• Disadvantages– If there are no experts!

Page 11: Project Estimation

Analogy

• The project is compared to a similar project in the same application domain

• Advantages– Accurate if project data is available and

people/tools are the same

• Disadvantages– Impossible without a similar project available– Systematically maintained cost database is

necessary

Page 12: Project Estimation

Parkinson’s Law

• Whatever the resources available is the cost of the project

• Advantages– No need to overspend

• Disadvantages– System is usually unfinished

Page 13: Project Estimation

Cost Pricing to Win

• Whatever the customer is able to spend is the cost of the project

• Advantages– Can get the contract

• Disadvantages– Customer satisfaction of the product is less– Cost does not reflect the work required

Page 14: Project Estimation

Algorithmic Cost Modeling

• A mathematical function is used to estimate the cost– Inputs: Project, Process, Product– Decided by project managers

• Historical data are studied to derive the function

• Commonly used product attribute is LOC (code size)

Page 15: Project Estimation

Software Productivity

• The rate at which individual software engineers involve in development process is known as software productivity

• Although quality assurance is a factor in productivity assessment, the productivity is not quality oriented

• The useful functionality produced per time unit should be measured

Page 16: Project Estimation

Productivity Measures

• Size related measures:– Lines of delivered source code– Object code instructions– Etc

• Function related measures:– Functionality of the delivered software– E.g. Function points

Page 17: Project Estimation

Lines of Code

• What programs should be considered as part of the system?

• Assumption of the model:– The relationship between system size and volume

of documentation is linear

• Key thing to remember:– Uncertainty is more important than the initial line– Seek justifiable bounds

Page 18: Project Estimation

Productivity Comparison

• Low level language verses high level language• Verbose code verses compact code

Page 19: Project Estimation

Function Points

• Program characteristics are considered– External inputs and outputs– User interactions– External interfaces– Files used by the system

• Corresponding weights are assigned to each characteristic

Page 20: Project Estimation

FPs and LOC

• FPs can be used to estimate LOC– LOC = AVC * (Number of FPs)– AVC is a factor which depends on the

programming language• Assembly language: AVC = 200 to 300• 4 GL language: AVC = 2 to 40

• FPs are subjective and dependent on the estimator– FP automation is impossible

Page 21: Project Estimation

Productivity Estimates

• Real time embedded systems– 40 to 60 LOC per month

• Systems programs– 150 to 400 LOC per month

• Commercial applications– 200 to 900 LOC per month

Page 22: Project Estimation

Productivity Factors

• Application domain experience• Process quality• Product size• Technology support• Working environment

Page 23: Project Estimation

Changing Technologies

• Previous estimating experience does not carry over to new systems due to changes in technology – Use of web services– Use of CASE tools and program generators– Development for and with reuse– Using scripting languages

Page 24: Project Estimation

COCOMO

• Constructive Cost Model (COCOMO)• Estimates are derived as functions of variables• Data of past projects must be available• First published by Dr. Barry Boehm in 1981• Derived through statistical regression of data

from 63 past projects

Page 25: Project Estimation

Example

Size 2000 SLOC

8000 SLOC

32000 SLOC

128000 SLOC

MM 5 21 91 392

Schedule Months

5 8 14 24

Staff 1.1 2.7 6.5 16

SLOC/ MM

400 376 352 327

Page 26: Project Estimation

Basic Effort Equation

• (Effort) = A * (Size) ^ (Exponent) • (Effort) = (EAF) * A * (Size) ^ (Exponent)• Estimates the man-months (MM) of effort for

software development project– 1 MM = 152 hours of development

• Size is the source lines of code (SLOC)

Page 27: Project Estimation

Modes and Models of COCOMO

• Three modes– Organic mode– Semidetached mode– Embedded mode

• Three models– Basic model– Intermediate model– Detailed model

Page 28: Project Estimation

Modes of COCOMO

• Organic mode– Similar to an earlier project– Familiar and stable environment– E.g. Accounting system

• Semidetached mode– Between Organic and Embedded modes

• Embedded mode– New project involving new inventions– E.g. Real-time systems

Page 29: Project Estimation

Models of COCOMO

• Basic model– Roughly estimates project cost, performance and

schedule

• Intermediate model– EAF (Effort Adjustment Factor) is used from 15

cost drivers

• Detailed model– Different Effort Multipliers are used for each phase

of project

Page 30: Project Estimation

Effort Equation : Basic

• (Effort) = A * (Size) ^ (Exponent)• A is a constant which depends on the mode of

development– Organic: 2.4, Semidetached: 3.0, Embedded: 3.6

• (Exponent) is also a constant which depends on the mode of development– Organic: 1.05, Semidetached: 1.12, Embedded:

1.20

• Size should be in KSLOC (1000 SLOC)

Page 31: Project Estimation

Schedule Equation : Basic

• Minimum time to develop (MTDEV)• (MTDEV) = 2.5 * (Effort) ^ (Exponent)• Exponent is a constant which depends on the

mode– Organic: 0.38, Semidetached: 0.35, Embedded:

0.32

• 2.5 is constant for all modes• MTDEV is independent from the number of

people assigned

Page 32: Project Estimation

Effort Equation : Intermediate

• (Effort) = (EAF) * A * (Size) ^ (Exponent)• A is a constant which depends on the mode of

development– Organic: 3.2, Semidetached: 3.0, Embedded: 2.8

• (Exponent) is also a constant which depends on the mode of development– Organic: 1.05, Semidetached: 1.12, Embedded:

1.20

• Size should be in KSLOC (1000 SLOC)

Page 33: Project Estimation

EAF (Effort Adjustment Factor)

• EAF = Product of effort multipliers

Page 34: Project Estimation

Schedule Equation : Intermediate

• Minimum time to develop (MTDEV)• (MTDEV) = 2.5 * (Effort) ^ (Exponent)• Exponent is a constant which depends on the

mode– Organic: 0.38, Semidetached: 0.35, Embedded:

0.32

• 2.5 is constant for all modes• MTDEV is independent from the number of

people assigned

Page 35: Project Estimation

Tool Demonstration

http://sunset.usc.edu/research/COCOMOII/expert_cocomo/expert_cocomo2000.html

Page 36: Project Estimation

Thank you!