View
225
Download
0
Category
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