1 chapter 5 software project planning. 2 software project planning the overall goal of project...

39
1 Chapter 5 Chapter 5 Software Project Software Project Planning Planning

Upload: augustine-clark

Post on 03-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

1

Chapter 5Chapter 5Software Project Software Project

PlanningPlanning

Page 2: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

2

Software Project Software Project PlanningPlanning

The overall goal of project planning is The overall goal of project planning is to establish a pragmatic strategy for to establish a pragmatic strategy for controlling, tracking, and monitoring controlling, tracking, and monitoring a complex technical project.a complex technical project.

Why?Why?

So the end result gets done on time, So the end result gets done on time, with quality!with quality!

Page 3: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

3

Write it Write it Down!Down!

SoftwareSoftwareProjectProject

PlanPlan

Project ScopeProject ScopeEstimatesEstimatesRisksRisksScheduleScheduleControl strategyControl strategy

Page 4: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

4

The The StepsSteps

Scoping—understand the problem Scoping—understand the problem and the work that must be doneand the work that must be done

Estimation—how much effort? how Estimation—how much effort? how much time?much time?

Risk—what can go wrong? how can Risk—what can go wrong? how can we avoid it? what can we do about it?we avoid it? what can we do about it?

Schedule—how do we allocate Schedule—how do we allocate resources along the timeline? what resources along the timeline? what are the milestones?are the milestones?

Control strategy—how do we control Control strategy—how do we control quality? how do we control change?quality? how do we control change?

Page 5: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

5

A Good Project A Good Project PlanPlan Project scope

Project schedule Project team organization Technical description of the proposed

system Project standards, procedures, and

proposed techniques and tools Quality assurance plan Configuration management plan Documentation plan Data management plan Resource management plan Test plan Training plan Security plan Risk management plan Maintenance plan

Page 6: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

6

Software Software ScopeScope

What -- Describe function, What -- Describe function, performance, constraints, interfaces, performance, constraints, interfaces, and reliability.and reliability.

How -- Obtain information for scopeHow -- Obtain information for scope Context-free questionsContext-free questions (Q&A) (Q&A) a meeting formata meeting format

Page 7: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

7

Context-free Context-free questionsquestions

Focuses on the Focuses on the customercustomer, the , the overall goalsoverall goals and and benefitsbenefits

Who is behind the request for this Who is behind the request for this work?work?

Who will use the solution?Who will use the solution? What will be the economic benefit What will be the economic benefit

of a successful solution?of a successful solution? Is there another source for the Is there another source for the

solutionsolution

Page 8: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

8

Enables the Enables the analystanalyst to gain a better to gain a better understanding of the problem and the understanding of the problem and the customercustomer to voice any perceptions to voice any perceptions about a solution.about a solution. How would you (customer) characterize How would you (customer) characterize

“good” output that would be generated by “good” output that would be generated by a successful solution?a successful solution?

What problem(s) will this solution address?What problem(s) will this solution address? Can you show me (or describe) the Can you show me (or describe) the

environment in which the solution will be environment in which the solution will be used?used?

Will any special performance issues or Will any special performance issues or constraints affect the way the solution is constraints affect the way the solution is approached?approached?

Page 9: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

9

Focuses on the Focuses on the effectiveness of effectiveness of the meetingthe meeting. . Are you the right person to answer Are you the right person to answer

these questions? Are answers these questions? Are answers “official”?“official”?

Are my questions relevant to the Are my questions relevant to the problem that you have?problem that you have?

Am I asking too many questions?Am I asking too many questions? Can anyone else provide additional Can anyone else provide additional

information?information? Should I be asking you anything Should I be asking you anything

else?else?

Page 10: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

10

A Scoping A Scoping ExampleExample

P.118

Page 11: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

11

A conveyor line sorting system

(CLSS)

Page 12: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

12

FunctionsFunctions Read bar code input.Read bar code input. Read pulse tachometer.Read pulse tachometer. Decode part code data.Decode part code data. Do database look-up.Do database look-up. Determine bin location.Determine bin location. Produce control signal for shunt.Produce control signal for shunt. Maintain record of box Maintain record of box

destinations.destinations.

Page 13: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

13

ScopeScope function: put boxes into binsfunction: put boxes into bins performance: speed of the performance: speed of the

