LECT4 - Software Project Management
LECT4 - Software Project Management
Management
Organization of this Lecture:
Effort Cost
Estimation Estimation
Size Staffing
Estimation Estimation
Duration
Estimation Scheduling
Software Cost Estimation
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.
Software Size Metrics
LOC (Lines of Code):
Simplest among all metrics available to
estimate project size.
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.
Software Cost Estimation
Multivariable Model:
Assumes that the parameter to be estimated depends on
more than one characteristic.
Estimated Resources=c1*e1d1+c2*e2d2+----
e1 and e2 are the basic independent characteristics of the
software already estimated.
c1, c2, d1, d2, are constants.
Multivariable Estimation Models are expected to give more
accurate estimate compared to the Single Variable Models.
COCOMO Model
COCOMO (COnstructive COst MOdel) is a
Constructive Cost Estimation Model proposed by
Boehm.
Organic:
Tdev = 2.5 (Effort)^0.38
Months
Semi-detached:
Tdev = 2.5 (Effort)^0.35
Months
Embedded:
Basic COCOMO Model (CONT.)
Development time
sublinear(slope<1)
me
function of product
size.
b i
When product size 18 Em Sem
increases two 14
times,
development time 30K
60K
does not double.
Si
Time taken:
almost same for all
the three product
categories.
Basic COCOMO Model (CONT.)
Effort is
somewhat
super-
linear(slope
>1) in
problem size.
Basic COCOMO Example
Example
The size of an organic software product has been
estimated to be 32,000 lines of source code. Assume
that the average salary of software engineers
be Rs. 15,000/- per month. Determine the effort
required to develop the software product and the
nominal development time and cost.
Effort = 2.4*(32)^1.05 = 91 PM
Nominal development time = 2.5*(91)^0.38 = 14
months
Cost required to develop the product = 91 х
15,000 = Rs. 1365,000/-
Intermediate COCOMO
Both models:
consider a software product as a single
homogeneous entity:
However, most large systems are made
up of several smaller sub-systems.
Some sub-systems may be considered as
organic type, some may be considered
embedded, etc.
for some the reliability requirements may be
high, and so on.
Complete COCOMO
Cost of each sub-system is estimated separately.
Costs of the sub-systems are added to obtain total
cost.
Reduces the margin of error in the final estimate.
Rayleigh curve
is specified by
two
parameters:
td the time at
which the
curve reaches
its maximum
K the total
area under
the curve.
L=f(K, td)
Rayleigh Curve
Very small number of engineers are needed at the
beginning of a project
carry out planning and specification.
4
F
D 4 6
A 5
1 3 6 7
10 5 H
B 5 3
C E 5
2 G
5
Gantt Chart
Critical path-1 A→D→F→H B→C Slack time 2
days
Critical Path-2 A→E→G→H
Project Duration = 25 days A
Activity
GANTT CHART
B
Activity Predecesso Duration (days)
r
A - 10 C
D
B - 5
C B 3
E
D A, C 4
E A, C 5 F
F D 6
G
G E 5
H F, G 5 H
Risk management
Project risks: risks concern varies forms of
budgetary,
schedule,
personnel,
resource, and
customer-related problems. An important project risk is
schedule slippage.
Technical risks: risks concern
potential design,
implementation,
interfacing,
testing, and
maintenance problems. Most technical risks occur due to
the development team’s insufficient knowledge about the
project.
Business risks: risks include risks of
building an excellent product that no one wants,
losing budgetary or personnel commitments, etc.
Risk assessment:
to rank the risks in terms of their damage causing
potential. p = r * s where
p is the priority with which the risk must
be handled,
r is the probability of the risk becoming
true,
s is the severity of damage caused due
to the risk becoming true.
Risk containment
Risks of a project are assessed, plans must be made to contain
the most damaging and the most likely risks.
Different risks require different containment procedures. Three
main strategies to plan for risk containment:
Avoid the risk: discussing with the customer to change the
requirements to reduce the scope of the work, giving
incentives to the engineers to avoid the risk of manpower
turnover, etc.
Transfer the risk: Involves getting the risky component
developed by a third party, buying insurance cover, etc.
Risk reduction: Planning ways to contain the damage due to
a risk. For example, if there is risk that some key personnel
might leave, new recruitment may be planned.
Risk leverage
Different strategies must be considered for handling a risk, the
project manager must consider the cost of handling the risk and
the corresponding reduction of risk. More formally,
risk leverage = (risk exposure before reduction – risk
exposure after reduction) / (cost of reduction)
Software Configuration Management (SCM)
Configuration of a SW product
Release, version and revision of SW product
Necessity of SCM
Principal activities of SCM
Configuration identification.
Configuration control.
Configuration management tools.
Software Configuration Management
The deliverables of a SW product consist of a number
of objects, e.g.
source code,
design document,
SRS document,
test document(plan and script),
user’s manual, etc.
These objects are modified by many software
engineers through out development cycle.
The state of each object changes as bugs are detected
and fixed during development .
Disadvantage:
team members may waste a lot time arguing about trivial
points:
absence of any authority in the team.
Mixed Control Team
Organization
Draws upon ideas from both:
democratic organization and
chief-programmer team organization.
Communication is limited
to a small group that is most likely to
benefit from it.
Suitable for large organizations.