Professional Documents
Culture Documents
SPM Chapter5
SPM Chapter5
CHAPTER
Objectives
• Changing technology;
0
Select Project
1 Identify project 2 Identify project
scope and objective infrastructure
3
Analyze project
characteristics
4 Identify the
Review products and activities
5 Estimate effort
for activity
For each activity
Lower level detail 6 Identify
activity risks
Calculate the productivity (i.e. SLOC per wm) of each of the projects in Table 5.1 and
also for the organization as a whole. If the project leaders for projects A and D has
Exercise 5.1 correctly estimated the source number of line of code (SLOC) and then used the
average productivity of the organization to calculate the effort needed to complete the
project, how far out would their estimates have been from the actual effort?
Political implications
• Strategic planning
• Feasibility study
• System specification
• Evaluation of suppliers’ proposals
• Project planning
Parkinson’s Law
Brooks’ Law
Putting more people on a late job makes it later.
Under-estimate
3. Complexity
Algorithmic models
Expert judgment A model is developed
using historical cost
One or more experts on the
Analogy information which relates
software development
some software metric
techniques
This technique to be used and
is applicable
Parkinson (usually its size) to the
when other on the application
projects the Andomain
projectincost. estimate
same
The effort are
application consulted.
domain
is determined by metric
Price to win is made of that
have been resources
available completed.
and modelratherpredicts the
Theby
than estimated
objective effort
effort required.
Top-down depends on the customer’s
assessment.
Estimates are made on the
budget and not on the
Bottom-up basis of the logical function
software functionality.
Each component is
rather than components
estimated. Allthat
implementing of them are
function.
added to product a final
estimate.
Software Project Management Slide# 11
Software effort estimation
5.5 Software effort estimation techniques
Bottom-up estimating
The estimator breaks the project into its component tasks
and then estimates how much effort will be required to
carry out this task.
With a large project, the process of breaking down into
tasks would be a repetitive one: each task would be
analyzed into its component sub-tasks and these in turn
would be further analyzed.
This is repeated until you get to components that can be
executed by a single person in about a week or two.
The bottom-up part comes in adding up the calculated
effort for each activity to get an overall estimate.
The top-down and bottom-up approaches are not mutually exclusive. Project
managers will probably try to get a number of different estimates from
different people using different methods. Some parts of an overall estimate
could be derived using a top-down approach while other parts could be
calculated using a bottom-up method.
Example
Amenda at IOE might estimate that the first software module to be constructed is 2KLOC. She might
then judge that if Kate undertook the development of the code, with her expertise she could work at
a rate of 40 days per KLOC.
• Case-based reasoning;
• Estimator seeks out project that have been completed –
“Source cases”;
• That has been similar characteristics to the new project –
“Target cases”;
• The effort that has been recorded for the matching source
case can then be used as a base estimate for the target;
• The estimator should then try to identify any differences
between the target and the source and make adjustments to
the base estimate for the new project.
Example 5.1
The new project is known to require 7 inputs and 15 outputs. One of the
past cases, project A, has 8 inputs and 17 outputs. The Euclidean distance
between source and the target is =
Project B has 5 inputs and 10 outputs. What would be the Euclidean
distance between this project and the target new project being considered
above? Is the project B a better analogy with the target than project A?
Methodology Description
Methodology Advantages
Methodology Disadvantages
Multiplier
External user type Low Average High
Internal Logical File & External Interface File (ILF & EIF)
Assembler 1:1
C 1 : 1.5
COBOL 1:3
FORTRAN 1:3
PASCAL 1 : 3.5
RPG 1:4
PL/1 1:4
BASIC 1:5
4GLs 1:8
QUERY LANG. 1 : 20
SPREADSHEET 1 : 50
Here, W is weightings that might be derived by asking developers what proportion of effort
has been spent in previous projects developing those parts of the software that deal with
processing inputs, assessing, and modifying stored data and processing outputs.
Data Store
Note: Industry averages are 0.58 for W-input, 1.66 for W-entity and 0.26 for W-output. All ratios are 2.5
Software Project Management Slide# 31
Software effort estimation
5.9 Function points Mark II
Example 5.7
If you have figures for the effort expended on past projects and also
the system size in FPs, you should be able to work out a productivity
rate, that is:
Productivity = size / effort.
For new projects, the function points can be counted and then the
effort can be projected using the productivity rate derived above:
The overall FFP count is derived by simply adding up the counts for each of the four
types of data movement. The resulting units are Cfsu (COSMIC functional size units).
Software Project Management Slide# 36
Software effort estimation
5.10 Object points
srvr is the number of server ( mainframe or equivalent ) data tables used in conjuction with the SCREEN or REPORT
clnt is the number of client ( personal workstation ) data tables used in conjuction with the SCREEN or REPORT
Complexity weighting
Object Type Simple Medium Difficult
Screen 1 2 3
Report 2 5 8
3GL - - 10
Component
effort = c x sizek
Small Projects:
Measurements of small to moderate projects resulted in a model of the following form:
EFFORT = a * SIZE + b
Here, the magnitude of the effort is a linear function of the size of the project ( Number of Lines of
Code, usually ). This model holds up until a certain point, usually for projects that can be reasonably
accomplished by small teams of two or three people. By increasing the size of the project, the above
model becomes less and less accurate an the need for a new model increases.
Large Projects:
Projects requiring teams of more than three or so people tend to behave in the following
way:
EFFORT = a * SIZE b
Here, the size of the project is scaled exponentially, therefore as a product increases in size, the
effort to produce the product grows more than linearly ( for b >= 1 ). It means that if we try to
develop a larger product, our productivity ( SIZE / EFFORT ) Decreases. This decrease in productivity
on larger projects is called a diseconomy of scale.
Semi-Detached Mode
Embedded Mode
C K
2.4 1.05
• Organic Mode
Application composition
Early design
Post architecture
The qualities that govern the exponent driver used to calculate the 5
scale factors are listed below:
Precedentedness
Development flexibility
Architecture/risk resolution
Team cohesion
Process maturity
Where
Effort is the effort from the COCOMO II effort equation
SE is the schedule equation exponent derived from the five Scale Drivers
Effort
Staffing
Duration
DURATION
Effort
Staffing
Duration