Ch.29 Software Cost Estimation

  • Uploaded by: Shahid
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Ch.29 Software Cost Estimation as PDF for free.

More details

  • Words: 2,810
  • Pages: 45
Software cost estimation ◆

Predicting the resources required for a software development process

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 1

Objectives ◆ ◆

◆ ◆

To introduce cost and schedule estimation. To discuss the problems of productivity estimation. To describe several cost estimation techniques. To discuss the utility of algorithmic cost modelling and its applicability in the software process.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 2

Topics covered ◆ ◆ ◆ ◆

Productivity Estimation techniques Algorithmic cost modelling Project duration and staffing

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 3

Cost estimation objectives ◆ ◆ ◆





To establish a budget for a software project. To provide a means of controlling project costs. To monitor progress against that budget by comparing planned with estimated costs. To establish a cost database for future estimation. Cost estimation and planning/scheduling are closely related activities.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 4

Software cost components ◆ ◆ ◆

Hardware and software costs. Travel and training costs. Effort costs (the dominant factor in most projects) • • • • •

salaries of engineers involved in the project costs of building, heating, lighting costs of networking and communications costs of shared facilities (e.g., library, staff restaurant) costs of pensions, health insurance, etc.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 5

Costing and pricing ◆



Estimates are made to discover the cost, to the developer, of producing a software system. There is not a simple relationship between the development cost and the price charged to the customer.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 6

Programmer productivity ◆



A measure of the rate at which individual engineers involved in software development produce software and associated documentation. Essentially, we want to measure useful functionality produced per time unit.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 7

Productivity metrics ◆

Size related measures based on some output from the software process. This may be: • • •

lines of delivered source code object code instructions function-related measures based on an estimate of the functionality of the delivered software: » Function-points are the best known of this type of measure

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 8

Metric problems ◆ ◆



Estimating the size of the measure. Estimating the total number of programmer months which have elapsed. Estimating contractor productivity (e.g., documentation team) and incorporating this estimate in overall estimate.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 9

Lines of code ◆ ◆



What is a line of code? What programs should be counted as part of the system? Assumes linear relationship between system size and volume of documentation.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 10

Cross-language comparisons ◆



The lower level the language, the more productive the programmer. The more verbose the programmer, the higher the productivity.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 11

High and low level languages Low-level language Analysis

Design

C oding

Validation

High-le vel language Analysis

Design

Coding

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Validation

Software Engineering, 5th edition. Chapter 29

Slide 12

System development times Analysis De sig n C oding Te sting Doc ume ntation Asse mbly c o de 3 we e ks 5 we e ks 8 we e ks 10 we e ks 2 we e ks Hig h-le ve l la ng ua g e 3 we e ks 5 we e ks 8 we e ks 6 we e ks 2 we e ks Siz e Effort Prod uc tivity Asse mbly c o de 50 0 0 line s 28 we e ks 714 line s/mo nth Hig h-le ve l la ng ua g e 150 0 line s 20 we e ks 30 0 line s/mo nth

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 13

Function points ◆

Based on a combination of program characteristics: • • • •

◆ ◆

external inputs and outputs user interactions external interfaces files used by the system

A weight is associated with each of these. The function point count is computed by multiplying each raw count by the weight and summing all values.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 14

Function points ◆



◆ ◆

Function point count modified by complexity of the project. FPs can be used to estimate LOC depending on the average number of LOC per FP for a given language. FPs are very subjective - depend on the estimator. They cannot be counted automatically.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 15

Productivity estimates ◆

Real-time embedded systems •



Systems programs •



40-160 LOC/P-month 150-400 LOC/P-month

Commercial applications •

200-800 LOC/P-month

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 16

Factors affecting productivity Fac tor Applic a tio n do ma in e xpe rie nc e

