Rajib Mall Lecture Notes
Rajib Mall Lecture Notes
Dr. R. Mall
Introduction
Many software projects fail:
due to faulty project management practices:
It is important to learn different aspects of software project management.
Introduction
Goal of software project management:
enable a group of engineers to work efficiently towards successful completion of a software project.
Introduction
A project managers 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.
Miscellaneous plans:
identification, analysis, and abatement procedures quality assurance plan, configuration management plan, etc.
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
SPMP Document
After planning is complete:
Document the plans: in a Software Project Management Plan(SPMP) document.
11
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)
12
13
Scheduling
14
Empirical techniques:
Heuristic techniques:
Analytical techniques:
assume that the characteristics to be estimated can be expressed in terms of some mathematical expression.
derive the required results starting from certain simple assumptions.
16
17
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
20
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
(CONT.)
(CONT.)
Opponents claim:
it is subjective --- Different people can come up with different estimates for the same problem.
23
Expert Judgement:
Delphi Estimation:
Expert judgement
Experts divide a software product into component units:
e.g. GUI, database module, data communication module, billing module, etc.
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
Multivariable Model:
Assumes that the parameter to be estimated depends on more than one characteristic.
28
COCOMO Model
COCOMO (COnstructive COst MOdel) proposed by Boehm. Divides software product developments into 3 categories:
Organic Semidetached Embedded
29
Semidetached:
Project team consists of a mixture of experienced and inexperienced staff. The software is strongly coupled to complex hardware, or real-time systems.
Embedded:
31
COCOMO Model
(CONT.)
equations to predict:
COCOMO Model
(CONT.)
33
(CONT.)
KLOC is the estimated kilo lines of source code, a1,a2,b1,b2 are constants for different categories of software products, Tdev is the estimated time to develop the software in months, Effort estimation is obtained in terms of 34
Organic :
Effort = 2.4 (KLOC)1.05 PM
Semi-detached:
Effort = 3.0(KLOC)1.12 PM
Embedded:
Effort = 3.6 (KLOC)1.20PM
35
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
36
(CONT.)
37
(CONT.)
18 Months 14 Months
Time taken:
almost same for all the three product categories.
Size
30K
60K
38
(CONT.)
39
(CONT.)
Development time is roughly the same for all the three categories of products:
For example, a 60 KLOC program can be developed in approximately 18 months
regardless of whether it is of organic, semidetached, or embedded type.
There is more scope for parallel activities for system and application programs,
than utility programs.
40
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
41
Intermediate COCOMO
Basic COCOMO model assumes
effort and development time depend on product size alone.
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).
43
Intermediate COCOMO
(CONT.)
Intermediate COCOMO
(CONT.)
Intermediate COCOMO
(CONT.)
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.
47
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.
48
50
Rayleigh Curve
Rayleigh curve is specified by two parameters: Effort
td the time at which the curve reaches its maximum K the total area under the curve. Rayleigh Curve
td
Time
L=f(K, td)
53
Putnams 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.
54
Putnams Work
(CONT.)
Putnam analyzed a large number of army projects, and derived the expression: L=CkK1/3td4/3
K is the effort expended and L is the size in KLOC. td is the time to develop the software. Ck is the state of technology constant
reflects factors that affect programmer productivity.
55
Putnams Work
(CONT.)
Rayleigh Curve
Very small number of engineers are needed at the beginning of a project
carry out planning and specification.
Rayleigh Curve
Putnam observed that:
the time at which the Rayleigh curve reaches its maximum value
corresponds to system testing and product release.
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.
59
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.
61
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.
62
Putnam estimation model works reasonably well for very large systems,
but seriously overestimates the effort for medium and small systems.
63
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.
64
If a project manager accepts a customer demand to compress the development time by more than 25%
very unlikely to succeed.
every project has only a limited amount of parallel activities sequential activities cannot be speeded up by hiring any number of additional engineers. many engineers have to sit idle.
65
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.
66
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.
67
Organization Structure
Functional Organization:
Engineers are organized into functional groups, e.g.
specification, design, coding, testing, maintenance, etc.
Project Organization
Engineers get assigned to a project for the entire duration of the project
Advantages:
Same set of engineers carry out all the phases Engineers save time on learning details of every project. Leads to job rotation
70
Team Structure
Problems of different complexities and sizes require different team structures:
Chief-programmer team Democratic team Mixed organization
71
Democratic Teams
Suitable for:
small projects requiring less than five or six engineers research-oriented projects
Democratic Teams
Democratic organization provides
higher morale and job satisfaction to the engineers therefore leads to less employee turnover.
73
76
77
Communication is limited
to a small group that is most likely to benefit from it.
Team Organization
79
80
Summary
We discussed the broad responsibilities of the project manager:
Project planning Project Monitoring and Control
81
Summary
To estimate software cost:
Determine size of the product. Using size estimate,
determine effort needed.
82
Summary
(CONT.)
Empirical techniques:
based on systematic guesses by experts.
Expert Judgement Delphi Estimation
83
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
84
Summary
(CONT.)
The staffing level during the life cycle of a software product development:
follows Rayleigh curve maximum number of engineers required during testing.
85
Summary
(CONT.)
86
Summary
(CONT.)
87