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*e1d1+----
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:
Tdev = 2.5 (Effort)0.32 Months
Basic COCOMO Model (CONT.)
ed
h
t ac
Effort is Effort
e m
id
e
ed S
somewhat bedd
c
Em ni
super- Or
ga
linear(slope
>1) in
Size
problem size.
Basic COCOMO Model (CONT.)
Development time
sublinear(slope<1)
function of product
ed
size. Dev. Time
ed
de
d
de
ta ch
Em
b mi
When product size 18 Months Se
Effort = 2.4*(32)1.05 = 91 PM
Nominal development time = 2.5*(91)0.38 = 14
months
Cost required to develop the product = 14 х
15,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.
ES = Early Start
EF = Early Finish
LS = Late Start
LF = Late Finish
Early Start and Early Finish
Indicates the earliest time an activity on a network path
can start and earliest it can finish.
If you decide to start an activity on its early start (assuming
previous activities on that network path are completed on
their early finishes), that activity can finish on its early
finish (if it does not slip).
And when the last activity on a network path is completed
by its early finish, you have all the resources of those
activities at your disposal to deploy on other high risk
activities.
Calculate ES and EF
• Step-1: Select the critical path. Early start of first activity on
critical path is always 1. Write it at the top left corner of that activity
box (see the image below).
• Step 2: Add its activity duration to this early start number and
reduce it by one. Write the resulting number on the top right corner of
activity box.
• Step 3: Take the subsequent number of this early finish and write
as early start for next activity. Continue this till you reach the end of
critical path.
• Step 4: Select the network path with second highest total
duration, and calculate early starts and finishes. If you find an activity
with early start and finish already written do not overwrite them. Do the
same for remaining network paths.
Early start number is written at the
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
Days
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 .
Democratic
Team
Chief Programmer
team
Mixed team organization
Chief Programmer Team
A senior engineer provides technical leadership:
partitions the task among the team members.
verifies and integrates the products developed by
the members.
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.