1 540f07cost10 question of the day u how important is it to be able to estimate the cost of a...

23
1 540f07cost10 Question of the Day How important is it to be able to estimate the cost of a software project?

Upload: loren-holmes

Post on 14-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

1540f07cost10

Question of the Day

How important is it to be able to estimate the cost of a software project?

Page 2: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

2540f07cost10

exam preview – 150 pts – 10/11/07

1. (30 pts) requirementscreate scenarios for a problem

2. (30 pts) PERT diagrams3. (20 pts) Cost Estimation4. (40 pts) definitions and short discussions5. (30 pts) 10 multiple choice

One crib sheet (8.5 by 11, handwritten) allowed, turn in with exam

Page 3: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

3540f07cost10

PERT Diagrams

Program Evaluation and Review Technique

a1

a2

a3

a4

a5

Page 4: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

4540f07cost10

Critical Path

If there are N tasks with dependencies between the tasks, what set of tasks determines the minimum completion time for the whole project?

This is the critical path.

Page 5: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

5540f07cost10

Critical Path Algorithm (part 1)

For each node (until completion time of all nodes are calculated)

» if the predecessors are completed, then take latest completions time and add required time for this node;

» this is the completion time.

The node with the latest completion time determines the earliest completion time for project.

Page 6: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

6540f07cost10

Example

Node pred time start finish critA 5B A 8C B 7D A 4E D 6

Page 7: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

7540f07cost10

Critical Path Algorithm (part 2)

Starting with the node with latest completion time, mark it as critical.

Select predecessor node with latest completion time, mark it as critical.

Continue until reaching start node.

Page 8: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

8540f07cost10

Example

Node pred time start finish critA 5 0 5 *B A 8 5 13 *C B 7 13 20 *D A 4 5 9E D 6 9 15

Page 9: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

9540f07cost10

Critical Path Algorithm (part 3)

Slack time is the amount of time that a specific task can be delayed without changing the project delivery time

For each noncritical node starting with the last node, determine the earliest of the latest start times of the successor nodes. This is the latest completion time. Make the latest start time for the node to reflect this time.

Page 10: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

10540f07cost10

Example

Node pred time start finish critA 5 0 5 *B A 8 5 13 *C B 7 13 20 *D A 4 5,10 9,14E D 6 9,14 15,20

Page 11: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

11540f07cost10

TTYP

Node pred time start finish crit A 3 0 B A 2 C A 10 D B,C 14 E D 4

Page 12: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

12540f07cost10

Cost Estimation

An estimate of the effort and duration, associated costs of equipment, travel and

training and the rationale for the calculations

Page 13: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

13540f07cost10

Recommendation

If you are involved with cost estimation, I recommend the following book

Tom DeMarco, Controlling Software Projects, Yourdon Press, NY c1982

Page 14: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

14540f07cost10

Definition of Estimate (DeMarco)

Default:– "An estimate is the most optimistic prediction

that has a non-zero probability of coming true" Proposed:

– "An estimate is a prediction that is equally likely to be above or below the actual result"

Page 15: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

15540f07cost10

Estimates should not become goals

DeMarco argues that the estimation and the management decision about pricing or goals should be separate.

Page 16: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

16540f07cost10

Estimate

cost

estimate price

Page 17: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

17540f07cost10

Cost Estimate

should not be a contract bid should not be a schedule should be input into the management

decision to determine the above should be re-estimated frequently

Page 18: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

18540f07cost10

TTYP1 Given the following data, what would be

your estimate for a project that would be about 200K? What would you use for a cost estimation formula?

Historical data– project 1 100K 50 prog-months– project 2 20K 10 prog-months– project 3 14K 7 prog-months– project 4 16K 8 prog-months

Page 19: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

19540f07cost10

Confidence in your estimate

How confidence are you in this estimate? Would you stake your job/grade on this

estimate? What would be your concerns? What could you do to increase your

confidence? What would you consider to be a successful

estimate?

Page 20: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

20540f07cost10

Problems Programmer variability Product complexity Variability of goal Conflict of goals Lack of detailed product description Variation in effort to reuse code Emergence of new processes, methods and

tools

Page 21: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

21540f07cost10

Cost Estimation Models

LOC models– Boehm's COCOMO– Price S– Putnam's Model (SLIM)

non-LOC models– Function Points

combination– COCOMO2

Page 22: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

22540f07cost10

Prediction Formulas

E=X

>1

<1

=1

TTYP2 – which one did Henry Ford experience?Which one happens in your project?

Size

cost

A non-zero gamma would shift line up or down

Page 23: 1 540f07cost10 Question of the Day u How important is it to be able to estimate the cost of a software project?

23540f07cost10

Tuesday, 10/2

Read

SOS section 4.4.3