De sc rip tion Kno wle dg e o f the a pplic a tio n do ma in is e ssefontia r l e ffe c tive so ftwa re de ve lo pme nt. Eng ine e arslre who a dy unde rsta nd a do ma in a relike ly to be the mo st pro duc tive . Pro c e ss qua lity The de ve lo pme nt pro c e ss use d c a n ahasig venific a nt e ffe c t o n pro duc tivity. This is c o ve re d in Cha pte r 31 Pro je c t siz e The la rg e r a pro je c t, the mo re time re quireted afomr c o mmunic a tio ns.Le ss time is a va ila ble fo r de ve lo pme nt so individua l pro duc tivity is re duc e d. Te c hno lo g y suppo rt G o o d suppo rt te c hno lo g y suc h a s CAS E to o ls, suppo rtivec o nfig ura tio n ma na g e me nt syste ms, e tc . c a n impro ve pro duc tivity. Wo rking e nviro nme nt As disc usse d in Cha pte r 28, a quie t wo rking e nviro nme nt with priva te wo rk a recaos ntribute s to impro ve d pro duc tivity. ©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 17

Quality and productivity ◆





All metrics based on volume/unit time are flawed because they do not take quality into account. Productivity may generally be increased at the cost of quality. It is not clear how productivity/quality metrics are related.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 18

Estimation techniques ◆ ◆ ◆ ◆ ◆

Expert judgment Estimation by analogy Parkinson’s Law Pricing to win Algorithmic cost modelling

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 19

Expert judgment ◆







One or more experts in both software development and the application domain use their experience to predict software costs. Process iterates until some consensus is reached. Advantages: Relatively cheap estimation method. Can be accurate if experts have direct experience of similar systems. Disadvantages: Very inaccurate if there are no experts!

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 20

Estimation by analogy ◆

◆ ◆

The cost of a project is computed by comparing the project to a similar project in the same application domain. Advantages: Accurate if project data available. Disadvantages: Impossible if no comparable project has been tackled. Needs systematically maintained cost database.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 21

Parkinson’s Law ◆

◆ ◆

The project costs whatever resources are available. Advantages: No overspending. Disadvantages: System is usually unfinished.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 22

Pricing to win ◆

◆ ◆

The project costs whatever the customer has to spend on it. Advantages: You get the contract. Disadvantages: The probability that the customer gets the system he wants is small.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 23

Estimation methods ◆ ◆ ◆



Each method has strengths and weaknesses. Estimation should be based on several methods. If these do not return approximately the same result, there is insufficient information available. Pricing to win is sometimes the only applicable method.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 24

Algorithmic cost modelling ◆







Cost is estimated as a mathematical function of product, project and process attributes whose values are estimated by project managers. The function is derived from a study of historical costing data. Most commonly used product attribute for cost estimation is LOC (code size). Most models are basically similar but with different attribute values.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 25

The COCOMO model ◆ ◆



Developed at TRW, a US defense contractor. Based on a cost database of more than 60 different projects. Exists in three stages: • • •

Basic - Gives a “ball-park” estimate based on product attributes. Intermediate - modifies basic estimate using project and process attributes. Advanced - Estimates project phases and parts separately.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 26

Project classes ◆





Organic mode: Small teams, familiar environment, well-understood applications, no difficult non-functional requirements (EASY). Semi-detached mode: Project team may have experience mixture, system may have more significant non-functional constraints, organization may have less familiarity with application (HARDER). Embedded Hardware/software systems mode: Tight constraints, unusual for team to have deep application experience (HARD).

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 27

Basic COCOMO Formula



Organic mode: PM = 2.4 (KDSI) 1.05 Semi-detached mode: PM = 3 (KDSI) 1.12 Embedded mode: PM = 3.6 (KDSI) 1.2



Note: KDSI is the number of thousands of delivered source instructions.

◆ ◆

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 28

COCOMO examples ◆

Organic mode project, 32KLOC • • •



PM = 2.4 (32) 1.05 = 91 person months TDEV = 2.5 (91) 0.38 = 14 months N = 91/15 = 6.5 people

Embedded mode project, 128KLOC • • •

PM = 3.6 (128)1.2 = 1216 person-months TDEV = 2.5 (1216)0.32 = 24 months N = 1216/24 = 51

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 29

COCOMO assumptions ◆

