1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project...

Preview:

Citation preview

1

Chapter 5Chapter 5Software Project Software Project

PlanningPlanning

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!

3

Write it Write it Down!Down!

SoftwareSoftwareProjectProject

PlanPlan

Project ScopeProject ScopeEstimatesEstimatesRisksRisksScheduleScheduleControl strategyControl strategy

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?

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

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

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

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?

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?

10

A Scoping A Scoping ExampleExample

P.118

11

A conveyor line sorting system

(CLSS)

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.

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%

14

ResourResourcesces

15

ResourcResourcee

Description of Description of the resourcethe resource

Statement of Statement of availabilityavailability

When When How longHow long

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.

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 ……..

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

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

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).

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

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 = ?

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)]

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

25

Ch Ch 4 4

26

Ch Ch 44

56

)]4601.0(65.0[50

)]01.0(65.0[

iFcounttotalFP

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).

28

ExampExamplele

Average labor rate = $8000 per month

Total estimated project cost = $8000x46 = $368000

Estimated project effort = 46 person-month

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

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

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

32

COCOMO COCOMO ModelModel

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

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))

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

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

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

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

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

Recommended