Software Project Management PDF
Software Project Management PDF
Management
By
Anil Kumar Dudyala
Source
(Rajib Mall)
1
Outline of the 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
3
Introduction
4
Responsibility of project managers
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
13
Software Cost Estimation
Effort Cost
Estimation Estimation
Size
Staffing
Estimation
Estimation
Duration
Estimation Scheduling
14
Software Size Metrics
• LOC (Lines of Code):
• Simplest and most widely used metric.
• Comments and blank lines should not
be counted.
15
Disadvantages of Using LOC
18
Refinement of function point
entities table
Type Simple Average Complex
Input
3 4 6
Output
4 5 7
Inquiry
3 4 6
Number of Files
7 10 15
Number of
interfaces
5 7 10
19
Function Point Metric
• Albrecht identified 14 parameters that influence the
development effort.
• These 14 parameters are assigned a value from 0 to 6.
• The resulting sum is called the degree of influence.
• TCF = (0.65 +0.01*DI) DI would be in a range of
0.65 to 1.35.
• Finally, FP is computed as UFP*TCF.
20
Function Point Metric
• Input:
• A set of related inputs is counted as one input.
• Output:
• A set of related outputs is counted as one output.
• Inquiries:
• Each user query type is counted.
21
Function Point Metric
• Files:
• Files are logically related data and thus can be data
structures or physical files.
• Interface:
• Data transfer to other external systems.
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.
24
Software Cost Estimation
• Three main approaches to
estimation:
• Empirical
• Heuristic
• Analytical
25
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. 26
Empirical Size Estimation Techniques
• Expert Judgement:
• An euphemism for guess made by an
expert.
• Suffers from Human error and
individual bias.
• Delphi Estimation:
• overcomes some of the problems of
expert judgement.
27
Expert judgement
• Experts divide a software product into
component units:
• e.g. GUI, database module, data
communication module, billing module,
etc.
30
Heuristic Estimation Techniques
• Single Variable Model:
• Parameter to be Estimated=C1(Estimated Characteristic)d1
• Estimated Parameter = c1 * ed1
• 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+…
• Estimated resource = c1 * epd11 + c2 * epd22 + ....
• Usually more accurate than single variable models.
31
COCOMO Model
• COCOMO (COnstructive COst MOdel) proposed by
Boehm.
32
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.
33
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.
34
COCOMO Model (CONT.)
35
COCOMO Model (CONT.)
36
Basic COCOMO Model (CONT.)
• Organic :
• Effort = 2.4 (KLOC)1.05 PM
• Semi-detached:
• Effort = 3.0(KLOC)1.12 PM
• Embedded:
• Effort = 3.6 (KLOC)1.20 PM
38
Development Time Estimation
• 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
39
Basic COCOMO Model (CONT.)
Size
40
Basic COCOMO Model (CONT.)
• Development time
• sublinear function of product
size. Dev. Time
product categories.
41
Basic COCOMO Model (CONT.)
43
Example
• The size of an organic software product has
been estimated to be 32,000 lines of source
code.
• Effort = 2.4*(32)1.05 = 91 PM
• Nominal development time = 2.5*(91)0.38= 14
months
44
Intermediate COCOMO
• Basic COCOMO model assumes
• effort and development time depend on product size alone.
• However, several parameters affect effort and
development time:
• Reliability requirements
• Availability of CASE tools and modern facilities to the
developers
• Size of data to be handled
45
Intermediate COCOMO
• For accurate estimation,
• the effect of all relevant parameters
must be considered:
• Intermediate COCOMO model
recognizes this fact:
• refines the initial estimate obtained by the
basic COCOMO by using a set of 15
cost drivers (multipliers).
46
Intermediate COCOMO (CONT.)
48
Intermediate COCOMO (CONT.)
49
Shortcoming of basic and intermediate
COCOMO models
• 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.
50
Complete COCOMO
53
Application composition Model
• Effort is estimated as follows,
• No. of screens, reports, 3GL components of SRS
• Determine complexity level of each screen complexity
based on the following table.
54
• Determine complexity level of each report complexity
based on the following table.
55
• Estimate the percentage of reuse expected in a system and
compute New Object points. (NOP)
• Determine the productivity rate, Prod = NOP/PM.
• Finally PM is computed as E = NOP/Prod.
• Early design Model
• Seven cost drivers that characterize the post- architecture
model are used.
• Effort = KSLOC x PIi costdriveri
56
• Post architecture model
• Differs from original COCOMO model by the choice of
the cost drivers.
• Effort = a x KSLOCb x PIi costdriveri
• Where b ranges from 1.01 to 1.26.
57
Halstead's Software Science
• An analytical technique to
estimate:
• size,
• development effort,
• development time.
58
Halstead's Software Science
• Halstead used a few primitive program parameters
• number of operators and operands
• Derived expressions for:
• over all program length,
• potential minimum volume
• actual volume,
• language level,
• effort, and
• development time.
59
Staffing Level Estimation
• Number of personnel required during
any development project:
• not constant.
• Norden in 1958 analyzed many R&D
projects, and observed:
• Rayleigh curve represents the number
of full-time personnel required at any
time.
60
Rayleigh Curve
• Rayleigh curve is Rayleigh Curve
specified by two
parameters:
Effort
• td the time at which
the curve reaches its
maximum
• K the total area under td
the curve.
Time
• L=f(K, td)
61
Rayleigh Curve
• Very small number of engineers are
needed at the beginning of a project
• carry out planning and specification.
• As the project progresses:
• more detailed work is required,
• number of engineers slowly increases
and reaches a peak.
62
Rayleigh Curve
• From the Rayleigh curve observe
that:
• approximately 40% of the area under the Rayleigh curve is
to the left of td and 60% to the right.
63
Rayleigh Curve
• Putnam observed that:
• the time at which the Rayleigh curve
reaches its maximum value
• corresponds to system testing and product
release.
• After system testing,
• the number of project staff falls till
product installation and delivery.
64
Putnam’s Work:
• In 1976, Putnam studied the problem of staffing of
software projects:
• observed that the level of effort required in software
development efforts has a similar envelope.
• found that the Rayleigh-Norden curve
• relates the number of delivered lines of code to effort and
development time.
65
Putnam’s Work :
(CONT.)
67
Effect of Schedule Change on Cost
• Using the Putnam's expression for L,
K = L3/(C3k t4d)
Or, K = C/ t4d
• For the same product size, C = L3/C3k
is a constant.
• Or, K1/K2 = t4d2/ t4d1
68
Effect of Schedule Change on Cost (CONT.)
• Observe:
• a relatively small compression in delivery
schedule
• can result in substantial penalty on human effort.
• Also, observe:
• benefits can be gained by using fewer people
over a somewhat longer time span.
69
Example
• If the estimated development time is 1
year, then in order to develop the
product in 6 months,
• the total effort and hence the cost
increases 16 times.
• In other words,
• the relationship between effort and the
chronological delivery time is highly
nonlinear.
70
Effect of Schedule Change on Cost (CONT.)
71
Effect of Schedule Change on Cost (CONT.)
• Boehm observed:
• “There is a limit beyond which the
schedule of a software project cannot
be reduced by buying any more
personnel or equipment.”
• This limit occurs roughly at 75% of
the nominal time estimate.
72
Effect of Schedule Change on Cost
(CONT.)
73
Jensen Model
• Jensen model is very similar to
Putnam model.
• attempts to soften the effect of
schedule compression on effort
• makes it applicable to smaller and
medium sized projects.
74
Jensen Model
• Jensen proposed the equation:
• L = CtetdK1/2
• 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.
75
Project scheduling
• Project scheduling involves deciding which tasks would be
taken up when.
• In order to schedule the project activities, a spm needs to
do the following,
76
4. Establish the most likely estimates for the time durations
necessary to complete the activities.
78
Work breakdown structure
80
Activity networks
84
Gantt chart
• Gantt charts are mainly used to allocate resources like staff,
hardware, software to activities.
• The bars are drawn along a time line.
85
Gantt chart
• Each bar consists of a white part and a shaded part.
• The shaded part of the bar shows the length of time
each task is estimated to take.
• The white part shows the slack time.
86
PERT
• PERT (Project Evaluation and Review Technique) charts
consist of a network of boxes(activities) and
arrows(dependencies).
• The boxes of PERT charts are usually annotated with the
pessimistic, likely, and optimistic estimates for every task.
87
PERT
88
Project Monitoring and Control
• Project manage designates certain key events such as
completion of some important activities as
Milestones.
• A critical path in this graph is a path along which
every milestone is critical to meet the project
deadline.
89
Earned Value Analysis
• A technique for performing quantitative analysis of
progress of a project.
91
Earned Value Analysis(EVA)
• BCWS values for all work tasks are summed to derive
the budget at completion(BAC).
• BAC = Σ (BCWS(k)) for all tasks k
92
Earned Value Analysis(EVA)
• Given the BCWS, BAC and BCWP values, following
progress indicators can be computed:
• Schedule Performance index (SPI) = BCWP/BCWS
• Schedule variance (SV) = BCWP-BCWS
• Percent scheduled for completion = BCWS/BAC
• Percent Complete = BCWP/BAC
93
Earned Value Analysis(EVA)
• Actual cost of work performed (ACWP) is the sum
of effort actually expended on work tasks that have
been completed by a point in time on the project
schedule.
94
Earned Value Analysis(EVA)
• An SPI value close to 1.0 indicates efficient execution
of the project schedule.
• Specialization
• Ease of staffing
• Good documentation is produced
• different phases are carried out by
different teams of engineers.
• Helps identify errors earlier.
97
Project Organization
10
1
Democratic Teams
• Disadvantage:
• team members may waste a lot
time arguing about trivial points:
• absence of any authority in the
team.
10
2
Chief Programmer Team
10
5
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.
10
6
Team Organization
Democratic Team
Chief Programmer team
10
7
Mixed team organization
10
8
Qualities of a Software Developer
• Familiarity with SE principles
• Good technical knowledge of the project areas
• Good Programming abilities
• Good communication skills like oral, written,
interpersonal skills
• High motivation
• Sound knowledge of fundamentals of CS
• Intelligence, Ability to work in a team, Discipline.
109
Risk Management
• A risk is any anticipated unfavourable event or
circumstance that can occur while a project is
underway.
110
Risk Management
• Risk Identification
• Project risks
• Technical risks
• Business risks
• Risk Assessment
• Prioritise the risks
• P=r*s
• Where, r is likelihood of risk and s is consequence of risk
111
Risk Management
• Risk Containment
• Avoid the risk
• Discuss with customer to change requirements
• Transfer the risk
• Component developed by third party, buying insurance
cover.
• Risk reduction
• Is done with the help of risk leverage given as
= risk exposure before reduction – risk exposure after reduction
Cost of reduction
112
Software Configuration
Management
• In software development there would be numerous
intermediate outputs, checking the state of these
outputs at any point of time is called Software
Configuration.
113
Software Configuration
Management
• SCM addresses the following problems
• Inconsistency problem
• Problems associated with concurrent access
• Providing a stable development environment
• System accounting and maintaining status information
114
Summary
• We discussed the broad
responsibilities of the project
manager:
• Project planning
• Project Monitoring and Control
11
5
Summary
• To estimate software cost:
• Determine size of the product.
• Using size estimate,
• determine effort needed.
• From the effort estimate,
• determine project duration, and cost.
11
6
Summary (CONT.)
• Cost estimation techniques:
• Empirical Techniques
• Heuristic Techniques
• Analytical Techniques
• Empirical techniques:
• based on systematic guesses by experts.
• Expert Judgement
• Delphi Estimation
11
7
Summary (CONT.)
• Heuristic techniques:
• assume that characteristics of a software product can be
modeled by a mathematical expression.
• COCOMO
• Analytical techniques:
• derive the estimates starting with some basic assumptions:
• Halstead's Software Science
11
8
Summary (CONT.)
• The staffing level during the life cycle of a software
product development:
• follows Rayleigh curve
• maximum number of engineers required during testing.
11
9
Summary (CONT.)
12
0
Summary (CONT.)
12
1