Implicit productivity estimate • •





Organic mode = 16 LOC/day Embedded mode = 4 LOC/day

Time required is a function of total effort NOT team size. Not clear how to adapt model to personnel availability.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 30

Intermediate COCOMO ◆ ◆



Takes basic COCOMO as starting point. Identifies personnel, product, computer and project attributes which affect cost. Multiplies basic cost by attribute multipliers which may increase or decrease costs.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 31

Personnel attributes ◆

Personnel attributes • • • •



Analyst capability Programmer capability Programming language experience Application experience

Product attributes • • •

Reliability requirement Database size Product complexity

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 32

Computer attributes ◆

Computer attributes • • •



Execution time constraints Storage constraints Computer turnaround time

Project attributes • • •

Modern programming practices Software tools Required development schedule

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 33

Attribute choice ◆





These are attributes which were found to be significant in one organization with a limited size of project history database. Other attributes may be more significant for other projects. Each organization must identify its own attributes and associated multiplier values.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 34

Model tuning ◆



All numbers in cost model are organization specific. The parameters of the model must be modified to adapt it to local needs. A statistically significant database of detailed cost information is necessary.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 35

Example ◆







Embedded software system on microcomputer hardware. Basic COCOMO predicts a 45 person-month effort requirement Attributes = RELY (1.15), STOR (1.21), TIME (1.10), TOOL (1.10) Intermediate COCOMO predicts •



45*1.15*1.21.1.10*1.10 = 76 person-months.

Total cost = 76*$7000 = $532,000

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 36

Project planning ◆





Algorithmic cost models provide a basis for project planning as they allow alternative strategies to be compared. Alternative 1: Use more powerful hardware to reduce TIME and STOR attribute multipliers. Alternative 2: Invest in support environment.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 37

Management options A. Use existing hardware, development system and development team

B. Processor and memory upgrade

C. Memory upgrade only

Har dware cost increase Experience decrease

Hardware cost increase

E. New de velopment system

F. Staff with hardware experience

D. More experienced staff

Hardware cost increase Experience decr ease ©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 38

Hardware investment ◆

Processor capacity and store doubled •

◆ ◆

Extra investment of $30,000 required Fewer tools available •

◆ ◆

TIME and STOR multipliers = 1

TOOL = 1.15

Total cost = 45*1.24*1.15 * $7000 = $ 449,190 Cost saving = $83, 000

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 39

Environment investment ◆ ◆





In addition to hardware costs. Reduces turnaround, tool multipliers. Increases experience multiplier. C = 45 * 0.91 * 0.87 * 1.1 * 1.15 *7000 = $315,472 Saving from investment = $133,718

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 40

Development time estimates ◆ ◆ ◆ ◆

Organic: TDEV = 2.5 (PM) 0.38 Semi-detached: TDEV = 2.5 (PM) 0.35 Embedded mode: TDEV = 2.5 (PM) 0.32 Personnel requirement: N = PM/TDEV

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 41

Staffing requirements ◆







Staff required can’t be computed by diving the development time by the required schedule. The number of people working on a project varies depending on the phase of the project. The more people who work on the project, the more total effort is usually required. Very rapid build-up of people often correlates with schedule slippage.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 42

Rayleigh manpower curves

Time ©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 43

Key points ◆





Estimate the project cost to the supplier then decide on the price to the customer. Factors affecting productivity include individual aptitude, domain experience, the development project, the project size, tool support and the working environment. Prepare cost estimates using different techniques. Estimates should be comparable.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 44

Key points ◆





Algorithmic cost estimation is difficult because of the need to estimate attributes of the finished product. Algorithmic cost models are a useful aid to project managers as a means of comparing different development options. The time required to complete a project is not simply proportional to the number of people working on the project.

©Ian Sommerville 1995 Modified by Spiros Mancoridis 1998

Software Engineering, 5th edition. Chapter 29

Slide 45

Related Documents

Cost Estimation
May 2020 7
Ch29
November 2019 11
Ch29
November 2019 10

More Documents from ""