Software Project
Management (Lecture 9)
Dr. R. Mall
1
Organization of this
Lecture:
Introduction to Project Planning
Software Cost Estimation
Cost Estimation Models
Software Size Metrics
Empirical Estimation
Heuristic Estimation
COCOMO
Staffing Level Estimation
Effect of Schedule Compression on Cost
Summary
2
Introduction
Many software projects fail:
due to faulty project
management practices:
It is important to learn
different aspects of software
project management.
3
Introduction
Goal of software project
management:
enable a group of engineers to
work efficiently towards successful
completion of a software project.
4
Responsibility of project
managers
Project proposal writing,
Project cost estimation,
Scheduling,
Project staffing,
Project monitoring and control,
Software configuration management,
Risk management,
Managerial report writing and presentations, etc.
5
Introduction
A project manager’s activities
are varied.
can be broadly classified into:
project planning,
project monitoring and control
activities.
6
Project Planning
Once a project is found to be
feasible,
project managers undertake
project planning.
7
Project Planning Activities
Estimation:
Effort, cost, resource, and project duration
Project scheduling:
Staff organization:
staffing plans
Risk handling:
identification, analysis, and abatement
procedures
Miscellaneous plans:
quality assurance plan, configuration
management plan, etc. 8
Project planning
Requires utmost care and attention ---
commitments to unrealistic time and
resource estimates result in:
irritating delays.
customer dissatisfaction
adverse affect on team morale
poor quality work
project failure.
9
Sliding Window Planning
Involves project planning over
several stages:
protects managers from making big
commitments too early.
More information becomes
available as project progresses.
Facilitates accurate planning
10
SPMP Document
After planning is complete:
Document the plans:
in a Software Project
Management Plan(SPMP)
document.
11
Organization of SPMP Document
Introduction (Objectives,Major Functions,Performance Issues,Management and Technical
Constraints)
Project Estimates (Historical Data,Estimation Techniques,Effort, Cost, and Project Duration Estimates)
Project Resources Plan (People,Hardware and Software,Special Resources)
Schedules (Work Breakdown Structure,Task Network, Gantt Chart Representation,PERT Chart
Representation)
Risk Management Plan (Risk Analysis,Risk Identification,Risk Estimation, Abatement
Procedures)
Project Tracking and Control Plan
Miscellaneous Plans(Process Tailoring,Quality Assurance)
12
Software Cost Estimation
Determine size of the product.
From the size estimate,
determine the effort needed.
From the effort estimate,
determine project duration, and cost.
13
Software Cost Estimation
Effort Cost
Estimation Estimation
Size Staffing
Estimation Estimation
Duration
Estimation Scheduling
14
Software Cost Estimation
Three main approaches to
estimation:
Empirical
Heuristic
Analytical
15
Software Cost Estimation
Techniques
Empirical techniques:
an educated guess based on past experience.
Heuristic techniques:
assume that the characteristics to be
estimated can be expressed in terms of
some mathematical expression.
Analytical techniques:
derive the required results starting from
certain simple assumptions.
16
Software Size Metrics
LOC (Lines of Code):
Simplest and most widely used
metric.
Comments and blank lines should
not be counted.
17
Disadvantages of Using LOC
Size can vary with coding style.
Focuses on coding activity alone.
Correlates poorly with quality and
efficiency of code.
Penalizes higher level
programming languages, code
reuse, etc.
18
Disadvantages of Using LOC
(cont...)
Measures lexical/textual
complexity only.
does not address the issues of
structural or logical complexity.
Difficult to estimate LOC from
problem description.
So not useful for project planning
19
Function Point Metric
Overcomes some of the shortcomings of
the LOC metric
Proposed by Albrecht in early 80's:
FP=4 #inputs + 5 #Outputs + 4
#inquiries + 10 #files + 10 #interfaces
Input:
A set of related inputs is counted as one input.
20
Function Point Metric
Output:
A set of related outputs is counted as one output.
Inquiries:
Each user query type is counted.
Files:
Files are logically related data and thus can be data
structures or physical files.
Interface:
Data transfer to other systems.
21
Function Point Metric (CONT.)
Suffers from a major drawback:
the size of a function is considered to
be independent of its complexity.
Extend function point metric:
Feature Point metric:
considers an extra parameter:
Algorithm Complexity.
22
Function Point Metric (CONT.)
Proponents claim:
FP is language independent.
Size can be easily derived from problem
description
Opponents claim:
it is subjective --- Different people can
come up with different estimates for the
same problem.
23
Empirical Size Estimation
Techniques
Expert Judgement:
An euphemism for guess made by
an expert.
Suffers from individual bias.
Delphi Estimation:
overcomes some of the problems
of expert judgement.
24
Expert judgement
Experts divide a software product into
component units:
e.g. GUI, database module, data
communication module, billing module,
etc.
Add up the guesses for each of the
components.
25
Delphi Estimation:
Team of Experts and a coordinator.
Experts carry out estimation
independently:
mention the rationale behind their
estimation.
coordinator notes down any
extraordinary rationale:
circulates among experts.
26
Delphi Estimation:
Experts re-estimate.
Experts never meet each other
to discuss their viewpoints.
27
Heuristic Estimation Techniques
Single Variable Model:
Parameter to be Estimated=C1(Estimated
Characteristic)d1
Multivariable Model:
Assumes that the parameter to be
estimated depends on more than one
characteristic.
Parameter to be Estimated=C1(Estimated
Characteristic)d1+ C2(Estimated Characteristic)d2+…
Usually more accurate than single
variable models. 28
COCOMO Model
COCOMO (COnstructive COst MOdel)
proposed by Boehm.
Divides software product
developments into 3 categories:
Organic
Semidetached
Embedded
29
COCOMO Product classes
Roughly correspond to:
application, utility and system programs
respectively.
Data processing and scientific programs
are considered to be application programs.
Compilers, linkers, editors, etc., are utility
programs.
Operating systems and real-time system
programs, etc. are system programs.
30
Elaboration of Product
classes
Organic:
Relatively small groups
working to develop well-understood applications.
Semidetached:
Project team consists of a mixture of
experienced and inexperienced staff.
Embedded:
The software is strongly coupled to complex
hardware, or real-time systems.
31
COCOMO Model (CONT.)
For each of the three product categories:
From size estimation (in KLOC), Boehm provides
equations to predict:
project duration in months
effort in programmer-months
Boehm obtained these equations:
examined historical data collected from a
large number of actual projects.
32
COCOMO Model (CONT.)
Software cost estimation is done
through three stages:
Basic COCOMO,
Intermediate COCOMO,
Complete COCOMO.
33