Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e

advertisement
Supplementary Slides for
Software Engineering:
A Practitioner's Approach, 5/e
copyright © 1996, 2001
R.S. Pressman & Associates, Inc.
For University Use Only
May be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.
Any other reproduction or use is expressly prohibited.
This presentation, slides, or hardcopy may NOT be used for
short courses, industry seminars, or consulting purposes.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
1
Chapter 5
Software Project Planning
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
2
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!
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
3
Objectives
Provide a framework that enables the
manager to make reasonable estimates of
resources, cost, and schedule
The attempt to determine
•Money
•Effort
•Resources
•Time
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
4
Risk on estimation
Project complexity
Project size
Degree of structural uncertainty
Availability of historical information
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
5
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?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
6
Write it Down!
Project Scope
Estimates
Risks
Schedule
Control strategy
Software
Project
Plan
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
7
Software Scope
Describes:
Data & control
Function
Performance
Constraints
Interfaces
reliability
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
8
To Understand Scope ...
Understand the customers needs
understand the business context
understand the project boundaries
understand the customer’s motivation
understand the likely paths for change
understand that ...
Even when you understand,
nothing is guaranteed!
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
9
Resources
Hardware/software tools
Reusable software components
People
People
Reusable software components
Hardware/software tools
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
10
Software Project Estimation
Options:
1. Delay estimation until late in the project
2. Base estimates on similar projects
3. Use relatively simple decomposition
techniques to generate project cost and
effort estimates
4. Use one or more empirical models for
software cost and effort estimation
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
11
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
12
Estimation Techniques
past (similar) project experience
conventional estimation techniques
 task breakdown and effort estimates
 size (e.g., FP) estimates
tools (e.g., Checkpoint)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
13
Accuracy of Estimate
 The accuracy of software estimate is
determined by:
1. Estimated size of the product
2. Ability to translate the size into effort, time and
budget
3. The ability of software team meets the project plan
4. The stability of requirements and environment
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
14
Functional Decomposition
Statement
of Scope
perform
a
"grammatical
parse"
functional
decomposition
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
15
Creating a Task Matrix
Obtained from “process framework”
framework activities
application
functions
Effort required to
accomplish
each framework
activity for each
application function
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
16
Conventional Methods:
LOC/FP Approach
compute LOC/FP using estimates of
information domain values
use historical effort for the project
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
17
LOC/FP
What do LOC & FP oriented estimation have in
common?
Bounded statement of software scope is
decomposed to be estimated individually
Baseline productivity metrics (eg. LOC/PM, FP/PM)
are then applied
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
18
LOC/FP – Differences
They differ in the level of detail of
decomposition and the target of partitioning
For LOC estimates, decomposition focuses
on software function (& its sub-functions)
For FP estimates, decomposition focuses on
information domain characteristics (ie, input,
output, data files, inquiries, & external
interfaces)
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
19
Expected Value
S = (Sopt + 4Sm + Spess)/6
Where Sopt, Sm, Spess is optimistic, most likely
and pessimistic estimates
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
20
Example: LOC Approach
Cost
Functions
estimated LOC
LOC/pm
$/LOC
Effort (months)
UICF
2340
315
14
32,000
7.4
2DGA
5380
220
20
107,000
24.4
3DGA
6800
220
20
136,000
30.9
DSM
3350
240
18
60,000
13.9
CGDF
4950
200
22
109,000
24.7
PCF
2140
140
28
60,000
15.2
300
18
151,000
28.0
655,000
145.0
DAM
Totals
8400
33,360
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
21
Example: FP Approach
measurement parameter
weight
count
number of user inputs
40
x
4
=
160
number of user outputs
25
x
5
=
125
number of user inquiries
12
x
4
=
48
number of files
4
x
7
=
28
number of ext.interfaces
4
x
7
=
28
algorithms
60
x
3
=
180
count-total
569
complexity multiplier
.84
feature points
478
0.25 p-m / FP = 120 p-m
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
22
Tool-Based Estimation
project characteristics
calibration factors
LOC/FP data
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
23
Empirical Estimation Models
General form:
effort = tuning coefficient * size
exponent
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
24
Empirical Estimation Models – Examples
Boehm simple model
E = a * (KLOC)b
D = 2.5 (E)d
Coefficient table
S/W Project
Organic
Semi detached
Embedded
ab
2.4
3.0
3.6
bb
1.05
1.12
1.20
db
0.38
0.35
0.32
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
25
Estimation Guidelines
estimate using at least two techniques
get estimates from independent sources
avoid over-optimism, assume difficulties
you've arrived at an estimate, sleep on it
adjust for the people who'll be doing the
job—they have the highest impact
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
26
The Make-Buy Decision
Acquisition options:
Software may be purchased (or licensed) offthe-self
“full-experience” or “partial-experience”
software components may be acquired and
modified
Software may be custom built by outside
contractor
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
27
Decision Tree Analysis
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
28
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
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
29
Outsourcing
Software engineering activities are contracted
to a third party who does the work at lower
cost and, hopefully, higher quality
Outsourcing decision is often a financial one
+- …
Positive side: cost saving
Negative side: lose some control
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
30
Automated Estimation Tools
Sizing of project deliverables
Selecting project activities
Predicting staffing levels
Predicting software effort
Predicting software cost
Predicting software schedules
++
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are
provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
31
Download