conveyorconveyor constraints: spaced between two constraints: spaced between two

boxesboxes interface: PC, peripherals, …interface: PC, peripherals, … reliability: 90%reliability: 90%

Page 14: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

14

ResourResourcesces

Page 15: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

15

ResourcResourcee

Description of Description of the resourcethe resource

Statement of Statement of availabilityavailability

When When How longHow long

Page 16: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

16

ResourResourcesces HumanHuman

organizational position organizational position specialtyspecialty number of peoplenumber of people

Reusable SoftwareReusable Software Off-the shelf componentsOff-the shelf components Full-experience componentsFull-experience components Partial-experience componentsPartial-experience components New componentsNew components

Environmental Environmental Software engineering environment Software engineering environment

(SEE) --hardware and software.(SEE) --hardware and software.

Page 17: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

17

Accuracy of Accuracy of EstimationEstimation

Project complexityProject complexity Project sizeProject size Degree of structural uncertaintyDegree of structural uncertainty Availability of historical Availability of historical

informationinformation ……..

Page 18: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

18

Cost Cost EstimationEstimation

project scope must be explicitly project scope must be explicitly defineddefinedtask and/or functional task and/or functional decomposition is necessarydecomposition is necessaryhistorical measures (metrics) are historical measures (metrics) are very helpfulvery helpfulat least two different techniques at least two different techniques should be usedshould be usedremember that uncertainty is remember that uncertainty is inherentinherent

Page 19: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

19

Estimation Estimation TechniquesTechniques

Decomposition Techniques ModelDecomposition Techniques Model Problem-Based estimationProblem-Based estimation

LOC-based estimationLOC-based estimation FP-based estimationFP-based estimation

Process-Based estimationProcess-Based estimation Efforts (e.g. person-months)Efforts (e.g. person-months) LOC-based estimationLOC-based estimation FP-based estimationFP-based estimation

Empirical Estimation ModelEmpirical Estimation Model Automated Estimation ToolsAutomated Estimation Tools

Page 20: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

20

LOC-Based LOC-Based EstimationEstimation

Identify the major software Identify the major software functionsfunctions

Estimate the LOC (EV) of each Estimate the LOC (EV) of each function.function.EV (expected value) = (SEV (expected value) = (Soptimisticoptimistic + 4S + 4Smost most

likelylikely + S + Spessimisticpessimistic)/6)/6

Sum each estimated LOC (EV).Sum each estimated LOC (EV).

Page 21: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

21

ExamplExamplee

From the System SpecificationFrom the System Specification

The CAD software will accept two- and three-The CAD software will accept two- and three-dimensional geometric data from an engineer. The dimensional geometric data from an engineer. The engineer will interact and control the CAD system engineer will interact and control the CAD system through a user interface that will exhibit through a user interface that will exhibit characteristics of good human/machine interface characteristics of good human/machine interface design. ….P.128design. ….P.128

Page 22: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

22

For 3DGA: Optimistic – 4600 LOC; most likely – 6900 LOC; pessimistic – 8600 LOC Estimated LOC = EVFor the system: Average productivity (history) = 620 LOC/pm; Labor rate = $8000 per month Cost per line = ?; Estimated project cost = ?; Estimated effort = ?

Page 23: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

23

FP-Based FP-Based EstimationEstimation

Identify the information domain Identify the information domain characters. characters.

Assign level of estimated size value, Assign level of estimated size value, complexity, and weight to each complexity, and weight to each information domain value.information domain value.

Count each FP. Count each FP. Count total FP. Count total FP. Count FP of the software.Count FP of the software.

FPFPestimatedestimated = count-total = count-total x [0.65 x 0.01 x Summation(Fi)]

Page 24: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

24

ExampExamplele

9680

1440

318

For the system: Average productivity (history) = 6.5 FP/pm; Labor rate = $8000 per month Cost per line = 8000 / 6.5 = $1230; Estimated project cost = 1230x372 = $457,000; Estimated project effort = 372 / 6.5 = 57 person-months

4

Page 25: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

25

Ch Ch 4 4

Page 26: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

26

Ch Ch 44

