+ All Categories
Home > Documents > IS 556 Project Management

IS 556 Project Management

Date post: 01-Feb-2016
Category:
Upload: awen
View: 29 times
Download: 0 times
Share this document with a friend
Description:
IS 556 Project Management. Week 5 - Project Estimating Readings: On Time Within Budget Ch.12 Case: Vandelay Industries. David Lash. Last Week Objectives. Project Plan Work Breakdown Structure Pert Chart Gannt Chart Dealing with Human Resources. Objectives - Estimation. - PowerPoint PPT Presentation
Popular Tags:
33
IS 556 Fall 2003 1 IS 556 Project Management Week 5 - Project Estimating Readings: On Time Within Budget Ch.12 Case: Vandelay Industries David Lash
Transcript
Page 1: IS 556 Project Management

IS 556 Fall 2003 1

IS 556 Project Management

Week 5 - Project EstimatingReadings: On Time Within Budget Ch.12

Case: Vandelay Industries

David Lash

Page 2: IS 556 Project Management

2David LashCS 556 - Winter

Project PlanWork Breakdown StructurePert ChartGannt ChartDealing with Human Resources

Last Week Objectives

Page 3: IS 556 Project Management

3David LashCS 556 - Winter

Stepwise EstimationPrototyping – Engineering orientationConstructive Cost ModelsEstimate project in 5 levels

1. Level of Personnel2. Level of complexity3. Project size4. Development Environment5. Reliability level

Range of Estimates (normal distrbution)Hardware estimates - CPU, Memory, disk, resp

time

Objectives - Estimation

Page 4: IS 556 Project Management

4David LashCS 556 - Winter

Some things needing estimationWe estimate things we don’t know for sure: Project Development Cost

Estimate in dollarsDevelopment Schedule : timeDevelopment Team

Number of people Type of people

Amount of Software LOC Kilobytes Better measures

Hardware Resources Time needed in test Lab CPU Usage Disk, memory

Page 5: IS 556 Project Management

5David LashCS 556 - Winter

Estimation Is Inherently Hard

Critical to success of schedule but hard to do:

R&D projects may be solving “new” problemNew technology may use new, “unknown” productivity enhancements

What is the productivity of each developer? (What is an average worker?)

If 1 portion of project slips, coordination of resources may throw schedule off (e.g., equipment shows up and not ready for it.)

Page 6: IS 556 Project Management

6David LashCS 556 - Winter

Estimating Techniques

Experience: What worked before Works if we keep data

Metrics and measures for successCOCOMO: COnstructive COst MOdel

Estimation model of the new era Continuous model improvement Quantitative Software life cycle costs

Page 7: IS 556 Project Management

7David LashCS 556 - Winter

Stepwise Estimation: 4 Categories

Often well evaluated and tested. E.g., open source modules, math library.

Applications with lots of experience.Area of specialty (e.g., Internet Ap or DB module). Confident can repeat past success. Risk of miscalculation.

Components similar to others. (e.g., develp cellular billing w/ experence in telephone billing.) Can you identify whats new and familiar w/i component? Evolutionary steps.

No significant experience. No reliable basis for estimation.

•Decompose Problem into small units (modules) and Classify them

Page 8: IS 556 Project Management

8David LashCS 556 - Winter

Decompose and Classify

Page 9: IS 556 Project Management

9David LashCS 556 - Winter

Development Estimating Methods Prototyping – Engineering orientation

Reduced functionality May be able to Refine and reuse prototype The better the prototype the most it costs to develop

You typically prototype to “learn” something. It might be requirements, or how to implement something or to estimateoverall complexity of the module.

Usefulness of prototype (to reuse it) often depends upon reason it was built. If implementing a portion of system to get better estimate might very well be useful later. If learning how to work with hardware…

Page 10: IS 556 Project Management

10David LashCS 556 - Winter

Development Estimating Methods Statistical – Scientific orientation

The idea is to categorize modules, build a % of them and extrapolate

Some steps1. Identify all new development software components. 2. Initial design of each component: ID software modules that implement them3. Divide the modules into similar categories, according to:

complexity (degree of difficulty) function (such as communications, data base, human interface, etc.) type (screen, operating system, library utility, service task, etc.)

4. From each category, select one module that is representative of the others. 5. Implement the selected modules. 6. Based on this experience estimate the resources required for each category. 7. Combine the estimates for each category

The more “samples” the more estimation accuracy but more samples increases costs of estimation!

Page 11: IS 556 Project Management

11David LashCS 556 - Winter

Constructive Cost Models Any development estimate is difficult

Skill - Are all programmers skill equal? (Consider small case at chapter start)

Complexity - How determine complexity of task? Size - Estimating the size by LOC, number of objects?, type of work? Reliability – Highly reliable software much more difficult Environment – Lots of process, meetings overhead?

Using Estimation Models Most basic is to gather relevant data.

Compare estimate of task and date to actual completion There are several different estimation models

CoCoMO is the oldest

Page 12: IS 556 Project Management

12David LashCS 556 - Winter

Constructive Cost Models COCOMO – Dr. Barry Boehm - USC

1981 - original COCOMO introduced in Software Engineering Economics. • Uses previous 5 factors, and estimates

costs, schedule and staff size 1981-1996 – incremental developments 1997 - calibration of COCOMO II is released by

Boehm.• More OO approach using obect points and function points

to determine software size. From informit.com - Barry Boehm is among the most respected names in the software world. A TRW professor of software engineering and director of the USC Center for Software Engineering, he earlier served as director of the DARPA Information Science and Technology Office and as a chief scientist at TRW. His contributions to the field include the Constructive Cost Model (COCOMO), the Spiral Model of the software process, the Theory W (win-win) approach to software management and requirements determination, and his classic book, Software Engineering Economics (Prentice Hall, 1982).

Page 13: IS 556 Project Management

13David LashCS 556 - Winter

COCOMO Overall IdeaEstimate project in 5 levels

1. Level of Personnel2. Level of complexity3. Project size4. Development Environment5. Reliability level

Need to gather data and “calibrate” model over time.

Will overview at a high level some major factors in model.

Page 14: IS 556 Project Management

14David LashCS 556 - Winter

1. Level of Personnel

Productivity of developers varies widely (can be 400%). Performance varies by many factors

As project size increases Effect of individual performance decreases

