SE4
SE4
1
Organization of this
Lecture
Responsibilities and activities of a
software project manager
Project planning activity
Estimation techniques
2
Software Project Management
3
SPM COMPLEXITIES
4
SPM COMPLEXITIES
Responsibilities of a project
manager
Project Planning
Project Monitoring
6
RESPONSIBILITIES OF A SPM
8
Project Planning
9
Project Planning
The effectiveness of all later planning activities such as
scheduling and staffing are dependent on the accuracy with
which these three estimations have been made.
Scheduling: After all the necessary project parameters have
been estimated, the schedules for manpower and other resources
are developed.
Staffing: Staff organisation and staffing plans are made.
Risk management: This includes risk identification, analysis,
and abatement planning.
Miscellaneous plans: This includes making several other plans
such as quality assurance plan, and configuration management
plan, etc.
10
Sliding Window Planning
Very difficult to make accurate plans for large
projects .
During the span of the project, the project
parameters, scope of the project, project staff,
etc., often change drastically resulting in the
initial plans going haywire.
Planning a project over a number of stages
protects managers from making big
commitments at the start of the project.
This technique of staggered planning is known
as sliding window planning.
11
Sliding Window Planning
13
Metrics for Project Size Estimation
14
Metrics for Project Size Estimation
LOC metric has several shortcomings when
used to measure problem size.
LOC is a measure of coding activity alone.
LOC count depends on the choice of specific instructions
LOC measure correlates poorly with the quality and efficiency of the
code
LOC metric penalises use of higher-level programming languages
and code reuse
LOC metric measures the lexical complexity of a program and does
not address the more important issues of logical and structural
complexities:
It is very difficult to accurately estimate LOC of the final program
from problem specification:
15
Metrics for Project Size Estimation
16
Metrics for Project Size Estimation
18
Metrics for Project Size Estimation
19
Metrics for Project Size Estimation
20
Metrics for Project Size Estimation
21
Metrics for Project Size Estimation
Function point
Function point and feature point metrics
claim that these two metrics are
language-independent and can be easily
computed from the SRS document during
project planning stage itself
22
PROJECT ESTIMATION
TECHNIQUES
23
PROJECT ESTIMATION
TECHNIQUES
25
PROJECT ESTIMATION
TECHNIQUES
26
software maintenance efforts
27
COCOMO— COnstructive COst
estimation MOdel
29
COCOMO— COnstructive COst
estimation MOdel
Organic
Semidetached
Embedded
30
COCOMO— COnstructive COst
estimation MOdel
Organic
if the project deals with developing a well-
understood application program, the size of the
development team is reasonably small, and the
team members are experienced in developing
similar types of projects
31
COCOMO— COnstructive COst
estimation MOdel
32
COCOMO— COnstructive COst
estimation MOdel
The basic model is used for quick and rough cost calculations
for the software. It calculates the effort, time, and number of
people required to use a project's kLOC (kilo lines of code).
The formulae to calculate these entities are:
34
Basic COCOMO—
35
Basic COCOMO Example
36
Basic COCOMO Example
Assume that the size of an organic type software product has been
estimated to be 32,000 lines of source code. Assume that the average
salary of a software developer is `15,000 per month. Determine the effort
required to develop the software product, the nominal development time,
and the cost to develop the product.
37
Basic COCOMO
Person-Month Curve
Person-month (PM) is considered to be an appropriate unit for
measuring effort, because developers are typically assigned to
a project for a certain number of months
38
Basic COCOMO
40
Basic COCOMO
Cost Estimation
Project cost can be obtained by multiplying the
estimated effort (in man-month) by the manpower
cost per month.
A project would incur several other types of
costs which we shall refer to as the
overhead costs.
The overhead costs would include the costs due to
hardware and software required for the project and the
company overheads for administration, office space,
electricity, etc. 41
Basic COCOMO
43
Intermediate COCOMO
46
Intermediate COCOMO
Cost drivers
The cost drivers and their attributes are as follows:
Product attributes
The product attributes are as follows:
Required software reliability extent
Size of the application database
The complexity of the product
47
Intermediate COCOMO
Cost drivers
Computer/Hardware attributes
The hardware attributes are as follows:
Run time performance constraints
Memory constraints
The volatility of the virtual machine environment
Required turnabout time
48
Intermediate COCOMO
Cost drivers
Personal attributes
The personal attributes are as follows:
Analyst capabilities
Software engineering capabilities
Applications experience
Virtual machine experience
Programming language experience
49
Intermediate COCOMO
Cost drivers
Development environment/Project attributes
The project attributes are as follows:
Use of software tools
Application of software engineering methods
Required development schedule
50
Intermediate COCOMO
Example
Suppose a project was estimated to be made in 400 kLOC. let's
calculate its effort, time, and the number of people required while
considering the project is of organic type and has a nominal
complexity. The developer has a high virtual machine experience.
51
Detailed or Complete
COCOMO model
52
Detailed or Complete
COCOMO model
The detailed model is a combination of both the basic model and
the intermediate model.
The model is decomposed into multiple modules, and the COCOMO
model is applied to them individually.
This model uses various effort multipliers for each cost driver
attribute, and the cost is calculated at each stage separately.
The six stages of the detailed model are as follows:
Planning and requirements
System design
Detailed design
Module code and test
Integration and test
Cost constructive model
53
Detailed or Complete
COCOMO model
Example
A distributed management information system (MIS)
product for an organisation having offices at several
places across the country can have the following sub-
component.
Database part- semi detached
Graphical user interface (GUI)part-Organic
Communication part-- embedded
54
COCOMO II
55
COCOMO II
COCOMO 2 provides three models to arrive at increasingly accurate
cost estimations.
These can be used to estimate project costs at different phases of
the software product.
As the project progresses, these models can be applied at the
different stages of the same project.
Application composition model: This model as the name suggests, can be
used to estimate the cost for prototype development.
Early design model: This supports estimation of cost at the architectural
design stage.
Post-architecture model: This provides cost estimation during detailed
design and coding stages.
56
COCOMO II
59
HALSTEAD’S SOFTWARE
SCIENCE
Length and Vocabulary
length N = N1 + N2
program vocabulary η = η1 + η2.
Program Volume
V = N log2 η
Potential Minimum Volume
The potential minimum volume V* is defined as the volume of
the most succinct program.
V* = (2 + η2) log2(2 + η2)
The program level L is given by L = V*/V
The higher the level of a language, the less effort it
takes to develop a program using that language.
60
HALSTEAD’S SOFTWARE
SCIENCE
Length Estimation
Halstead suggests a way to determine the length of a
program using the number of unique operators and
operands used in the program.
61
HALSTEAD’S SOFTWARE
SCIENCE example
62
HALSTEAD’S SOFTWARE
SCIENCE example
63
HALSTEAD’S SOFTWARE
SCIENCE example
64
HALSTEAD’S SOFTWARE
SCIENCE example
65
STAFFING LEVEL ESTIMATION
66
STAFFING LEVEL ESTIMATION
Norden’s Work
Norden concluded that the staffing pattern for any R&D project
starting from a low level, increases until it reaches a peak value. It
then starts to diminish. This pattern can be approximated by the
Rayleigh distribution curve.
67
STAFFING LEVEL ESTIMATION
Norden’s Work
Norden represent the Rayleigh curve as
where,
E is the effort required at time t.
E is an indication of the number of developers
K is the area under the curve, and
td is the time at which the curve attains its maximum
value.
It must be remembered that the results of Norden are applicable to
general R&D projects 68
STAFFING LEVEL ESTIMATION
Putnam’s Work
software development projects has characteristics very
similar to any other R&D projects.
Only a small number of developers are needed at the
beginning of a project to carry out the planning and
specification tasks. As the project progresses and more
detailed work is performed, the number of developers
increases and reaches a peak during product testing.
After implementation and unit testing, the number of
project staff falls
69
STAFFING LEVEL ESTIMATION
Putnam’s Work
where
K is the total effort expended (in PM) in the product development
and
L is the product size in KLOC
td corresponds to the time of system and integration and testing.
Therefore, td can be approximately considered as the time required
to develop the software.
Ck is the state of technology constant and reflects constraints that
impede the progress of the programmer.
70
STAFFING LEVEL ESTIMATION
Putnam’s Work
Typical values of
Ck = 2 for poor development environment (no
methodology, poor documentation, and review, etc.),
Ck = 8 for good software development environment
(software engineering principles are adhered to),
Ck = 11 for an excellent environment (in addition to
following software engineering principles, automated
tools and techniques are used).
71
STAFFING LEVEL ESTIMATION
Jansen’s Model
Jensen model is very similar to Putnam model
It attempts to soften the effect of schedule compression
on effort to make it applicable to smaller and medium
sized projects.
where,
Cte is the effective technology constant,
td is the time to develop the software, and
K is the effort needed to develop the software.
72
SCHEDULING
75
SCHEDULING
Activity Networks
An activity network shows the different activities making up
a project, their estimated durations, and their
interdependencies.
Two equivalent representations for activity networks are
possible and are in use:
Activity on Node (AoN): In this representation, each activity is represented by
a rectangular (some use circular) node and the duration of the activity is shown
alongside each task in the node. The inter-task dependencies are shown using
directional edges
Activity on Edge (AoE): In this representation tasks are associated with the
edges. The edges are also annotated with the task duration. The nodes in the
graph represent project milestones
76
SCHEDULING
77
SCHEDULING
78
SCHEDULING
79
SCHEDULING
80
SCHEDULING
Critical Path Method (CPM)
Minimum time (MT): It is the minimum time required to complete the project.
It is computed by determining the maximum of all paths from start to finish.
Earliest start (ES): It is the time of a task is the maximum of all paths from the
start to this task. The ES for a task is the ES of the previous task plus the
duration of the preceding task.
Latest start time (LST): It is the difference between MT and the maximum of
all paths from this task to the finish. The LST can be computed by subtracting the
duration of the subsequent task from the LST of the subsequent task.
Earliest finish time (EF): The EF for a task is the sum of the earliest start time
of the task and the duration of the task.
Latest finish (LF): LF indicates the latest time by which a task can finish
without affecting the final completion time of the project. A task completing
beyond its LF would cause project delay. LF of a task can be obtained by
subtracting maximum of all paths from this task to finish from MT.
Slack time (ST): The slack time (or float time) is the total time that a task may
be delayed before it will affect the end time of the project. The slack time
indicates the ”flexibility” in starting and completion of tasks. ST for a task is LS-
ES and can equivalently be written as LF-EF.
81
SCHEDULING
82
SCHEDULING
83
SCHEDULING
84
SCHEDULING
Project Estimation Review Technique
(PERT)
Project managers know that there is considerable uncertainty
about how much time a task would exactly take to complete.
The duration assigned to tasks by the project manager are
after all only estimates.
PERT charts can be used to determine the probabilistic times
for reaching various project mile stones, including the final
mile stone.
PERT charts like activity networks consist of a network of
boxes and arrows. The boxes represent activities and the
arrows represent task dependencies.
85
SCHEDULING
Project Estimation Review Technique
(PERT)
Each task is annotated with three
estimates:
Optimistic (O): The best possible case task completion time.
Most likely estimate (M): Most likely task completion time.
Worst case (W): The worst possible case task completion time.
GANTT CHARTS
Gantt chart has been named after its developer Henry Gantt.
A Gantt chart is a form of bar chart.
The vertical axis lists all the tasks to be performed. The bars
are drawn along the y-axis, one for each task.
87
SCHEDULING
GANTT CHARTS
The shaded part of the bar shows the length of time each
task is estimated to take.
The unshaded part shows the slack time or lax time.
88
Risk Management
89
Risk Management
Reactive approaches
Reactive approaches take no action until an unfavourable event occurs.
Once an unfavourable event occurs, these approaches try to contain the
adverse effects associated with the risk and take steps to prevent future
occurrence of the same risk events.
Proactive approaches
The proactive approaches try to anticipate the possible risks that the
project is susceptible to.
After identifying the possible risks, actions are taken to eliminate the risks.
If a risk cannot be avoided, these approaches suggest making plans to
contain the effect of the risk.
90
Risk Management
❖ Risk identification
❖ The project manager needs to anticipate the risks in a project as early as
possible. As soon as a risk is identified, effective risk management plans
are made, so that the possible impact of the risks is minimised.
❖ There are three main categories of risks which can affect a software
project: project risks, technical risks, and business risks.
❖ Project risks: Project risks concern various forms of budgetary, schedule,
personnel, resource, and customer-related problems.
❖ Technical risks: Technical risks concern potential design, implementation,
interfacing, testing, and maintenance problems. Technical risks also include
ambiguous specification,incomplete specification, changing specification,
technical uncertainty, and technical obsolescence. Most technical risks occur
due the development team’s insufficient knowledge about the product.
❖ Business risks: This type of risks includes the risk of building an excellent
product that no one wants, losing budgetary commitments, etc.
91
Risk Management
Risk Assessment
Based on these two factors, the priority of each risk can be computed as
follows: p=r×s
where, p is the priority with which the risk must be handled.
92
Risk Management
Risk Mitigation
93
Risk Management
Risk Mitigation
Avoid the risk: Risks can be avoided in several ways. Risks
often arise due to project constraints and can be avoided by
suitably modifying the constraints.
The different categories of constraints that usually give rise to
risks are:
Process-related risk: These risks arise due to aggressive work
schedule, budget, and resource utilisation.
Product-related risks: These risks arise due to commitment to
challenging product features (e.g. response time of one second, etc.),
quality, reliability, etc.
Technology-related risks: These risks arise due to commitment to use
certain technology (e.g., satellite communication).
94
Risk Management
Risk Mitigation
Transfer the risk: This strategy involves getting the risky
components developed by a third party, buying insurance cover,
etc.
Risk reduction: This involves planning ways to contain the
damage due to a risk. There can be several strategies to cope up
with a risk. To choose the most appropriate strategy for handling
a risk, the project manager must consider the cost of handling
the risk and the corresponding reduction of risk.
95
Thank you!!!
96