Document 7195850
Download
Report
Transcript Document 7195850
Chapter 5
Software Project Planning
1
Software Project Planning
The overall goal of project planning is
to establish a pragmatic strategy for
controlling, tracking, and monitoring a
complex technical project.
Why?
So the end result gets done on time,
with quality!
2
Write it Down!
Project Scope
Estimates
Risks
Schedule
Control strategy
Software
Project
Plan
3
The Steps
Scoping—understand the problem and
the work that must be done
Estimation—how much effort? how
much time?
Risk—what can go wrong? how can we
avoid it? what can we do about it?
Schedule—how do we allocate
resources along the timeline? what are
the milestones?
Control strategy—how do we control
quality? how do we control change?
4
A Good Project Plan
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
5
Software Scope
What -- Describe function, performance,
constraints, interfaces, and reliability.
How -- Obtain information for scope
Context-free questions (Q&A)
a meeting format
6
Context-free questions
Focuses on the customer, the overall
goals and benefits
Who is behind the request for this work?
Who will use the solution?
What will be the economic benefit of a
successful solution?
Is there another source for the solution
7
Enables the analyst to gain a better
understanding of the problem and the
customer to voice any perceptions about a
solution.
How would you (customer) characterize “good”
output that would be generated by a successful
solution?
What problem(s) will this solution address?
Can you show me (or describe) the environment in
which the solution will be used?
Will any special performance issues or constraints
affect the way the solution is approached?
8
Focuses on the effectiveness of the
meeting.
Are you the right person to answer these
questions? Are answers “official”?
Are my questions relevant to the problem
that you have?
Am I asking too many questions?
Can anyone else provide additional
information?
Should I be asking you anything else?
9
A Scoping Example
P.118
10
A conveyor line sorting system
(CLSS)
11
Functions
Read bar code input.
Read pulse tachometer.
Decode part code data.
Do database look-up.
Determine bin location.
Produce control signal for shunt.
Maintain record of box destinations.
12
Scope
function: put boxes into bins
performance: speed of the conveyor
constraints: spaced between two
boxes
interface: PC, peripherals, …
reliability: 90%
13
Resources
14
Resource
Description of the
resource
Statement of
availability
When
How long
15
Resources
Human
organizational position
specialty
number of people
Reusable Software
Off-the shelf components
Full-experience components
Partial-experience components
New components
Environmental
Software engineering environment (SEE) -hardware and software.
16
Accuracy of Estimation
Project complexity
Project size
Degree of structural uncertainty
Availability of historical information
….
17
Cost Estimation
project scope must be explicitly
defined
task and/or functional
decomposition is necessary
historical measures (metrics) are
very helpful
at least two different techniques
should be used
remember that uncertainty is
inherent
18
Estimation Techniques
Decomposition Techniques Model
Problem-Based estimation
LOC-based estimation
FP-based estimation
Process-Based estimation
Efforts (e.g. person-months)
LOC-based estimation
FP-based estimation
Empirical Estimation Model
Automated Estimation Tools
19
LOC-Based Estimation
Identify the major software functions
Estimate the LOC (EV) of each function.
EV (expected value) = (Soptimistic + 4Smost likely +
Spessimistic)/6
Sum each estimated LOC (EV).
20
Example
From the System Specification
The CAD software will accept two- and threedimensional geometric data from an engineer. The
engineer will interact and control the CAD system through
a user interface that will exhibit characteristics of good
human/machine interface design. ….P.128
21
For 3DGA:
Optimistic – 4600 LOC; most likely – 6900 LOC; pessimistic – 8600 LOC
Estimated LOC = EV
For the system:
Average productivity (history) = 620 LOC/pm; Labor rate = $8000 per month
Cost per line = ?; Estimated project cost = ?; Estimated effort = ?
22
FP-Based Estimation
Identify the information domain characters.
Assign level of estimated size value,
complexity, and weight to each information
domain value.
Count each FP.
Count total FP.
Count FP of the software.
FPestimated = count-total x [0.65 x 0.01 x Summation(Fi)]
23
Example
96
80
4
40
14
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
24
Ch 4
25
Ch 4
FP total count [0.65 (0.01 Fi )]
50 [0.65 (0.01 46)]
56
26
Process-Based Estimation
Decompose each process into a
relatively small set of tasks.
Meld the functions and related
process activities.
Estimated the effort (e.g. personmonth).
27
Example
Average labor rate = $8000 per month
Total estimated project cost = $8000x46 = $368000
Estimated project effort = 46 person-month
28
Empirical Estimation Models
The Structure of Estimation
Models
The COCOMO Model
The Software Equation
29
Structure of Estimation Models
exponent
effort =A + B * size
usually derived
as person-months
of effort required
either a constant or
a number derived based
on complexity of project
empirically
derived
usually LOC but
may also be
function point
30
COCOMO Model
Application composition model
Object points: screens, reports,
components
Early design stage model
Function points
Post-architecture-stage model
Lines of source code
31
COCOMO Model
32
COCOMO Model
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
33
Software Equation
Dynamic multivariable model
4000 contemporary software project
E = [LOC x B0.333/P]3 X (1/t4)
34
Automated Estimation Tools
Sizing of project deliverables
Selecting project activities
Predicting staffing levels
Predicting software effort
Predicting software cost
Predicting software schedules
35
The Make/Buy Decision
Purchase off-the-shelf
Modify and integrate the “fullexperience” or “partialexperience” software components
Outside contract
36
Decision Tree Analysis
37
Computing Expected Cost
expected cost =
(path probability) x (estimated path cost)
i
i
For example, the expected cost to build is:
expected cost build = 0.30($380K)+0.70($450K)
= $429 K
similarly,
expected cost reuse = $382K
expected cost buy = $267K
expected cost contr = $410K
38
Estimation Guidelines
estimate using at least two techniques
get estimates from independent sources
avoid over-optimism, assume difficulties
adjust for the people who'll be doing the
job — they have the highest impact
39