PL < 1 is good PL while > 1 is not good …

),,( KSLOCNEPfPL

Personnel level

Expected Performance (assigned betw 1-4) for N engineers using KLOC as project size

Page 15: IS 556 Project Management

15David LashCS 556 - Winter

Personnel Level Cost Multipliers 

(ΣEP)/N KSLOC <5 25<KSLOC <300300

<KSLOC4 0.33 0.5 0.75

3.5 0.45 0.65 0.813 0.66 0.85 0.9

2.5 1 1 12 2.2 1.8 1.5

1.5 3.5 2.5 2.21 4 4 4

A B CKSLOC 10 100 500N 3 35 190ΣEP 9 71 435(ΣEP )/N 3 2 2.3PL 0.66 1.8 1

PL = f(ΣEP, N, KSLOC)

Table 12.2: PL Cost Factors Calculated for Three Projects

Table 12.1: Cost Multipliers for the Level of Personnel

PL estimates

AverExpectedperformance

Predicted costs of A 1/3 of B

100 KLOC, 35 people, 9@lvl 1 1@lvl 2, 6@lvl3, 2@lvl4

10 KLOC, 3 people, 1@lvl 2 1@lvl 3, 1@lvl4

500 KLOC, 500 people, 20@lvl 1 100@lvl 2, 65@lvl3, 5@lvl4

Page 16: IS 556 Project Management

16David LashCS 556 - Winter

2. Levels of Software Complexity:

1. System - operating, comm., etc.• SEM = 3.6 X (KSLOC)

1.20

2. Algorithmic – logic, scientific, sort• SEM = 3.2 X (KSLOC)

1.15

3. Service – utilities, graphics• SEM = 2.8 X (KSLOC)

1.10

4. Data Processing – DB, inventory, spreadsheet, etc.

• SEM = 2.4 X (KSLOC)1.05

Consider 4 classes of software complexity:

Estimated Software Engineering Months (SEM).

These formula suggest that as size gets > 100 KLOC classification becomes more important. > 300KLOC can be > 200%.

Page 17: IS 556 Project Management

17David LashCS 556 - Winter

3. Reliability Levels

Must formulate based on experience

Levels based on effects of system failure Slight inconvenience Losses easily recovered Moderately difficult to

recover losses High financial loss Risk to human life

LEVEL OF RELIABILITY

RELIABILITY MULTIPLIERS

5. Full fault tolerance 2

3. Data integrity preserved 1.17

4. High reliability required 1.5

1. No effort required 0.75

2. Low 0.93

Table 12.4: Reliability Multipliers for Five Reliability Levels

Reliability is not a cheap requirement

A reliability function is calibrated for your environment and generate reliability multiplier

Page 18: IS 556 Project Management

18David LashCS 556 - Winter

4. Development Environment

OS Programming language Computer Aided Software Engineering (CASE)

Multipliers can be developed for these levels also

Productivity is impacted by DE factors such as:

Page 19: IS 556 Project Management

19David LashCS 556 - Winter

5. SubsystemsSubsystems are components that can be

viewed as systems in their own right. Decomposition can result in subsystemsAlternatives

Can use model to calculate subsystem effortDivide into subsystems and calculate

effort separately.

Page 20: IS 556 Project Management

20David LashCS 556 - Winter

Some Basic CoCoMo Steps

Decompose software into subsystems and into modules

Use size estimation to estimate module sizeDetermine effort multipliers

(personnel, size, reliability, development environ, module complex)

Apply multipliers to modules and rollup into module and susbsystem effort

Review costs missed and any missed factors

Have another independent estimate made

Page 21: IS 556 Project Management

21David LashCS 556 - Winter

Function Point Analysis There is some controversy about using KLOC as a

size/complexity measure. (C++ VS Perl VS VB code). FPA is a measure of complexity based on problem size

(functionality amount) There exists Intl Function Point Users Group (IFPUG) =>

promote FPA and software measurement FPA can be used to compare

Project complexity Effort to complete Generate other measures such as KLOC

Used as a component in COCOMO, There are also several software packages that calculate

Page 22: IS 556 Project Management

22David LashCS 556 - Winter

Function Point Analysis

FPA based on UFP -> unadjusted function point -> Complexity of I/O

component CAF -> Complexity adjustment factor -> overall complexity

of project.

AFP => Adjusted function point

xUFPCAFAFP

Page 23: IS 556 Project Management

23David LashCS 556 - Winter

Function Point Analysis - UFP UFP -> measure of I/O Dependent-ness Identify the number of functions that are Input/output

dependent E.g., User inputs/inquires, external data output, control files/data,

external shared files/data/control info Classify these functions and rate them as

Simple (minimal i/O, minimal user involvement) Average – Complex – (many file accesses, many different data types,

extensive user involvement) Weighted values – Assigned to each function type, calibrated

for your environment.

)__( valuesweightedAllUFP

Remember: CFP= CAF x UFP

Page 24: IS 556 Project Management

24David LashCS 556 - Winter

Function Point Analysis - CAF CAF – Calculated Adjustment Factor - Attributes of

Processing complexity Look at overall problem and estimate attributes of

processing complexity: Data communication, performance, transaction rate, online

data entry, reusability, Operational ease, installation ease and many more)

Rate complex influence from 0->none, 5->strong complex influence