56

)]4601.0(65.0[50

)]01.0(65.0[

iFcounttotalFP

Page 27: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

27

Process-Based Process-Based EstimationEstimation

Decompose each process into a Decompose each process into a relatively small set of tasks.relatively small set of tasks.

Meld the functions and related Meld the functions and related process activities.process activities.

Estimated the effort (e.g. Estimated the effort (e.g. person-month).person-month).

Page 28: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

28

ExampExamplele

Average labor rate = $8000 per month

Total estimated project cost = $8000x46 = $368000

Estimated project effort = 46 person-month

Page 29: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

29

Empirical Estimation Empirical Estimation ModelsModels

The Structure of Estimation The Structure of Estimation ModelsModels

The COCOMO ModelThe COCOMO Model The Software EquationThe Software Equation

Page 30: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

30

Structure of Estimation Structure of Estimation ModelsModels

effort =A + B * sizeexponent

usually derivedas person-monthsof effort required

either a constant ora number derived based on complexity of project

usually LOC butmay also befunction point

empiricallyderived

Page 31: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

31

COCOMO COCOMO ModelModel

Application composition modelApplication composition model Object points: screens, reports, Object points: screens, reports,

componentscomponents

Early design stage modelEarly design stage model Function pointsFunction points

Post-architecture-stage modelPost-architecture-stage model Lines of source codeLines of source code

Page 32: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

32

COCOMO COCOMO ModelModel

Page 33: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

33

COCOMO COCOMO ModelModel

Total object points = sum ( number of object X weight)

NOP (New Object Points) = total object points x (100 - reuse) / 100

PROD = productivity rate (TABLE 5.2)

Estimated Effort = NOP / PROD

Page 34: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

34

Software Software EquationEquation

Dynamic multivariable model Dynamic multivariable model 4000 contemporary software 4000 contemporary software

projectproject

E = [LOC x BE = [LOC x B0.3330.333/P]/P]33 X (1/t X (1/t44))

Page 35: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

35

Automated Estimation Automated Estimation ToolsTools

Sizing of project Sizing of project deliverablesdeliverables

Selecting project activitiesSelecting project activities Predicting staffing levelsPredicting staffing levels Predicting software effortPredicting software effort Predicting software costPredicting software cost Predicting software Predicting software

schedulesschedules

Page 36: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

36

The Make/Buy The Make/Buy DecisionDecision

Purchase off-the-shelfPurchase off-the-shelf Modify and integrate the Modify and integrate the

“full-experience” or “partial-“full-experience” or “partial-experience” software experience” software componentscomponents

Outside contract Outside contract

Page 37: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

37

Decision Tree Decision Tree AnalysisAnalysis

system Xsystem Xreusereuse

simple (0.30)simple (0.30)

difficult (0.70)difficult (0.70)

minorminor changeschanges

(0.40)(0.40)

majormajorchangeschanges

(0.60)(0.60)

simple (0.20)simple (0.20)

complex (0.80)complex (0.80)

majormajor changeschanges (0.30)(0.30)

minorminor changeschanges

(0.70)(0.70)

$380,000$380,000

$450,000$450,000

$275,000$275,000

$310,000$310,000

$490,000$490,000

$210,000$210,000

$400,000$400,000

buybuy

contractcontract

without changes (0.60)without changes (0.60)

with changes (0.40)with changes (0.40)

$350,000$350,000

$500,000$500,000

buildbuild

Page 38: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

38

Computing Computing Expected CostExpected Cost

((path probability) x (estimated path cost) path probability) x (estimated path cost) ii ii

For example, the expected cost to build is:For example, the expected cost to build is:

expected cost = 0.30($380K)+0.70($450K) expected cost = 0.30($380K)+0.70($450K)

similarly,similarly,expected cost = $382Kexpected cost = $382Kexpected cost = $267Kexpected cost = $267Kexpected cost = $410Kexpected cost = $410K

buildbuild

reusereuse

buybuy

contrcontr

expected cost =expected cost =

= $429 = $429 KK

Page 39: 1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,

39

Estimation GuidelinesEstimation Guidelines

estimate using at least two techniquesestimate using at least two techniques

get estimates from independent sourcesget estimates from independent sources

avoid over-optimism, assume difficultiesavoid over-optimism, assume difficulties

adjust for the people who'll be doing the adjust for the people who'll be doing the job — they have the highest impactjob — they have the highest impact