estimation-for-software-projects-chapter-26-ppt-230316074842-0dbfccf4 (1)
estimation-for-software-projects-chapter-26-ppt-230316074842-0dbfccf4 (1)
All copyright information MUST appear if these slides are posted on a website for
student use.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 1
Project Estimation
Project scope must be
understood
Elaboration (decomposition) is
necessary
Historical metrics are very
helpful
At least two different techniques
should be used
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 2
Estimation Techniques
Past (similar) project experience
Conventional estimation techniques
task breakdown and effort estimates
size (e.g., FP) estimates
Empirical models
Automated tools
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 3
Estimation Accuracy
Predicated on …
the degree to which the planner has properly
estimated the size of the product to be built
the ability to translate the size estimate into human
effort, calendar time, and dollars (a function of the
availability of reliable software metrics from past
projects)
the degree to which the project plan reflects the
abilities of the software team
the stability of product requirements and the
environment that supports the software engineering
effort.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 4
Conventional Methods:
LOC/FP Approach
compute LOC/FP using estimates of
information domain values
use historical data to build estimates for
the project
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 5
Example: LOC Approach
project characteristics
calibration factors
LOC/FP data
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 8
Estimation with Use-Cases
use cases scenarios pages Ź scenarios LOC LOC
User interf eace
subsystem
subsystem pages 6 10 6 estimate 560 3,366
Engineeringsubsystem
subsystem group 10 Ź
20 8 12Ź 16 5 8 3100 31,233
Inf rastructure subsystem
group e 5 6 5 Ź 10 6 1650 7,970
group subsystem group Ź Ź Ź Ź
Total LOC estimate Ź Ź Ź Ź 42,568
stimate
Using 620 LOC/pm as the average productivity for systems of
this type and a burdened labor rate of $8000 per month, the
cost per line of code is approximately $13. Based on the use-
case estimate and the historical productivity data, the total
estimated project cost is $552,000 and the estimated
effort is 68 person-months.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 9
Empirical Estimation Models
General form:
exponent
effort = tuning coefficient * size
usually derived
as person-months empirically
of effort required derived
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 10
COCOMO-II
COCOMO II is actually a hierarchy of
estimation models that address the following
areas:
• Application composition model. Used during the early
stages of software engineering, when prototyping of
user interfaces, consideration of software and system
interaction, assessment of performance, and
evaluation of technology maturity are paramount.
• Early design stage model. Used once requirements
have been stabilized and basic software architecture
has been established.
• Post-architecture-stage model. Used during the
construction of the software.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 11
The Software Equation
A dynamic multivariable model
where
E = effort in person-months or person-years
t = project duration in months or years
B = “special skills factor”
P = “productivity parameter”
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 12
Estimation for OO Projects-I
Develop estimates using effort decomposition, FP analysis,
and any other method that is applicable for conventional
applications.
Using object-oriented requirements modeling (Chapter 6),
develop use-cases and determine a count.
From the analysis model, determine the number of key
classes
(called analysis classes in Chapter 6).
Categorize the type of interface for the application and develop
amultiplier
Interfacefor support classes:
type Multiplier
No GUI 2.0
Text-based user interface 2.25
GUI 2.5
Complex GUI 3.0
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 13
Estimation for OO Projects-II
Multiply the number of key classes (step 3) by the
multiplier to obtain an estimate for the number of support
classes.
Multiply the total number of classes (key + support) by
the average number of work-units per class. Lorenz
and Kidd suggest 15 to 20 person-days per class.
Cross check the class-based estimate by multiplying
the average number of work-units per use-case
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 14
Estimation for Agile Projects
Each user scenario (a mini-use-case) is considered separately
for estimation purposes.
The scenario is decomposed into the set of software
engineering tasks that will be required to develop it.
Each task is estimated separately. Note: estimation can be
based on historical data, an empirical model, or “experience.”
Alternatively, the ‘volume’ of the scenario can be estimated in LOC,
FP or some other volume-oriented measure (e.g., use-case count).
Estimates for each task are summed to create an estimate for
the scenario.
Alternatively, the volume estimate for the scenario is translated into
effort using historical data.
The effort estimates for all scenarios that are to be implemented
for a given software increment are summed to develop the effort
estimate for the increment.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 15
The Make-Buy Decision
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 16