Calculate the CAF. Text suggests one formula might be:

)__(5

)__(

categoriesofnumberx

ratingscomplexAllCAF

xUFPCAFAFP

Page 25: IS 556 Project Management

25David LashCS 556 - Winter

Range of EstimatesIdea is to ask several engineers to

estimate effort. Estimations will form normal distribution (if

‘N’ is large enough. (Shaper of distribution important)

Idea is to approximate a normal distribution so you have some statistical basis for determining an estimation range. Can calculate expected valueStandard deviation:

• 1 sd = 66% of data• 2 sd = 95% of data• 3 SD = 99% of data

Idea- 95% confidence of estimate from 4-9 days

Page 26: IS 556 Project Management

26David LashCS 556 - Winter

Using Normal Distribution Steps would be:

1. Get a solid estimate of best and worst case 2. Get several estimates of expected time

- Probability of best case = .2 - Probability of worst case = .2 - Probability of most likely = .6 - Expected value = summary of probabilities.

- Can approximate std dev = P(word)*worst -

P(best)*best and therefore can calc 3*SD

Page 27: IS 556 Project Management

27David LashCS 556 - Winter

How does that work? Assume estimates as:

Best case – 4 weeks Worst case – 12 weeks Expected case estimate – 7 Weeks

Approximate Std Dev

Therefore you could say66% confident effort is between 5.8-9 days95% confident effort is between 4.2-10.6

4.7)2(.12)6(.7)2(.4 Expected

Remember assign probabilities .2 and probability .6

8.4)3(6.1)(3

2.3)2(6.1)(2

6.1)2(.4)2(.12

Sdev

Sdev

Sdev Remember has 66% confidence95% confidence and 99% confidence

Page 28: IS 556 Project Management

28David LashCS 556 - Winter

Hardware ResourcesSometimes application targets a specific

hardware with limited CPU E.g., Palm pilot, some network switches, real-

time softwareSometime must design software to work

with hardw limitations Will consider CPU, Data storage and response

time

Page 29: IS 556 Project Management

29David LashCS 556 - Winter

Hardware Resources – CPU LoadCPU Load - difficult with multi-processors so

often use percentage Choose specific time frame.

Why? E.g., Many systems on aver10-20% busy. Concerned about the critical time the AP is running.

Usually Real-Time systems For example, a communication system, needs

• A main loop with to read 2 data inputs every 400 Ms and require 60 ms each

– Therefore within 400 ms consume 120 ms• A fast loop that reads 2 inputs every 40 Ms and require 10ms.

That is, consumes 20 ms every 40 ms.– Would consume 200 ms within 400

• So within 400 ms– (120+200)/400 or 80% consumed

Page 30: IS 556 Project Management

30David LashCS 556 - Winter

Hardware Resources - Data Storage Sometimes early estimates need based on user input Estimate worst case memory needs

Decompose system & estimate memory needs ID indirect memory needs (work areas, etc.) ID largest set of modules resident at any one time ID system level needs (buffers, stack, resident tables) Total OS memory utilization Combine all

Disk usage still comes up from time to time E.g., disk needs for DB application

Establish an estimated number of tables and variables within each Estimate number of records.

Page 31: IS 556 Project Management

31David LashCS 556 - Winter

Hardware Resources - response time

System feedback – user perception

Response time interval

Estimate response times Average Worst case system usage 95th percentile

RESPONSE TIME (SECONDS)

PERCENTAGE

0-3 20%3-6 60%6-9 39%

9-15 1%

Table 12.7: Example Response Time Distribution Table

Event Process Response

Response time

Page 32: IS 556 Project Management

32David LashCS 556 - Winter

Nondevelopment Overhead Update estimates and report

continuously

At end of design phase At milestones Before IntegrationBefore

Testing Update when requirements

change Use a safety factor or fudge

factor (%) Project Overhead doesn’t

include Senior management, sales

OVERHEADManagement 0.1Configuration control 0.02Software quality assurance 0.03

Table 12.8: Overhead of Nondevelopment Activities

It is better to withstand the assault on a schedule at the beginning of a project and be applauded when it is completed on time, than to be applauded at the beginning of a project for accepting an impossible schedule and being rebuked at the end for failing to deliver it on time.

Page 33: IS 556 Project Management

33David LashCS 556 - Winter

Stepwise EstimationPrototyping – Engineering orientationConstructive Cost ModelsEstimate project in 5 levels

1. Level of Personnel2. Level of complexity3. Project size4. Development Environment5. Reliability level

Range of Estimates (normal distrbution)Hardware estimates - CPU, Memory, disk, resp

time

Summary


Recommended