Feasibility Study-Merged
Feasibility Study-Merged
D. P. Mohapatra
NIT Rourkela
1
Life Cycle Model: Milestones
2
Life Cycle and Project Management
• When a life cycle model is
followed:
–The project manager can at any time
fairly accurately tell,
•At which stage (e.g., design, code,
test, etc.) the project is.
3
Project Management Without Life Cycle Model
–V model,
–Evolutionary, Traditional models
–Prototyping
–Spiral model,
–Agile models
6
• Software life cycle (or software process):
–Series of identifiable stages that a
software product undergoes during its
life time:
• Feasibility study
• Requirements analysis and specification,
• Design,
• Coding, Software Life Cycle
• Testing
• Maintenance. 7
Classical Waterfall Model
• Classical waterfall model divides life
cycle into following phases:
–Feasibility study, Conceptualize
Retire Specify
–Requirements analysis and
Design
Maintain
specification,
–Design, Deliver Code
Test
–Coding and unit testing,
–Integration and system testing,
–Maintenance. 8
Classical Waterfall Model
Feasibility Study
Coding
Testing
Maintenance
9
Relative Effort for Phases
• Phases between feasibility study
and testing 60
50
–Called development phases. 40
Relative Effort
• Among all life cycle phases 30
20
–Maintenance phase consumes 10
maximum effort. 0
Maintnce
Design
Test
Coding
Req. Sp
• Among development phases,
–Testing phase consumes the
maximum effort.
• Most organizations usually define:
–Standards on the outputs (deliverables) produced
at the end of every phase
–Entry and exit criteria for every phase.
• They also prescribe methodologies for:
–Specification,
Process Model
–Design,
–Testing,
–Project management, etc.
Feasibility Study
Economic
feasibility
(also called
cost/benefit
feasibility)
12
• Main aim of feasibility study: determine
whether developing the software is:
– Financially worthwhile Feasibility Study
– Technically feasible.
First Step
• Roughly understand what customer wants:
–Data which would be input to the system,
–Processing needed on these data,
–Output data to be produced by the system,
–Various constraints on the behavior of the
system. 13
• SPF Scheme for CFL
• CFL has a large number of employees, exceeding
50,000.
• Majority of these are casual labourers
• Mining being a risky profession:
– Casualties are high
Case Study
• Though there is a PF:
– But settlement time is high
• There is a need of SPF:
– For faster disbursement of benefits
14
Feasibility: Case Study
• Manager visits main office, finds out the
main functionalities required
• Visits mine site, finds out the data to be
input
• Suggests alternate solutions
• Determines the best solution
• Presents to the CFL Officials
• Go/No-Go Decision
15
Activities During Feasibility Study
• Work out an overall understanding of the
problem.
• Formulate different solution strategies.
• Examine alternate solution strategies in
terms of:
• resources required,
• cost of development, and
• development time. 16
• Perform a cost/benefit analysis:
–Determine which solution is the best.
–May also find that none of the
solutions is feasible due to:
• high cost, Activities during
Feasibility Study
• resource constraints,
• technical reasons.
17
Cost benefit analysis (CBA)
• Need to identify all costs --- these could be:
– Development costs
– Set-up
– Operational costs
• Identify the value of benefits
18
The business case
• Benefits of delivered
project must outweigh
Benefits
costs
Costs • Costs include:
- Development
Rs - Operation
Rs • Benefits:
– Quantifiable
– Non-quantifiable
19
The business case
• Feasibility studies should help write a
‘business case’
• Should provide a justification for starting
the project
• Should show that the benefits of the
project will exceed:
– Various costs
• Needs to take account of business risks 20
1. Executive summary
2. Project background:
The focus must be on what, exactly, the project is undertaking, and should
not be confused with what might be a bigger picture.
3. Business opportunity
- What difference will it make? Writing an Effective
- What if we don’t do it?
Business Case
4. Costs
- Should include the cost of development, implementation, training, change
management, and operations.
5. Benefits
Benefits usually presented in terms of revenue generation and cost
reductions.
6. Risks
− Identify risks.
− Explain how these will be managed.
21
Summary
• Discussed how Life Cycle and Project
Management are related.
• Discussed the Relative Effort distribution for
different Phases of SDLC model.
• Explained the different types of feasibility.
• Described the steps of feasibility study.
• Discussed the different activities carried out
during feasibility study.
• Explained feasibility study by taking a case
study.
• Briefly explained C-B Analysis.
• Explained what is business case and how to
write a business case. 22
References
1. Fundamentals of Software Engineering, Rajib
Mall, Fifth Edition, PHI, 2018.
2. Software Project Management, Bob Huges,
Mike Cotterell, Rajib Mall, Fifth Edition, PHI,
2018.
23
Software Project Management
3
Introduction cont…
Goal of software project management:
◦ enable a group of engineers to work efficiently towards
successful completion of a software project.
4
Outline of talk
In this introduction the main questions to be addressed will
be:
◦ What is software project management? Is it really different
from ‘ordinary’ project management?
◦ How do you know when a project has been successful? For
example, do the expectations of the customer/client match
those of the developers?
Why is project management important?
Large amounts of money are spent on ICT e.g. UK
government in 2003-04 spent £2.3 billions on contracts for
ICT and only £1.4 billions on road building
Project often fail – Standish Group claim only a third of ICT
projects are successful. 82% were late and 43% exceeded
their budget.
Poor project management is a major factor in these failures
What is a project?
Some dictionary definitions:
“A specific plan or design”
“A planned undertaking”
“A large undertaking e.g. a public works scheme”
Longmans dictionary
Key points above are planning and size of task
Jobs versus projects
Invisibility
Complexity
Conformity
Flexibility
make software more problematic to build than other
engineered artefacts.
Contract management versus technical
project management
Projects can be:
In-house: clients and developers are employed by the same
organization
Out-sourced: clients and developers employed by different
organizations
‘Project manager’ could be:
◦ a ‘contract manager’ in the client organization
◦ a technical project manager in the supplier/services
organization
Activities covered by project management
Feasibility study
Is project technically feasible and worthwhile from a business point of
view?
Planning
Only done if project is feasible
Execution
Implement plan, but plan may be changed as we go along
The software development life-cycle (ISO 12207)
ISO 12207 life-cycle
Requirements analysis
◦ Requirements elicitation: what does the client need?
◦ Analysis: converting ‘customer-facing’ requirements into
equivalents that developers can understand
◦ Requirements will cover
Functions
Quality
Resource constraints i.e. costs
ISO 12207 life-cycle
Architecture design
◦ Based on system requirements
◦ Defines components of system: hardware, software,
organizational
◦ Software requirements will come out of this
Code and test
◦ Of individual components
Integration
◦ Putting the components together
ISO12207 continued
Qualification testing
◦ Testing the system (not just the software)
Installation
◦ The process of making the system operational
◦ Includes setting up standing data, setting system parameters,
installing on operational hardware platforms, user training etc
Acceptance support
◦ Including maintenance and enhancement
Plans, methods and methodologies
Methodology = a set of methods
Context
Plan
Methods
+ start and end dates for each activity,
A way of working staffing, tools and materials etc
Some ways of categorizing projects
Distinguishing different types of project is important as
different types of task need different project approaches
e.g.
Voluntary systems (such as computer games) versus
compulsory systems e.g. the order processing system in
an organization
Information systems versus embedded systems
Objective-based versus product-based
Product-development versus outsourced
Project Charter
Project Charter is an important high level document that
authorizes the starting of a project and use of the required
resources.
Besides, it outlines the project objectives, deliverables and
the resources required.
It also documents the aspects that are out of scope, and
identifies the main stakeholders, their roles and
responsibilities.
Project Charter cont…
The project charter is usually a short document that is only a
couple of pages long and typically contains the following:
time cost
2
What is management?
This involves the following activities:
Planning – deciding what is to be done
Organizing – making arrangements
Staffing – selecting the right people for the job
Directing – giving instructions
continued…
What is management? cont…
Monitoring – checking on progress
Controlling – taking action to remedy hold-ups
Innovating – coming up with solutions when problems
emerge
Representing – liaising with clients, users, developers and
other stakeholders
Principal project management processes
Principal project management processes
cont…
Fig. shows that project management is carried out over
three well defined stages or processes, irrespective of the
methodology used.
In the project initiation stage, an initial plan is made.
As the project starts, the project is monitored and
controlled to proceed as planned.
Principal project management processes
cont…
However, the initial plan is revised periodically to
accommodate additional details and constraints about the
project as they become available.
Finally, the project is closed. In the project closing stage, all
activities are logically completed and all contracts are
formally closed.
Project Planning
Carried out before development starts.
Important activities:
◦ Estimation
◦ Scheduling
◦ Staffing
◦ Risk management
◦ Miscellaneous plans
Management control
Management control
Data – the raw details
e.g. ‘6,000 documents processed at location X’
Information – the data is processed to produce something
that is meaningful and useful
e.g. ‘productivity is 100 documents a day’
Comparison with objectives/goals
e.g. we will not meet target of processing all documents by 31st
March
continued…..
Management control – cont…
Modelling – working out the probable outcomes of various
decisions
e.g. if we employ two more staff at location X how quickly can we get
the documents processed?
Implementation – carrying out the remedial actions that have
been decided upon
Software development and project
management life cycles
In contrast to the software development life cycle (SDLC),
the project management life cycle typically starts well
before the software development activities start and
continues for the entire duration of the SDLC. This aspect
has schematically been shown in Figure (next slide).
Fig: Project management life cycle versus
software development life cycle
Fig: Project management life cycle versus
software development life cycle
A few examples of the project management processes
carried out by a project manager include
◦ project initiation,
◦ planning, execution,
◦ monitoring,
◦ controlling, and
◦ closing.
As shown in Figure, ‘project life cycle’ is a more generic
term and is often used to denote both software
development life cycle and project management life cycle.
Software development and project
management life cycles cont…
The activities carried out by the developers during
software development life cycle as well as the project
management life cycle are grouped into a number of
phases.
Typical sets of phases and their sequencing in the software
development life cycle and the project management life
cycle have been shown in Figure (next slide)
Fig. Different phases of project management
life cycle and software development life cycle
Fig. Different phases of project management life
cycle and software development life cycle
As can be seen from Figure, the phases of the software
development life cycle are requirements analysis, design,
development, test and delivery.
The different phases of the project management life cycle
are initiation, planning, execution and closing.
Further observe from Figure that by the time the software
development processes start, the initiation phase of the
software project management life cycle is almost complete.
Project Managemet Life Cycle
• Project Initiation
• W5HH Principle
• Project biding
• Project Planning
• Project Execution
• Project Closure
Project Initiation
• The project initiation phase usually starts with project
concept development.
• During concept development the different characteristics
of the software to be developed are thoroughly
understood.
• The different aspects of the project that are investigated
and understood include: the scope of the project, project
constraints, the cost that would be incurred and the
benefits that would accrue.
Project Initiation cont…
• Based on this understanding, a feasibility study is
undertaken to determine whether the project would be
financially and technically feasible.
• This is true for all types of projects, including the in-house
product development projects as well as the outsourced
projects.
Project Initiation cont…
• For example, an organization might feel a need for a
software to automate some of its activities, possibly for
more efficient operation. Based on the feasibility study, the
business case is developed. Once the top management
agrees to the business case, the project manager is
appointed, the project charter is written, and finally the
project team is formed. This sets the ground for the
manager to start the project planning phase.
Project Initiation cont…
• As has already been pointed out, during the project
initiation phase it is crucial for the champions of the
project to develop a thorough understanding of the
important characteristics of the project.
• In his W5HH principle, Barry Boehm summarized the
questions that need to be asked and answered in order to
have an understanding of these project characteristics.
W5HH Principle
• The name of this principle (W5HH) is an acronym
constructed from the first letter of each question. This set
of seven questions is the following:
• Why is the software being built?
• What will be done?
• When will it be done?
• Who is responsible for a function?
• Where are they organizationally located?
• How will the job be done technically and managerially?
• How much of each resource is needed?
Project bidding
• Once an organization's top management is convinced by
the business case, the project charter is developed. For
some categories of projects, it may be necessary to have a
formal bidding process to select a suitable vendor based
on some cost-performance criteria.
• If the project involves automating some activities of an
organization, the organization may either decide to
develop it in-house or may get various software vendors
to bid for the project.
Project bidding
Different types of bidding techniques and their implications
and applicability.
• Request for quotation (RFQ)
• Request for proposal (RFP)
• Request for Information (RFI)
Project planning
An important outcome of the project initiation phase is the
project charter. During the project planning phase, the
project manager carries out several processes and creates
the following documents:
Project plan This document identifies the project tasks,
and a schedule for the project tasks that assigns project
resources and time frames to the tasks.
Resource plan It lists the resources, manpower and
equipment that would be required to execute the project.
Project planning
Financial plan It documents the plan for manpower,
equipment and other costs.
Quality plan Plan of quality targets and control plans are
included in this document,
Risk plan This document lists the identification of the
potential risks, their prioritization and a plan for the
actions that would be taken to contain the different risks..
Project execution
In this phase the tasks are executed as per the project plan
developed during the planning phase.
A series of management processes are undertaken to
ensure that the tasks are executed as per plan.
Monitoring and control processes are executed to ensure
that the tasks are executed as per plan and corrective
actions are initiated whenever any deviations from the plan
are noticed.
Project execution
However, the project plan may have to be revised
periodically to accommodate any changes to the project
plan that may arise on account of change requests, risks
and various events that occur during the project execution.
Quality of the deliverables is ensured through execution of
proper processes.
Once all the deliverables are produced and accepted by
the customer, the project execution phase completes and
the project closure phase starts.
Project closure
It involves completing the release of all the required
deliverables to the customer along with the necessary
documentation.
Agreements with the vendors are terminated and all
pending payments are completed.
Finally, a post implementation review is undertaken to
analyse the project performance and to list the lessons
learnt for use in future projects.
Traditional versus Modern Project
Management
Projects are increasingly being based on either tailoring
some existing product or reusing certain pre-built libraries.
Facilitating and accommodating client feedbacks
Facilitating customer participation in project development
work
Incremental delivery of the product with evolving
functionalities.
Quality management becomes necessary.
Change management becomes important.
Summary
Discussed what is management.
Principal project management processes
Project Planning
Management control
Software development and project management life cycles
Traditional versus Modern Project Management
References
• Financial Feasibility
• Operational Feasibility
Contents of a business case / feasibility
study
1. Introduction/ 5. The benefits
background 6. Outline implementation
2. The proposed plan
project 7. Costs
3. The market 8. The financial case
4. Organizational and 9. Risks
operational 10. Management plan
infrastructure
Contents of a business case cont…
• Introduction/background: describes a problem to be
solved or an opportunity to be exploited.
• The proposed project: a brief outline of the project
scope.
• The market: the project could be to develop a new
product (e.g. a new computer game). The likely demand for
the product in the market needs to be assessed.
Contents of a business case cont…
• Organizational and operational infrastructure: How
the organization would need to change? This would be
important where a new information system application was
being introduced.
• Benefits Normally, these should be expressed in financial
terms. In the end, it is up to the client to assess these – as
they are going to pay for the project.
Contents of a business case cont…
• Outline implementation plan: How the project is going
to be implemented? This should consider the disruption to
an organization that a project might cause.
• Costs: The implementation plan will supply information to
establish these.
• Financial analysis: Combines costs and benefit data to
establish value of the project
Contents of a business case cont…
• Risks: Two types
Project Risk: related to threats to successful project execution.
Business Risk: related to factors threatening the benefits of the
delivered project.
In business case, main focus is on Business Risk.
• Direct or indirect
• Fixed or variable
Categorize various costs and benefits for
analysis
Tangible costs.
• Tangibility refers to the ease with which costs or benefits
can be measured.
• An outlay of cash for a specific item or activity is referred
to as a tangible cost.
• Examples: purchase of hardware or software, personnel
training, and employee salaries.
Categorize various costs and benefits for
analysis cont...
Intangible costs
• Costs that are known to exist but whose financial value cannot be
accurately measured.
• Example: employee morale problems caused by a new system or
lowered company Image.
• In some cases, they are easy to Identify but difficult to measure, e.g. the
cost of breakdown of an online system during banking hours will cause
the bank to loose deposits and waste human resources. But, by how
much? Difficult to measure.
• In some cases, these costs may be difficult even to identity, e.g.
improvement in customer satisfaction due to online systems. ystem.
Categorize various costs and benefits for
analysis cont...
Tangible benefits
• Benefits which can be measured/quantified.
• Examples: Benefits due to completing jobs in fewer hours
or producing reports with no errors.
Categorize various costs and benefits for
analysis cont...
Intangible benefits
• Benefits which cannot be easily measured / quantified.
• Example: More satisfied customers or an improved
corporate image.
• Both tangible and intangible costs and benefits, should
be considered in the evaluation process.
• Management often tends to deal irrationally with
intangibles by ignoring them, which should not be.
Categorize various costs and benefits for
analysis cont...
Direct Costs
• Costs those with which a dollar figure can be directly
associated in a project.
• Easy to quantify in monetary terms.
• For example, the purchase of a box of diskettes for $35 is a
direct cost because we can associate the diskettes with the
dollars expended.
• Other examples: Development cost, setup cost, operational
cost .
Categorize various costs and benefits for
analysis cont...
Direct benefits
• Benefits which can be specifically attributable to the given
project.
• Example: A new online system that can handle 25 percent
more transactions per day.
Categorize various costs and benefits for
analysis cont...
Indirect costs
• These costs are the results of operations that are not
directly associated with a given system or activity. They are
often referred to as overhead.
• Example: Insurance, maintenance, protection of the
computer center from heat and fire, lighting, and air
conditioning.
• But, it is difficult to determine the proportion of each,
attributable to a specific activity.
Categorize various costs and benefits for
analysis cont...
Indirect benefits
• The benefits which are realized as a by-product of
another activity or system.
Net
50,000 100,000 50,000 75,000
profit($)
Pay back period
Year Cash- Accumulated • It is the time taken to break even or pay
flow ($) ($) back the initial investment.
0 -100,000 -100,000
• This is the time it takes to start generating
a surplus of income over the expenditure.
1 10,000 -90,000
• The project with shortest payback period
2 10,000 -80,000 is preferred, as the owner wishes to
minimize the time that a project is “in
3 10,000 -70,000
debt”.
4 20,000 -50,000 • For this example, payback period is year 5.
5 100,000 50,000
Another Example: Four project cash-flow projections
Year Cash-flow Cash-flow Cash-flow Cash-flow
Project 1 ($) Project 2($) Project 3($) Project 4($)
=0.8264
Similarly, the discount factor can be computed for any
given year and discount rate.
Discount rate (%)
Year
NPV discount factors
5 6 8 10 12 15
where,
F = future value
P = present value
r = discount rate
t = number of years into the future that the cash flow occurs.
Present value analysis cont…
On solving the above equation, we obtain the formula for
present value (P) as follows :
F
P t
(1 r )
where,
F = future value
P = present value
r = discount rate
t = number of years into the future that the cash flow
occurs.
Present value analysis cont…
So the present value of $1,500 invested at 10% interest at the end of
4th year is:
1500
P
(1 0.10)
4
1500
1027.39
1.61
That is, if we invest $1,027.39 today at 10 percent interest, we can
expect to have $1,500 in four years.
This calculation can be represented for each year where a benefit is
expected.
Net Present Value (NPV) analysis
• NPV is a project evaluation technique that takes into
account the profitability of a project and the timing of the
cash flows that are produced.
• The net present value is obtained by discounting each cash
flow (both negative & positive) and summing the discounted
values.
Net Present Value (NPV) analysis -
Example (project 1)
Year Cash-flow ($) Discount factor Discounted cash
flow ($)
Processing cost($)
- - means unlikely
Risk and net present value
• Where a project is relatively risky, it is a common
practice to use a higher discount rate to calculate net
present value.
• This risk premium might, for example, be an additional
2% for a reasonably safe project or 5% for a fairly risky
one.
• Projects may be categorized as high, medium, or low risk
using a scoring method and risk premiums designated
for each category.
• The premiums, even if arbitrary, provide a consistent
method of taking risk into account.
Risk evaluation using C-B analysis
• A more sophisticated approach to the evaluation of risk
is to consider each possible outcome and estimate the
probability of its occurring and the corresponding value
of the outcome.
• Rather than a single cash flow forecast for a project, we
will then have a set of cash flow forecasts, each with an
associated probability of occurring.
• The value of the project is then obtained by summing the
cost or benefit for each possible outcome weighted by its
corresponding probability.
Cost-benefit analysis - Example
A company is planning to develop a payroll application and is
currently engaged in C-B analysis. Study of the market shows that if
the company can target it efficiently and no competing products
become available, it will obtain a high level of sales generating an
annual income $8,00,000. It estimates that there is a 1 in 10 chances
of this happening. However a competitor might launch, another
application before its own launch date, and then sales might generate
only $1,00,000 per year. It estimates that there is 30% chance of this
happening. The most likely outcome is somewhere in between these 2
extremes- it will gain a market lead by launching before any competing
product becomes available, and achieve annual income of $650000.
The expected sales income are shown in following table.
Cost-benefit analysis - Example
Sales Annual sales Prob. (p) Expected
income (i) value (i*p)
High 800000 0.1 80000
Medium 650000 0.6 390000
Low 100000 0.3 30000
Expected income 500000
Cost-benefit analysis - Example
• Development costs estimated to be $750000
• Sales levels are expected to be constant for at least 4
years
• Annual costs are estimated at $200000
(existing system)
(Due to benefits of
increased sales,
(with an automated system) better MIS, etc.)
Analysis of the decision tree
• The analysis consists of evaluating the expected benefit of
taking each path from the decision point D.
• The expected value of each path is the sum of the values
of each possible outcome multiplied by its probability.
• Expected value of extending the system is
($75,000*0.8) + (– $1,00,000 *0.2) = $40,000
• Expected value of replacing the system is
($2,50,000*0.2) +( – $50,000 *0.8) = $10,000
• So, the company should choose the option of extending
the existing system.
Summary cont…
• Discussed the last two steps of C-B Analysis.
• Presented the limitations of C-B analysis.
• Discussed the following risk evaluation techniques, with
suitable examples.
– Risk identification and ranking
– Risk and NPV
– C-B Analysis
– Risk profile analysis
– Using decision trees
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. E. M. Awad, Systems Analysis and Design, Second Edition. Galgotia Publications
Pvt. Ltd., 2009.
3. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you
Software Project Management
use for
the
benefits
application
build to deliver
3
‘Step Wise’ - aspirations
It might be asked why a standard approach such as PRINCE2
has not been adopted. There has been caution about using
PRINCE2 more centrally because:
PRINCE2 tend to be used mainly in the UK
PRINCE2 tends to focus more on procedural and bureaucratic
matters at the expense of techniques – the few planning techniques
that are associated with PRINCE, for example, the development of
product flow diagrams, are used in the Step Wise approach as well.
4
‘Step Wise’ - an overview
‘Step Wise’ - an overview
0. Select project There must be some process by which the
project to be executed was selected.
9. Execute Plan
• Execute the proposed plan.
‘Step Wise’ - an overview
10. Lower level planning
• Not all of a project, especially when it is large, can be
planned in detail at the outset.
• Not all the information needed to plan the later stages will
be available at the beginning: for example software
development cannot be broken down into precise sub-
tasks with realistic target times until more is known about
what the overall design of the system is known.
• So, plan later at the lower level / in detail.
A project scenario: Brightmouth College
Payroll
College currently has payroll processing carried out by a
services company
This is very expensive and does not allow detailed analysis of
personnel data to be carried out
Decision made to bring payroll ‘in-house’ by acquiring an ‘off-
the-shelf’ application
13
Project scenario - continued
The use of the off-the-shelf system will require a new,
internal, payroll office to be set up
There will be a need to develop some software ‘add-ons’: one
will take payroll data and combine it with time-table data to
calculate the staff costs for each course run in the college
The project manager is Brigette.
14
Step 1 establish project scope and
objectives
1.1 Identify objectives and measures of effectiveness
◦ ‘how do we know if we have succeeded?’
1.2 Establish a project authority
◦ ‘who is the boss?’
1.3 Identify all stakeholders in the project and their
interests
◦ ‘who will be affected/involved in the project?’
15
Step 1 continued
1.4 Modify objectives in the light of stakeholder analysis
◦ ‘do we need to do things to win over stakeholders?’
1.5 Establish methods of communication with all parties
◦ ‘how do we keep in contact?’
16
Back to the scenario
Project authority
- Brigette finds she has two different clients for the new
system: the finance department and the personnel office.
A vice principal agrees to be official client, and monthly
meetings are chaired by the VP and attended by Brigette
and the heads of finance and personnel
- These meetings would also help overcome communication
barriers
17
Back to the scenario
Stakeholders/revision to objectives
◦ The application will not ultimately be a success if project team
members are not happy to use the system.
◦ They might be happier to use the testing system if the results of their
own tests were automatically notified to them personally by the
software application, so that this might have to be added as a
requirement for the project.
18
Back to the scenario - continued
Stakeholders
◦ For example, personnel office would supply details of
new staff, leavers and changes (e.g. promotions)
◦ To motivate co-operation Brigette might ensure new
payroll system produces reports that are useful to
personnel staff
19
Step 2 Establish project infrastructure
2.1 Establish link between project and any strategic plan
◦ ‘why did they want the project?’
2.2 Identify installation standards and procedures
◦ ‘what standards do we have to follow?’
2.3. Identify project team organization
◦ ‘where do I fit in?’
20
Step 2 Establish project infrastructure
At the same time as establishing exactly what the project
objectives are, the person responsible may know little
about the organizational environment in which the
application is to be developed and implemented. The
actions in Step 2 address this problem.
21
Step 3 Analysis of project characteristics
3.1 Distinguish the project as either objective or
product-based.
◦ Is there more than one way of achieving success?
3.2 Analyse other project characteristics (including
quality based ones)
◦ what is different about this project?
22
Step 3 Analysis of project characteristics
3.1 Objective-based versus product-based projects.
With a product-based project the developers have to create a
product, the specification of which is often (but not always) clearly
defined.
In an objective-based project, a problem is defined that needs to be
solved but there could be more than one solution. For example, if an
organization needed a payroll application they might consider (a)
writing the system themselves (b) using a service company to do the
payroll for them (c) acquire an off-the-shelf package.
23
Step 3 Analysis of project characteristics
3.2 Analyse other project characteristics – such as is it an
information system or an embedded real time or a
multimedia application? Is it safety-critical? etc.
◦ The payroll application is clearly an information system.
24
Step 3 continued
3.3 Identify high level project risks
◦ ‘what could go wrong?’
◦ ‘what can we do to stop it?’
3.4 Take into account user requirements concerning
implementation
3.5 Select general life cycle approach
◦ waterfall? Increments? Prototypes?
3.6 Review overall resource estimates
◦ ‘does all this increase the cost?’
25
Back to the scenario
Objectives vs. products
◦ An objective-based approach has been adopted
Some risks
◦ There may not be an off-the-shelf package that caters for
the way payroll is processed at Brightmouth College
Answer?
◦ Brigette decides to obtain details of how main candidate
packages work as soon as possible; also agreement that if
necessary processes will be changed to fit in with new
system.
26
Step 4 Identify project products and
activities
4.1 Identify and describe project products - ‘what do we have
to produce?’
27
Products
The result of an activity: intermediate / final product to be
delivered
Could be (among other things)
◦ physical thing (‘installed pc’),
◦ a document (‘logical data structure’)
◦ a person (‘trained user’)
◦ a new version of an old product (‘updated software’)
28
Products
The following are NOT normally products:
◦ activities (e.g.‘training’)
◦ events (e.g.‘interviews completed’)
◦ resources and actors (e.g. ‘software developer’) - may
be exceptions to this
Products CAN BE deliverable or intermediate
29
Product description (PD)
Product identity Relevant standards
Description - what is it? Quality criteria
Derivation - what is it
based on?
Composition - what Create a PD for ‘test data’
does it contain?
Format
30
Step 4 continued
4.2 document generic product flows
31
Step 4 continued
The product flow diagram shows the order in which the
products have to be completed. Effectively it defines a
method of working. The example above is a possible solution
to Exercise 3.3 in the textbook.
The flow of the PFD is generally from top to bottom and left
to right. We do no put in lines which loop back. This is not
because iterative and back-tracking is not accepted. Rather it
is that you can in theory jump back to any preceding product.
32
Step 4.3 Recognize product instances
The PBS and PFD will probably have identified generic
products e.g.‘software modules’
It might be possible to identify specific instances e.g.
‘module A’,‘module B’ …
But in many cases this will have to be left to later, more
detailed, planning
33
4.4. Produce ideal activity network
Identify the activities needed to create each product in the
PFD
More than one activity might be needed to create a single
product
Hint: Identify activities by verb + noun but avoid
‘produce…’ (too vague)
Draw up activity network
34
An ‘ideal’ activity
35
Step 4.5 Add check-points
if needed
Step 5:Estimate effort for each activity
5.1 Carry out bottom-up estimates
◦ distinguish carefully between effort and elapsed time
5.2. Revise plan to create controllable activities
◦ break up very long activities into a series of smaller
ones
◦ bundle up very short activities (create check lists?)
37
Step 6: Identify activity risks
6.1.Identify and quantify risks for activities
◦ damage if risk occurs (measure in time lost or money)
◦ likelihood if risk occurring
6.2. Plan risk reduction and contingency measures
◦ risk reduction: activity to stop risk occurring
◦ contingency: action if risk does occur
6.3 Adjust overall plans & estimates to take account of risks
◦ For example, add new activities which reduce risks
associated with other activities e.g. training, pilot trials,
information gathering 38
Step 7: Allocate resources
7.1 Identify and allocate resources to activities
7.2 Revise plans and estimates to take into account
resource constraints
◦ e.g. staff not being available until a later date
◦ non-project activities
39
Week commencing
Gantt charts LT = lead tester
TA = testing assistant
APRIL
MARCH
12 19 26 2 9 16
5
Survey potential
suppliers Finance assistant
Analyse existing
system Business analyst
Obtain user
requirements
Business analyst
Calculate volumes
Systems assistant
Business
Draft and issue ITT analyst
Step 8: Review/publicize plan
8.1 Review quality aspects of project plan
8.2 Document plan and obtain agreement
41
Step 8: Review/publicise plan
We have noted already that it is not feasible to produce a
detailed plan for all stages of the project right at the
beginning of the project planning process and not all the
information needed for the detailed planning of the later
stages is available at the outset. Initially an outline plan for the
whole project would be produced, plus a detailed plan for the
first stage.
42
Step 9: Execute plan
43
Summary
Establish your objectives
Think about the characteristics of the project
Discover/set up the infrastructure to support the project
(including standards)
Identify products to be created and the activities that will
create them
Allocate resources
Set up quality processes
44
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth
Edition, McGraw Hill Education (India) Pvt. Ltd., 2018.
Thank you
Software Project Management
In-house
Outsource?
development?
either
Build Buy
Build or buy?
• In-house development almost always involves developing
new code.
• If it is decided to use a specialist organization to
implement system, the supplier could either build a
‘bespoke’ system (created specially for one customer) for
you, or could install a pre-existing application.
• There are hybrids of these options, e.g. to build in-house
but use temporary contract staff, or Customised Off-the-
Shelf (COTS) where a basic existing core system is
modified for your particular requirements.
Some advantages of off-the-shelf (OTS) software
Cheaper as supplier can spread development costs over a
large number of customers
Software already exists
◦ Can be trialled by potential customer
◦ No delay while software being developed
Where there have been existing users, bugs are likely to
have been found and eradicated
Some possible disadvantages of off-the-shelf
Customer will have same application as everyone else: no
competitive advantage, but competitive advantage may
come from the way application is used
Customer may need to change the way they work in order
to fit in with OTS application
Customer does not own the code and cannot change it
Danger of over-reliance on a single supplier
One concern is what happens if the supplier goes out of
business. Customer might not then be able to maintain the
system: hence the use of ‘escrow’ services where a 3rd
party retains a copy of the code.
General approach
Look at risks and uncertainties e.g.
◦ are requirement well understood?
◦ are technologies to be used well understood?
Look at the type of application being built e.g.
◦ information system? embedded system?
◦ criticality? differences between target and development
environments?
Clients’ own requirements
◦ need to use a particular method
General approach
Control systems:
A real-time system will need to be implemented using an
appropriate methodology. Real-time systems that employ
concurrent processing may have to use techniques such as
Petri nets.
General approach
Information systems:
An information system will need a methodology, such as
Information Engineering, that matches that type of
environment.
Team members would therefore know exactly what is
expected.
General approach
Availability of users:
Where the software is for the general market rather than
application and user specific, then a methodology which
assumes that identifiable users exist who can be quizzed
about their needs would have to be thought about with
caution.
Some business systems development methods assume an
existing clerical system which can be analysed to yield the
logical features of a new, computer-based, system.
In these cases a marketing specialist may act as a surrogate
user.
General approach
Specialized techniques:
For example, expert system shells and logic-based
programming languages have been invented to expedite the
development of knowledge-based systems.
Similarly, a number of specialized techniques and standard
components are available to assist in the development of
graphics-based systems.
General approach
Hardware environment :
The environment in which the system is to operate could
put constraints on the way it is to be implemented.
The need for a fast response time or restricted computer
memory might mean that only low-level programming
languages can be used.
General approach
Safety-critical systems:
Where safety and reliability are essential, this might justify
the additional expense of a formal specification using a
notation such as OCL.
Extremely critical systems could justify the cost of having
independent teams develop parallel systems with the same
functionality.
The operational systems can then run concurrently with
continuous cross-checking. This is known as n-version
programming.
General approach
Imprecise requirements:
Uncertainties or a novel hardware/software platform mean
that a prototyping approach should be considered.
If the environment in which the system is to be
implemented is a rapidly changing one, then serious
consideration would need to be given to incremental delivery.
If the users have uncertain objectives in connection with the
project, then a soft systems approach might be desirable.
Processes versus Process Models
Starting from the inception stage:
◦ A product undergoes a series of transformations
through a few identifiable stages
◦ Until it is fully developed and released to the customer.
◦ This forms its life cycle or development process.
Life cycle model (also called a process model):
◦ A graphical or textual representation of the life cycle.
Structure versus speed of delivery
Structured approach
Structured methods consists of sets of steps and rules
which, when applied, generate system products such as use
case diagrams.
Each of these products is carefully defined.
Such methods are more time consuming and expensive than
more intuitive approaches.
The pay-off, it is hoped, is a less error prone and more
maintainable final system.
Structure versus speed of delivery
Structured approach (cont…)
This balance of costs and benefits is more likely to be
justified on a large project involving many developers and
users.
Because of the additional efforts needed and their greater
applicability to large and complex projects, these are often
called heavyweight methods.
Structure versus speed of delivery
Structured approach
Also called ‘heavyweight’ approaches
Step-by-step methods where each step and intermediate
product is carefully defined
Emphasis on getting quality right first time
Example: use of UML and USDP
Future vision: Model-Driven Architecture (MDA). UML
supplemented with Object Constraint Language, press the
button and application code generated from the UML/OCL
model
Structure versus speed of delivery
Agile methods
Emphasis on speed of delivery rather than documentation
RAD (Rapid application development): Emphasized use of
quickly developed prototypes
JAD (Joint application development): Requirements are
identified and agreed in intensive workshops with users
Choice of process models
Based on the nature / characteristics of the project,
choose an appropriate process model for developing
the project. Some of the possible process models are:
Waterfall model (also known as ‘one-shot’, or
‘once-through’ model)
Prototyping model
Incremental model
RAD model
Agile models
What is Agile Software Development?
Agile: Easily moved, light, nimble, active software processes
25
Important Themes of Agile Methods
Incremental approach:
◦ At a time, only one increment is planned, developed,
and then deployed at the customer site.
Emphasizes face-to-face communication over written
documents.
An agile project usually includes a customer
representative in the team.
Agile development projects usually deploy pair
programming.(one will write the code, the other one
will review the code, then the roles will be swapped).
Agile Models / Methodologies
XP
Scrum
Unified process
Crystal
DSDM
Lean
27
combinations of approaches
installation
one-shot incremental evolutionary
one-shot yes yes no
incremental yes yes no
evolutionary yes yes yes
31
Comparison of Different Life Cycle
Agile model:
Models cont …
◦ to help projects to adapt to change requests
◦ In the agile model, the requirements are decomposed into many
small incremental parts that can be developed over one to four
weeks each.
32
Summary
• We have discussed Building versus buying a software.
• We have discussed some characteristics of the projects such
as control systems, information systems, availability of users,
specialized techniques, hardware environment, safety-critical
systems, imprecise requirements.
• We have mentioned different Process models.
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth
Edition, McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI
Learning Pvt. Ltd., 2018.
Thank you
Software Project Management
8
Project Planning cont …
9
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.
10
Project Planning Activities cont …
1. Identify the steps required to accomplish the project
objectives
2. Identify the tasks needed to be done at each step (using
Work Breakdown Structures)
3. Estimate of how much effort each task requires
4. Estimate the resources required for each task
5. (Given 3. and 4.) Calculate how long each task/step will take
6. (Given 4. and 5.) Estimate the task, step and project costs
7. Determine the inter-dependencies of tasks, if any.
8. Prepare the schedule for each task and the whole project
(Milestones, Deliverables, costs, payments)
Why project planning?
Requires utmost care and attention , because commitments to
unrealistic time and resource estimates result in:
◦ irritating delays.
◦ customer dissatisfaction
◦ adverse affect on team morale
poor quality work
◦ project failure.
12
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
13
SPMP Document
After planning is complete:
◦ Document the plans:
◦ in a Software Project Management Plan(SPMP) document.
14
Organization of SPMP Document
◦ Introduction (Objectives, Major Functions, Performance Issues, Management and
Technical Constraints)
◦ Project Estimates (Historical Data, Estimation Techniques, Effort, Cost &
Project Duration Estimates)
◦ Project Resources Plan (People, Hardware and Software, Special Resources)
◦ Schedules (Work Breakdown Structure, Task Network, Gantt Chart
Representation, PERT Chart Representation)
◦ Risk Management Plan (Risk Analysis, Risk Identification, Risk Estimation,
Abatement Procedures)
◦ Project Tracking and Control Plan
◦ Miscellaneous Plans (Process Tailoring, Quality Assurance, Configuration
Management)
15
Fundamental estimation questions
What is the size of the software to be developed?
17
Sequence of Estimations and Scheduling
Effort Cost
Estimation Estimation
Size Staffing
Estimation Estimation
Duration
Estimation Scheduling
Software cost components
Hardware and software costs.
Travel and training costs.
Effort costs:
◦ The dominant factor in most projects
◦ The salaries of engineers involved in the project
Overheads:
◦ Costs of building, heating, lighting.
◦ Costs of networking and communications.
◦ Costs of shared facilities (e.g. library, staff restaurant,
etc.).
◦ Rule of thumb: as much as the effort costs
Person Month
Suppose a project is estimated to take 300 person-months to
develop:
◦ Is one person working for 30 days same as 30 persons
working for 1 day?
◦ No? why?
How many hours is a man month:
◦ Default Value: 152 hours per month
◦ 19 days at 8 hours per day.
Why Person-Month and not Person-days or
Person years?
Modern Projects typically take a few months to complete...
Price to win
Pricing to win
‘Price to win’ is setting a target that is likely to win business when
tendering for work
The project costs whatever the customer can spend on it.
Advantages:You get the contract
Disadvantages: Costs do not accurately reflect the work required.
Either:
◦ (1) the customer does not get the desired system or
◦ (2) the customer overpays.
Pricing to win
This approach may seem unethical and unbusiness-like….
◦ However, when detailed information is lacking it may be the only
appropriate strategy…
Which is the most ethical approach?
◦ The project cost is agreed on the basis of an outline proposal and
the development is constrained by that cost
◦ A detailed specification may be negotiated or an evolutionary
approach used for system development
Project Parameters to be Estimated
For project planning, we need:
◦ Effort (cost)
◦ Duration
3. Consensus estimating
4. Delphi
Basic Expert Judgment
One or more experts predict software costs.
◦ Process iterates until some consensus is reached.
Estimated effort = (O + 4M + P ) / 6
Consensus estimating
Steps in conducting a consensus estimating session:
A briefing is provided to the estimating team on the project.
Each person is provided with a list of work components to estimate.
Each person independently estimates O, M and P for each work
component.
The estimates are written up on the whiteboard.
Each person discusses the basis and assumptions for their estimates.
A revised set of estimates is produced.
Averages for the O, M and P values are calculated.
These values are used in the formula.
Delphi Estimation
A variation of consensus estimation technique
Team of Experts and a coordinator.
Experts carry out estimation independently:
◦ mention the rationale behind their estimation.
◦ coordinator notes down any extraordinary rationale:
circulates the estimation rationale among experts.
Experts re-estimate.
Experts never meet each other
◦ to discuss their viewpoints.
Delphi
Delphi is an expert survey in two or more "rounds".
Starting from the second round, a feedback is given (about
the results of previous rounds).
The same experts assess the same matters once more -
influenced by the opinions of the other experts
important: anonymity
Delphi Method: Steps
1. Coordinator presents each expert with a specification & an estimation
form.
2. Coordinator calls a group meeting in which the experts discuss
estimation issues with the coordinator.
3. Experts fill out forms anonymously.
4. Coordinator prepares and distributes a summary of the estimation on
an iteration form.
5. Coordinator calls a group meeting, specially mentioning the noted
rationale where the estimates varied widely.
6. Experts fill out forms, again anonymously, and Steps 4 and 6 are iterated
for as many rounds as appropriate.
Types of Estimation Techniques
Though there are many techniques of estimating, they can
broadly be classified into:
◦ Top-down
◦ Bottom-up
What about:
◦ Algorithmic models?
◦ Expert opinion?
◦ Analogy ?
◦ Price to win?
Bottom-up versus top-down
Bottom-up
◦ identify all tasks that have to be done – so quite time-
consuming
◦ use when you have no data about similar past projects
Top-down
◦ produce overall estimate based on project cost drivers
based on past project data
◦ divide overall estimate between jobs to be done
Bottom-up estimating
1. Break the project activities into smaller and smaller
components
Stop when you get to what one person can do in
one/two weeks
2. Estimate costs for the lowest level activities
3. At each higher level calculate estimate by adding
estimates for lower levels
Top-down estimates
Estimate Produce overall estimate
overall 100 days using effort driver(s)
project
Distribute proportions of
overall estimate to
design code test components
30% 30% 40%
i.e. i.e. i.e. 40 days
30 days 30 days
Top-down Example
Top-Down Estimating: Pros
It accounts for system-level activities such as integration,
documentation, configuration management, etc.:
Number
of file types
‘system
model size’
Numbers of input
and output transaction types
Parametric models for Size
We shall examine four parametric models more closely :
1.Albrecht/IFPUG function points
2.Symons/Mark II function points
3.COSMIC function points
4.COCOMO81 and COCOMO II
International Function Point Users Group
(IFPUG)
Purpose
• To promote and encourage use of Function Points
• To develop consistent and accurate counting guidelines
Benefits
• Networking with other counters
• IFPUG Counting Practices Manual
• Research projects
• Hotline
• Newsletter
• Certification
Extent of Usage:
• Member companies include all industry sectors
• Over 1200 members in more than 30 countries
Albrecht/IFPUG function point analysis
Albrecht worked at IBM:
◦ Needed a way of measuring the relative productivity of
different programming languages.
◦ Needed some way of measuring the size of an
application without counting lines of code.
Identified five parameters:
◦ Counted occurrences of each type of functionality in
order to get an indication of the size of an information
system
◦ It is a top-down approach
Why IFPUG Thinks One Should Not Use LOC?
Lines of code tend to reward profligate design and
penalize concise design
There is no industry standards (ISO or otherwise) for
lines of code
Lines of code cannot be used for normalizing across
platform, language or by organization
Some 4GL do not even use lines of code
Lines of code can be misleading.
How Do Function Points Overcome LOC
Problems?
Function points are independent of the language, tools, or
methodologies used for implementation
Function points can be estimated early in analysis and design
Since function points are based on the user’s external view
of the system:
◦ Non-technical users of the software have a better
understanding of what function points are
measuring
Objectives of Function Point Counting
Measure functionality that the user requests and receives…
Measure software development and maintenance
independently of technology used for implementation…
Simple enough to minimize the overhead of the
measurement process…
A consistent measure among various projects and
organizations …
When Should You Count Function Points?
Early and often
◦ The sooner you can quantify what a project is delivering,
the sooner it is under control
Under IFPUG 4.1, there are rules and guidelines:
◦ Make it possible to count function points once the
requirements have been finalized
◦ The estimate of size in function points can be refined
continuously through out the development cycle.
Function points should be recounted throughout the
development process: Can measure scope creep and
breakage
Count Data
Determine
Functions
Unadjusted
Function Point
Count
Count
FP Computation Steps
Identify Transactional
Counting Functions Calculate
Scope and Adjusted Function
Application Point Count
Determine Value
Boundary
Adjustment
Factor
Key Components in Function Point Analysis
External Input Count each unique user data or user control input type that (i)
(Inputs) enters the external boundary of the software system being measured
and (ii) adds or changes data in a logical internal file.
External Output Count each unique user data or control output type that leaves the
(Outputs) external boundary of the software system being measured.
Internal Logical File Count each major logical group of user data or control information
(Files) in the software system as a logical internal file type. Include each
logical file (e.g., each logical group of data) that is generated, used, or
maintained by the software system.
External Interface Files passed or shared between software systems should be counted
Files (Interfaces) as external interface file types within each system.
External Inquiry Count each unique input-output combination, where an input causes
(Queries) and generates an immediate output, as an external inquiry type.
Definition of External input
An External Input (EI) processes data that comes from outside
the application’s boundary.
External Input
1.0
ON-LINE UPDATE
ENTRY Transaction CUSTOMER
INFORMATION
Multi-Screen
External Output
1.0
Category CATEGORIZE
END Summary CUSTOMER
USER INFO
Definition of An Inquiry
An External Inquiry (EQ) is an output that results in data
retrieval. The result contains no derived data.
External Inquiry
1.0
END Selected DISPLAY
USER Customer CUSTOMER
Info INFO
Definition of An IL File
An Internal Logical File (ILF) is a user-identifiable group of logically related
data that is maintained within the boundary of the application.
END
USER
1.0
UPDATE
CUSTOMER
INFO
Customer Info
A1 10 2 4
A2 10 3 6
A3 1 25 1
A4 10 10 9
A5 4 10 5
A6 26 9 2
A7 5 11 8
A8 14 4 5
A9 22 7 4
A10 6 6 4
A11 9 9 7
A12 3 24 5
Ni = 120 No = 120 Ne = 60
Albrecht complexity multipliers
External user Low Medium High
types complexity complexity complexity
External input type 3 4 6
External output type 4 5 7
External inquiry type 3 4 6
Logical internal file 7 10 15
type
External interface 5 7 10
file type
IFPUG file type complexity
Number of Number of data types
record types
FP = UFP * VAF
= 55 * 1.01
= 55.55
Example 3
A Payroll application has:
1. Transaction to input, amend and delete employee details – an
EI that is rated of medium complexity
2. A transaction that calculates pay details from timesheet data
that is input – an EI of high complexity
3. A transaction of medium complexity that prints out pay-to-
date details for each employee – an EO of medium complexity
4. A file of payroll details for each employee – assessed as of
medium complexity LIF
5. A personnel file maintained by another system is accessed for
name and address details – a simple EIF
What would be the FP counts for these?
External Low Medium High
user types complexit complexit complexit
FP counts External
y
3
y
4
y
6
input type
External 4 5 7
1. Medium EI = 4 FPs output
type
2. High complexity EI = 6 FPs External 3 4 6
inquiry
3. Medium complexity EO = 5 FPs type
Logical 7 10 15
4. Medium complexity LIF = 10 FPs internal
file type
External 5 7 10
5. Simple EIF = 5 FPs interface
file type
Total (UFP) = 30 FPs
You may compute the AFP considering all the influence values medium.
Exercise 1: Tic-Tac-Toe Computer Game
As soon as either of the human player or the computer wins,
◦ A message announcing the winner should be displayed.
If neither player manages to get three consecutive marks
along a straight line,
◦ And all the squares on the board are filled up,
◦ Then the game is drawn.
The computer always tries to win a game.
Exercise 2
It is needed to develop an Alumni Repository software for
IIM, Ranchi. The software will extract the details of
students from the existing academic software of IIM,
Ranchi. It will provide an online display of the Alumni
names. The details of the Alumni can be entered by any one
by double clicking on the Alumni name. The details of
Alumni would be stored in a file. It should be possible to
print out a report detailing all alumni.
Determine UFP.
Exercise 3: Supermarket Prize Scheme
A supermarket needs to develop the following software to encourage regular customers.
TO register, a customer needs to supply his/her residence address, telephone number, and
the driving license number.
Each customer who registers for this scheme is assigned a unique customer number (CN)
by the computer.
Based on the generated CN, a clerk manually prepares a customer identity card after
getting the market manager’s signature on it.
A customer can present his customer identity card to the check out staff when he makes
any purchase. In this case, the value of his purchase is credited against his CN.
At the end of each year, the supermarket intends to award surprise gifts to 10 customers
who make the highest total purchase over the year. Also, it intends to award a 22 caret gold
coin to every customer whose purchase exceeded Rs.10,000/-.
The entries against the CN are reset on the last day of every year after the prize winners’
lists are generated.
Exercise 4
Calculate Unadjusted Function Point (UFP), Complexity Adjustment Factor (CAF) and
Function Point (FP) for the following problem.
Number of user inputs=32
Number of user outputs=60
Number of user inquiries=24
Number of files=8
Number of external interfaces=2
Assume all weighting factors to be average and all complexity adjustment values to be average.
Exercise 5
Calculate Unadjusted Function Point (UFP), Complexity Adjustment Factor (CAF) and
Function Point (FP) for the following problem.
Number of user inputs=24 (Weighting factor is average)
Number of user outputs=46 (Weighting factor is simple)
Number of user inquiries=8 (Weighting factor is complex)
Number of files=4 (Weighting factor is average)
Number of external interfaces=2 (Weighting factor is simple)
The various complexity adjustment values are 4, 1, 0, 3, 3, 5, 4, 4, 3, 3, 2, 2, 4, 5.
Summary
Discussed Albrecht/IFPUG function points analysis
Also, discussed the steps to compute FP count
Presented Albrecht/IFPUG function point parameters
Explained Albrecht/IFPUG function points counting with
some suitable examples.
References :
• Object points
Parametric models for Size
1.Albrecht/IFPUG function points
5
Solution
UFP= 50 * 4 + 40 * 5 + 35 * 4 + 6 * 10 + 4 * 7
= 200+200+140+60+28 = 628
VAF=0.65 + 0.01 (14 * 3) = 1.07
AFP= UFP * VAF=628 * 1.07 = 672
Size = FP * (LOC per FP) = 672 * 70 = 47040 LOC
6
Another example
Compute the function-point value for a project with the
following information-domain characteristics.
◦ Number of user Inputs: 32
◦ Number of User Output: 60
◦ Number of User Inquiries: 24
◦ Number of Files: 8
◦ Number of External interface:2
Assume that all complexity adjustment values are average.
Solution
UFP = 32x4 + 60x5 + 24x4 + 8x10 + 2x7 = 128 + 300 + 96
+ 80 + 14 = 618
VAF = 0.65 + 0.01x(14x3) = 0.65+0.42 = 1.07
AFP = UFP x VAF = 618x1.07 = 661.26
8
Example: super market
Determine the function point measure of the size of the following
supermarket software. A supermarket needs to develop the following
software to encourage regular customers. For this, the customer needs to
supply his/her residence address with telephone number, and the driving
license number. Each customer who registers for this scheme is assigned a
unique customer number (CN) by the computer. Based on the generated
CN, a clerk manually prepares a customer identity card after getting the
market manager’s signature on it. A customer can present his customer
identity card to the check out staff when he makes any purchase. In this
case, the value of his purchase is credited against his CN. At the end of
each year, the supermarket intends to award surprise gifts to 10 customers
who make the highest total purchase over the year. Also, it intends to
award a 22 caret gold coin to every customer whose purchase exceeded
Rs. 10,000. The entries against the CN are reset on the last day of every
year after the prize winners’ lists are generated. Assume that various
project characteristics determining the complexity of software
development have significant influence.
Solution of Example: super market
Step 1: From an initial examination of the problem
description, we find that there are two inputs, three outputs,
two files (one for storing the customer details and another for
storing the daily purchase records), and no interfaces.
Now we get:
UFP = 2 × 4 + 3 × 5 + 1 × 4 + 10 × 2 + 0 × 7 = 47
Ref: UFP= # inputs*4+ # outputs*5+ # inquiries*4+ # files*10+ # interfaces*7
10
Solution of Example: super market cont…
Step 2: All the parameters are of medium complexity, except
the output parameter of customer registration, in which the
only output is the CN value. So, the complexity of the output
parameter of the customer registration function can be
categorized as simple or low. By consulting the table, we find
that the value for simple output is given to be 4.
The UFP can be refined as follows:
UFP = 2 × 4 + 1 × 4 + 2 × 5 + 1 × 4 + 10 × 2 + 0 × 7 = 46
So, the refined UFP will be 46.
11
Solution of Example: super market cont…
Step 3: Since the complexity adjustment factors have
significant influence values, therefore the total degrees of
influence would be: DI = 14 × 4 = 56
TCF = (56 * 0.01) + 0.65 = 1.21
Therefore,Adjusted FP=46*1.21=55.66
12
Function points Mark II
Developed by Charles R. Symons
Process
#input #output
items items
Higher layers
Receives request Supplies service
Data reads/ Peer to peer
communication
Persistent writes peer
storage Software component
component
Makes a request
for a service Receives service
Lower layers
Function points for embedded systems
cont...
This identifies the boundary of the software component to
be accessed and thus the points at which it receives inputs
and transmits outputs.
Inputs and outputs are aggregated into data groups, where
each group brings together data items that relate to the
same object of interest.
COSMIC FPs
Data groups can move about in 4 ways as follows.
24
Feature Point Metrics cont ...
This parameter ensures that
◦ the computed size using the feature point metric
reflects the fact that
higher the complexity of a function, the greater the effort
required to develop it
Therefore, it should have larger size compared to a
simpler function.
Critical comments on the function point and feature
point metrics
Proponents of 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.
On the other hand, opponents claim that these metrics are
subjective and require a sleight of hand.
An example of the subjective nature of the FP metric:
◦ the way one groups the input and output data items into logically
related groups can be very subjective.
Critical comments on the function point and feature
point metrics cont…
For example, consider that certain functionality requires the
employee name and employee address to be input. It is
possible that one can consider both these items as a single
unit of data, since after all, these describe a single employee.
It is also possible for someone else to consider an
employee’s address as a single unit of input data and name as
another.
Such ambiguities leave sufficient scope for debate and keep
open the possibility for different project managers to arrive
at different FP measures for essentially the same problem.
FP/SLOC Conversion
Median SLOC/function
Language
point
C 104
C++ 53
HTML 42
JAVA 59
Perl 60
J2EE 50
Visual
42
Basic
Accurate Size Estimation
Schedule
REQUIREMENT PROJECT X PROJECT X RISK
SIZE COMPLEXITY FACTORS
Adjustments Effort Costs
Adjustments
12
Basic Model:
Schedule Equation (COCOMO 81)
Nominal Development time= 2.5*(Effort)exponent
2.5 is constant for all modes
Exponent based on mode
◦ organic = 0.38
◦ semi = 0.35
◦ embedded = 0.32
Basic COCOMO Model (CONT.)
Effort is
somewhat Effort
super-linear
in problem
size.
Size
14
Basic COCOMO Model cont …
Development time
◦ sublinear function of
product size. Dev. Time
When product size
increases two times, 18 Months
◦ development time
does not double. 14 Months
Time taken:
◦ almost same for all
the three product 30K 60K
Size
categories.
15
Effort for
increasing LOC
3x 1.12
Duration for
increasing Effort*
2.5x 0.35
<1
exponent:
>1
Basic COCOMO Model cont …
Development time does not increase linearly with product
size:
◦ For larger products more parallel activities can be
identified:
can be carried out simultaneously by a number of
engineers.
17
Basic COCOMO Model 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, semi-detached, or
embedded type.
◦ There is more scope for parallel activities for system and
application programs,
than utility programs.
Example - 1
The size of an organic software product has been estimated to
be 32,000 lines of source code. Assume that average salary of a
software developer is Rs. 15,000 per month. Determine the
effort required to develop the software product, the nominal
development time, and the cost to develop the product.
Effort = 2.4*(32)1.05 = 91 PM
Nominal development time = 2.5*(91)0.38 = 14 months
Staff cost required to develop the product
=91 x Rs. 15,000=Rs. 1,465,000
Example - 2
Suppose you are developing a software product in the organic
mode. You have estimated the size of the product to be about
100,000 lines of code. Compute the nominal effort and the
development time.
Given that the size is 100 KLOC and the project is organic.
Nominal effort=2.4 x 1001.05=2.4 x 125.893=302.1 man-
months
Nominal development time=2.5 x (Effort)0.38=2.5 x
302.10.38=8.6 months
Example - 3
Suppose that a certain software product for business
application costs Rs. 50,000 to buy off-the-shelf and that its size
is 40 KLOC. Assuming that in-house developers cost Rs. 6000
per PM (including overheads), would it be more cost-effective
to buy the product or build it?
The product is for business application and can be classified as
organic type. So,
Nominal effort=2.4 x 401.05=2.4 x 48.1=115.5 man-months
In-house engineers cost Rs. 6000/-.
So, the cost of development is 115.5 x 6000=Rs. 693,000/-
But, purchasing the above S/W will cost Rs. 50,000.
So, it is better to go for buying the product.
Example - 4
Suppose an organic project has 7.5 KLOC. Find the effort,
development time, average staff required and productivity.
◦ Effort 2.4x(7.5)1.05= 20 staff–months
◦ Development time 2.5x(20)0.38= 8 months
◦ Average staff required 20 / 8 = 2.5 staff
◦ Productivity 7,500 LOC / 20 staff-months = 375 LOC / staff-month
22
Example - 5
Suppose an embedded project has 50 KLOC. Find the effort,
development time, average staff required and productivity.
◦ Effort 3.6x(50)1.20= 394 person–months
◦ Development time 2.5x(394)0.32= 17 months
◦ Average staff 394 / 17 = 23 staff
◦ Productivity 50,000 LOC / 394 staff-months = 127 LOC / staff-month
23
Exercise
A software package is required by a company to mine
existing customer data to select prospective customers for
a new launch.
◦ The size is estimated to be 30KLOC.
◦ Assume competent developers can be hired at Rs50,000/- per month.
◦ However, commercial offering supporting almost all of the required
features costs Rs. 100,000/-
Should the company buy or build the product?
Buy/Build Decision
The make/buy decision can be made based on the following
conditions
◦ Will the software product be available sooner than
internally developed software?
◦ Will the cost of acquisition plus the cost of
customization be less than the cost of developing the
software internally?
◦ Will the cost of outside support (e.g., a maintenance
contract) be less than the cost of internal support?
Summary
Discussed fundamentals of Basic COCOMO
Discussed various types of projects such as organic,
semidetached and embedded
Presented Cost and Effort estimation using Basic
COCOMO
Solved some examples on Cost and Effort estimation using
Basic COCOMO
References :
4
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).
5
Intermediate COCOMO cont …
For example,
If modern programming practices are used,
◦ initial estimates are scaled downwards.
6
Intermediate COCOMO cont…
Rate the different parameters on a scale of 1 to 3:
◦ Depending on these ratings,
multiply cost driver values with the estimate obtained
using the basic COCOMO.
In some cases, value of the parameters (cost drivers) may be
less than 1, e.g. if modern programming practices are being
used.
7
Intermediate COCOMO cont …
Takes basic COCOMO as starting point
Identifies the attributes such as personnel, product,
computer and project attributes, which affect the cost and
development time.
Multiplies basic cost by attribute multipliers which may
increase or decrease the costs.
Attributes
Personnel attributes
Analyst capability (ACAP)
Virtual machine experience (VEXP)
Programmer capability (PCAP)
Programming language experience (LEXP)
Application experience (AEXP)
Product attributes
Reliability requirement (RELY)
Database size (DATA)
Product complexity (CPLX)
More Attributes
Computer attributes
Execution time constraints (TIME)
Storage constraints (STOR)
Virtual machine volatility (VIRT)
Computer turnaround time (TURN)
Project attributes
Modern programming practices (MODP)
Software tools (TOOL)
Required development schedule (SCED)
COCOMO effort multipliers (cost drivers)
Each of the 15 attributes receives a rating on a six-point
scale that ranges from "very low" to "extra high" (in
importance or value).
The product of all effort multipliers results in an effort
adjustment factor (EAF).
Typical values for EAF range from 0.9 to 1.4.
COCOMO – cost drivers
Cost Driver Very Low Nominal High Very High Extra High
low
Required reliability 0.75 0.88 1.0 1.15 1.40
Database size 0.94 1.0 1.08 1.16
Product complexity 0.70 0.85 1.0 1.15 1.30
Execution time constraint 1.0 1.11 1.30
Memory constraint 1.0 1.06 1.21
Virtual machine volatility 0.87 1.0 1.15 1.30
Computer turnaround time 0.87 1.0 1.07 1.15
Analyst capability 1.46 1.19 1.0 0.86 0.71
Application experience 1.29 1.13 1.0 0.91 0.82
Programmer capability 1.42 1.17 1.0 0.86 0.70
Virtual machine experience 1.21 1.10 1.0 0.90
Programming language experience 1.14 1.07 1.0 0.95
Modern programming practices 1.24 1.10 1.0 0.91 0.82
Use of software tools 1.24 1.10 1.0 0.91 0.83
Development schedule 1.23 1.08 1.0 1.04 1.10
Intermediate Model
Effort Equation (COCOMO 81)
Effort=EAF*c*(size)k
◦ EAF (effort adjustment factor) is the product of effort
multipliers corresponding to each cost driver rating
◦ c is a constant based on the developmental mode
◦ Some papers have taken value of c same as that of Basic
COCOMO, some other papers have taken value of c as
for organic products, c = 3.2
for semi-detached products, c = 3.0
for embedded products, c = 2.8
◦ size = 1000s Delivered Source Instruction (KDSI)
◦ k is a constant for a given mode, same as Basic COCOMO
Intermediate Model
Effort Equation (COCOMO 81) cont …
The development time calculation uses effort in the same
way as in the Basic COCOMO, i.e.
Nominal Development time= 2.5*(Effort)exponent
where, 2.5 is constant for all modes, and
exponent is based on mode
organic = 0.38
semidetached = 0.35
embedded = 0.32
Using COCOMO development effort
multipliers
An example: for analyst capability:
Assess capability as very low, low, nominal, high or very high
Extract multiplier:
very low 1.46
low 1.19
nominal 1.00
high 0.80
very high 0.71
Adjust nominal estimate e.g. 32.6 x 0.80 = 26.8 staff months
Example 1
Determine effort, duration, and staffing level for the
following scenario:
◦ Estimated size 10,000 LOC = 10 KLOC.
◦ Small project, familiar development
◦ Analyst capability: Low
◦ Application experience: Low
◦ programmer capability: low
◦ Programmer experience: High
Example 1 cont …
Need to produce 10,000 LOC = 10 KLOC.
Since a small project and familiar development, use organic
model:
◦ Effort =2.4(10)1.05 = 26.9 Person-Months
◦ Development-time = 2.5(26.9).38 = 8.73 Months
◦ Average Staff = 26.9 PM/8.73 Months = 3.08 3 People
Example 1 cont…
Now, the attribute multipliers will be as follows:
Analyst capability - 1.19 (low)
Application experience - 1.13 (low)
programmer capability - 1.17 (low)
programming experience - 0.95 (high)
So, Adjustment factor = 1.19*1.13*1.17*0.95 = 1.49
Effort = 26.9*1.49 = 40 Person-months
Development time = 2.5*(40).38 = 10.2 Months
Average Staff = 40PM/10.2M=3.9 (approx. 4) People
Example 2
Suppose the project to be developed is a flight control
system (mission critical) with 319,000 DSI in embedded
mode.
Reliability must be very high (RELY=1.40). So we can
calculate:
Effort = 1.40*3.6*(319)1.20 = 5093 PM(approx.)
Duration = 2.5*(5093)0.32 = 38.4 months (approx.)
Average Staffing = 5093 PM/38.4 months = 133 People
(approx.)
Example 3
An embedded software system on microcomputer hardware
to be developed.
Basic COCOMO predicts a 45 person-month effort
requirement
Attributes = RELY (1.15), STOR (1.21), TIME (1.10), TOOL
(1.10)
Intermediate COCOMO predicts
45 * 1.15 * 1.21 * 1.10 *1.10 = 76 person-months.
Assume total cost of person month = Rs. 50,000.
Total cost = 76 * 50,000 = Rs.38,00, 000
Shortcoming of basic and intermediate
COCOMO models
For better accuracy:
◦ COCOMO has to be calibrated to an organizations’
environment.
Very sensitive to parameter change:
◦ Over a person-year difference in a 10 KLOC project
with minor adjustments
Broad brush model that can generate significant errors
Shortcoming of basic and intermediate
COCOMO models cont …
Do not take into account
◦ software reuse
◦ application generation programs
◦ object-oriented approaches
◦ application engineering (reuse, applications translation)
◦ need for rapid development
Shortcoming of basic and intermediate
Both models:
COCOMO 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.
24
Complete COCOMO
Overcomes some of the limitations of Basic and
Intermediate 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.
25
Complete COCOMO Example
A Management Information System (MIS) for an organization
having offices at several places across the country:
◦ Database part (semi-detached)
◦ Graphical User Interface (GUI) part (organic)
◦ Communication part (embedded)
Costs of the individual components are estimated separately:
◦ summed up to give the overall cost of the system.
26
Six phases of detailed COCOMO
Planning and requirements
System structure
Complete structure
Module code and test
Integration and test
Cost Constructive model
Summary
Discussed the fundamentals of Intermediate COCOMO.
Presented the different cost drivers (multipliers).
Explained Cost and Effort estimation using Intermediate
COCOMO.
Shown the limitations of Basic and Intermediate COCOMO.
Solved some examples on Cost and Effort estimation using
Intermediate COCOMO.
Discussed fundamentals of Complete (Detailed) COCOMO.
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you
Software Project Management
4
COCOMO II
For example, component-based development and service-
oriented architectures (SOA) have become very popular.
New life cycle models and development paradigms are being
deployed for web-based and component-based software.
During the 1980s rarely any program was interactive, and
graphical user interfaces were almost non-existent.
COCOMO II
On the other hand, the present day software products are
highly interactive and support elaborate graphical user
interface.
Effort spent on developing the GUI part is often as much as
the effort spent on developing the actual functionality of the
software.
COCOMO II
To make COCOMO suitable in the changed scenario,
◦ Boehm proposed COCOMO 2 in 1995.
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.
COCOMO II
Main objectives of COCOMO II:
◦ To develop a software cost and schedule estimation
model tuned to the life cycle practices of the 1990’s and
2000’s
◦ To develop software cost database and tool support
capabilities for continuous model improvement
From “Cost Models for Future Software Life Cycle Processes:
COCOMO 2.0," Annals of Software Engineering, (1995).
COCOMO II models
COCOMO II incorporates a range of sub-models:
▪ Produces increasingly accurate estimates.
The sub-models in COCOMO II are:
▪ Application composition model. Used when software is
composed from existing parts.
▪ Early design model. Used when requirements are available but
design has not yet started.
▪ Reuse model. Used to compute the effort of integrating
reusable components.
▪ Post-architecture model. Used once the system architecture has
been designed and more information about the system is
available.
COCOMO II
COCOMO 81 DSI - “Delivered Source Instructions”
COCOMO II SLOC - “Source Lines Of Code”
•The original COCOMO 81 model was defined in terms of
Delivered Source Instructions, which are very similar to
SLOC.
•The major difference between DSI and SLOC is that a single
Source Line of Code may be several physical lines.
•For example, an "if-then-else" statement would be counted
as one SLOC, but might be counted as several DSI.
COCOMO II
The core model is:
Effort (pm) = A× (size)(sf) ×(em1) ×(em2) ×(em3)….
where,
pm = person months,
A = 2.94,
size is the number of thousands of source lines of code,
sf is the scale factor
em is an effort multiplier
Application composition model
Applicable to prototyping projects and projects where there is
extensive reuse.
Based on standard estimates of developer productivity in terms
of application (object) points/month. Application points are
computed using objects such as screens, reports, modules
(components) etc.
Takes CASE tool use into account.
Formula is
▪ PM = ( NAP (100 - %reuse)/100 ) / PROD
▪ where, PM is the effort in person-months, NAP is the no. of
application points and PROD is the productivity.
Application Composition Model
Suitable for software built around graphical user interface
(GUI) and modern GUI-builder tools
Uses object points as a size metric
◦ extension of function points
◦ count of the screens, reports, and modules, weighted by a
three-level factor (simple, medium, difficult)
Application Points
Used with languages such as database programming
languages or scripting languages.
Number of application points is a weighted estimate of:
◦ Number of separate screens that are displayed:
Simple screens count as 1 object point, moderately
complex screens count as 2 and very complex screens
count as 3 object points.
Application Points cont …
• Number of reports that are produced: For simple reports,
count 2 object points, for moderately complex reports,
count 5 and for reports which are likely to be difficult to
produce, count 8 object points.
• Number of modules in languages such as Java or C++ that
must be developed to supplement the database
programming code. Each of these modules counts as 10
object points.
Application-point productivity
Developer’s
experience and
Very low Low Nominal High Very
capability high
ICASE
maturity and
Very low Low Nominal High Very
capability high
PROD
(NAP/month)
4 7 13 25 50
The Scale Drivers (Exponents)
•An important factor contributing to a project's duration and cost is the
Scale Driver.
•The Scale Drivers determine the exponent used in the Effort Equation.
•Scale Drivers have replaced the Development Modes of
COCOMO 81.
•The 5 Scale Drivers are:
Precedentedness
Development Flexibility
Architecture / Risk Resolution
Team Cohesion
Process Maturity
Early Design Model
Effort =A * (Environment Multipliers) * [ Size ]
( Process Scale Factors )
4
Halstead's Software Science
Halstead used primitive program parameters:
◦ developed expressions for:
over all program length,
potential minimum volume,
actual volume,
language level,
effort,
development time.
Halstead's Software Science cont…
For some given program, let:
◦ 1 be the number of unique operators used in the
program,
◦ 2 be the number of unique operands used in the
program,
◦ N1 be the total number of operators used in the
program,
◦ N2 be the total number of operands used in the
program.
Halstead's Software Science cont…
The terms operators and operands have intuitive
meanings,
◦ a precise definition of these terms is needed to avoid
ambiguities.
◦ Unfortunately there is no general agreement among
researchers
on definition of operators and operands:
Operators
Some general guidelines can be provided:
◦ All assignment, arithmetic, and logical operators are
operators.
◦ A pair of parentheses,
as well as a block begin --- block end pair, are
considered as single operators.
◦ A label is considered to be an operator,
if it is used as the target of a GOTO statement.
Operators
An if ... then ... else ... endif and a
while ... do construct are single operators.
A sequence (statement termination) operator ';' is a single
operator.
In function call
◦ Function name is an operator,
◦ I/O parameters are considered as operands.
Halstead's Software Science cont…
The set of operators for the ANSI C language:() [] .
, -> * + - ~ ! ++ -- * / % +
- << >> < > <= >= != == & ^
| && || = *= /= %= += -= <<=
>>= &= ^= |= : ? { ; CASE DEFAULT
IF ELSE SWITCH WHILE DO FOR GOTO
CONTINUE BREAK RETURN and a function
name in a function call
Halstead's Software Science cont…
Operands are those variables and constants
◦ which are being used with operators in expressions.
Note that variable names appearing in declarations
◦ are not considered as operands.
1
Examples
In the expression a = &b;
◦ {a, b} are operands and
◦ { =, &, ;} are operators.
12
Examples
The function name in a function definition
◦ not counted as an operator.
◦ int func ( int a, int b )
{ ...
}
the operators are: {}, ( )
We do not consider func, a, and b as operands, since
these are part of the function definition.
13
Examples cont…
In the function call statement: func ( a, b );
◦ func “,” ( ) and ; are considered as operators.
◦ variables a, b are treated as operands.
14
Length and Vocabulary
Length of a program quantifies
◦ total usage of all operators and operands in the program:
◦ Thus, length N=N1+N2.
Program vocabulary:
◦ number of unique operators and operands used in the
program.
◦ program vocabulary = 1 + 2 .
Program Volume
The length of a program:
◦ total number of operators and operands used in the
code
◦ depends on the choice of the operators and operands,
i.e. for the same program, the length depends on the
style of programming.
Program Volume cont …
We can have highly different measures of length
◦ for essentially the same problem.
To avoid this kind of problem,
◦ the notion of program volume V is introduced:
◦ V= N log2
Potential Minimum Volume
Intuitively, program volume V denotes
◦ minimum number of bits needed to encode the
program.
To represent different identifiers,
◦ we need at least log2 bits ( is the program
vocabulary)
Potential Minimum Volume cont …
The potential minimum volume V*:
◦ volume of the most succinct program in which the
program can be coded.
Potential Minimum Volume cont …
Minimum volume is obtained :
◦ when the program can be expressed using a single
source code instruction:
say, a function call like foo( ).
20
Potential Minimum Volume cont…
Lower bound on volume:
◦ a program would have at least two operators
◦ and no less than the requisite number of operands (i.e.
input/output data items).
Potential Minimum Volume cont …
If an algorithm operates on input/output data d1, d2,... dn,
◦ the most succinct program is f(d1,d2, ...,dn);
◦ for which 1 = 2, 2 =n
Therefore,V*=(2+ 2) log2(2+ 2)
Potential Level
The program level L is given by L=V*/V.
L is a measure of the level of abstraction:
◦ languages can be ranked into levels that appear
intuitively correct.
2
Effort and Time
Effort E=V/L, where
◦ E is the number of mental discriminations required to
write the program
◦ also the effort required to read and understand the
program.
Effort and Time cont …
Thus, programming effort E = (V^2) / V*
◦ since L= V*/V varies as the square of the volume.
Experience shows
◦ E is well correlated to the effort needed for
maintenance.
2
Effort and Time cont …
The programmer's time T=E/S,
◦ where S is the speed of mental discriminations developed
from psychological results due to Stroud,
◦ the recommended value for software is 18.
26
Length Estimation
Halstead assumed that it is quite unlikely that a program
has several identical parts ---
◦ or substrings of length greater than ( being the
program vocabulary).
27
Length Estimation cont …
In fact, once a piece of code occurs identically in several
places,
◦ it is usually made into a procedure or a function.
Thus, we can safely assume:
◦ any program of length N consists of N/ unique strings
of length .
28
Length Estimation cont…
Now, it is a standard combinatorial result, in which for any
given alphabet of size K,
◦ there are exactly K^r different strings of length r.
Thus, N/ <=
Or, N < = +1
Length Estimation cont …
Since operators and operands usually alternate in a
program,
◦ we can further refine the upper bound into
N < = (1) 1 (2) 2 .
3
Length Estimation cont…
Also, N must include not only the ordered set of N
elements,
◦ but it must also include all possible subsets of that
ordered set, i.e. the power set of N strings.
◦ Therefore, 2N= (1) 1 (2) 2 .
Length Estimation cont …
On solving, we get
N = log2 + log2 (1122 )
N=log2 (1122 ) (approx. by ignoring log2 )
N=log2 (1) 1 + log2 (2) 2
N=1 log2 1 + 2 log2 2
Experimental analysis of large number of programs
suggests:
◦ the computed and actual lengths match very closely.
32
Example
main()
{
int a,b,c,avg;
scanf("%d %d %d",&a,&b,&c);
avg=(a+b+c)/3;
printf("avg= %d",avg);
}
33
Example:
The unique operators are:
main, (), {}, int, scanf,&,
",", ";", =, +, /, printf
The unique operands are:
a,b,c,&a,&b,&c,a+b+c,avg,3,
"%d %d %d", "avg=%d”
34
Example cont…
Therefore, 1=12, and 2=11
So, Estimated Length=(12*log12+11*log11)
=(12*3.58 + 11*3.45) =(43+38)=81
Volume=Length*log(23)=81*4.52=366
35
Summary
Discussed Halstead’s software science for estimating
length
volume
effort
Time
Worked out some examples using Halstead’s software
science
36
References:
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt.
Ltd., 2018.
Thank you
Software Project Management
Manpower
TD
Time
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.
Putnam’s 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.
Putnam’s Work cont…
Ck =2 for poor development environment
◦ no methodology, poor documentation, and review, etc.
Ck =8 for good software development environment
◦ software engineering principles used
Ck =11 for an excellent environment
Rayleigh Curve cont …
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.
Manpower
TD
Time
Rayleigh Curve cont …
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.
Rayleigh Curve cont …
From the Rayleigh curve we may observe that:
◦ approximately 40% of the area under the Rayleigh curve is
to the left of td
◦ and 60% to the right.
Putnam’s Model
Lines of code: SS
Person years invested: K
Time to develop: td
Technology coefficient: Ck
Putnam’s Model
Lines of code: S S C k K 1 / 3t d4 / 3
3
SS
Person years invested: K
C t 4/3
k d
3/ 4
Time to develop: SS
td
C K 1/ 3
k
Putnam’s Work
Putnam adapted the Rayleigh-Norden curve:
◦ Related the number of delivered lines of code to the
effort and the time required to develop the product.
◦ Studied the effect of schedule compression:
Effort Applied vs. Delivery Time
There is a nonlinear relationship between effort applied
and delivery time (Putnam-Norden-Rayleigh Curve)
◦ Effort increases rapidly as the delivery time is reduced
Effort Applied vs. Delivery Time
Effort
cost
Impossible
region
E theoretical
E optimal
t minimum t theoretical t optimal
Development time
Effect of Schedule Change on Cost
Using the Putnam's expression for L,
K=L3/ Ck 3td4
Or, K=C1/td4
td K
1 988 person-month
1.5 195 person-month
2 62 person-month
Limitations of Putnam’s Model
Putnam model indicates extreme penalty for schedule
compression
◦ and extreme reward for expanding the schedule.
Putnam estimation model works reasonably well for very
large systems,
◦ but seriously overestimates the effort for medium and
small systems.
Effect of Schedule Change on Cost cont…
Boehm observed:
2
Sequence of Estimations and Scheduling
Effort Cost
Estimation Estimation
Size Staffing
Estimation Estimation
Duration
Estimation Scheduling
0.Select
Activity planning is carried out 1. Identify
project scope & objectives
project 2. Identify project
infrastructure
3. Analyse
project
characteristics
in steps 4 & 5
risks
10. Lower level
7. Allocate
planning
resources
8. Review/ publicize
9. Execute plan plan
Introduction to Scheduling
Scheduling the project tasks is an important project
planning activity.
The scheduling problem, in essence, consists of deciding
which tasks would be taken up when and by whom.
Once a schedule has been worked out and the project gets
underway, the project manager monitors the timely
completion of the tasks and
◦ takes any corrective action that may be necessary whenever there is
a chance of schedule slippage.
5
Steps for Scheduling
In order to schedule the project activities, a project manager
needs to do the followings:
1. Identify all the major activities that need to be carried out to
complete the project.
2. Break down each activity into tasks.
3. Determine the dependency among different tasks.
4. Establish the estimates for the time durations necessary to
complete the tasks.
6
Steps for Scheduling
5. Represent the information in the form of an activity network.
6. Determine task starting and ending dates from the information
represented in the activity network.
7. Determine the critical path. A critical path is a chain of tasks that
determines the duration of the project.
8. Allocate resources to tasks.
7
Steps for Scheduling cont …
The first step in scheduling a software project involves
identifying all the activities necessary to complete the
project. A good knowledge of the intricacies of the project
and the development process helps the managers to
effectively identify the important activities of the project.
Next, the activities are broken down into a logical set of
smaller activities (sub-activities). The smallest sub-activities
are called tasks which are assigned to different developers.
A project manager breakdowns the tasks systematically by
using the work breakdown structure (WBS).
8
Scheduling cont …
After the project manager has broken down the activities
into tasks, he has to find the dependency among the tasks.
Dependency among the different tasks determines the order
in which the different tasks would be carried out.
If a task A requires the results of another task B, then task A
must be scheduled after task B and A is said to be dependent
on B.
The task dependencies define a partial ordering relation
among tasks, i.e. each task may precede a subset of other
tasks, but some tasks might not have any precedence
ordering defined between them (called concurrent tasks ).
The dependency among the activities are represented in the
form of an activity network. 9
Steps for Scheduling cont …
Once the activity network representation has been worked
out, resources are allocated to each activity. Resource
allocation is typically done using a Gantt Chart.
After resource allocation is done, a project evaluation and
review technique (PERT) chart representation is developed.
The PERT chart representation is useful to a project
manager to carry out project monitoring and control.
Let us now discuss the work break down structure, activity
network, Gantt and PERT charts.
10
Work Breakdown Structure
Work breakdown structure (WBS) is used
◦ to recursively decompose a given set of activities into smaller
activities.
Tasks are the lowest level work activities in a WBS
hierarchy.
They also form the basic units of work that are allocated
to the developer and scheduled.
11
Necessity of breaking down project activities
into tasks
Once project activities have been decomposed into a set of
tasks using WBS,
◦ the time frame when each activity is to be performed is to be
determined.
The end of each important activity is called a milestone.
The project manager tracks the progress of a project by
monitoring the timely completion of the milestones.
If he observes that some milestones start getting delayed,
◦ he carefully monitors and controls the progress of the tasks, so that
the overall deadline can still be met.
12
Work Breakdown Structure
WBS provides a notation for representing
◦ the activities, sub-activities, and tasks needed to be carried out in order
to solve a problem.
Each of these is represented using a rectangle as node of a
tree.The root of the tree is labeled by the problem name.
Each node of the tree is broken down into smaller activities
that are made the children of the node.
It is not useful to subdivide tasks into units which take less
than a week or two to execute.
◦ Finer subdivisions mean that a large amount of time must be spent on
estimating and chart revision.
13
Work Breakdown Structure - Example
Compiler Project
15
Breaking down tasks to too coarse levels
versus too fine levels
Let us investigate the implications of carrying out the decompositions to
very coarse levels versus decomposing to very fine levels.
When the granularity of the tasks is several months, by the time a
problem (schedule delay) is noticed and corrective actions are initiated, it
may be too late for the project to recover.
On the other hand, if the tasks are decomposed into very small
granularity (one or two days), then the milestones get too closely spaced.
This would require frequent monitoring of the project status and entail
frequent revisions to the plan document.
This becomes a high overhead on the project manager and his
effectiveness in project monitoring and control gets reduced.
16
Breaking down tasks to too coarse levels
versus too fine levels cont …
While breaking down an activity into smaller tasks, a manager often has
to make some hard decisions.
If an activity is broken down into a large number of very small sub-
activities, these can be distributed to a larger number of developers.
If the task ordering permits that solutions to these can be carried out
independently (parallely), it becomes possible to develop the product
faster (with the help of additional manpower of course!).
Therefore, to be able to complete a project in the least amount of time,
the manager needs to break large tasks into smaller ones, expecting to
find more parallelism.
However, it is not useful to subdivide tasks into units which take less than
a week or two to execute. 17
Scheduling
Many managers believe
◦ an aggressive schedule motivates the engineers to do a
better and faster job.
◦ However, careful experiments show:
unrealistic aggressive schedules cause engineers to compromise on
intangible quality aspects,
also cause schedule delays.
18
Scheduling cont …
A good way to achieve accuracy:
◦ let people set their own schedules.
Schedule for a large-sized task may take too long:
◦ Managers need to break large tasks into smaller ones to
find more parallelism
can lead to shorter development time.
Small-sized tasks help in better tracking
19
Example
Consider a project for development of a management
information system (MIS).
The project manager has identified the main development
activities to be
◦ Requirements specification
◦ Design
◦ Code
◦ Test
◦ document
20
WBS of management information system (MIS)
MIS application
27
Summary
Discussed Steps for Scheduling
Explained Work Breakdown Structure
Presented Activity Planning
Discussed about project schedules
28
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you
Software Project Management
3
Defining Activities
A project is composed of a number of interrelated activities.
A project may start when at least one of its activities is
ready to start.
A project will be completed when all of the activities it
encompasses have been completed.
An activity must have a clearly defined start and a clearly
defined end-point, normally marked by the production of a
tangible deliverable.
4
Defining Activities cont …
If an activity requires a resource, then that resource
requirement must be forecastable and is assumed to be
required at a constant level throughout the duration of the
activity
The duration of an activity must be forecastable - assuming
normal circumstances, and the reasonable availability of
resources.
Some activities might require that others are completed
before they can begin (these are known as precedence
requirements).
5
Identifying activities
Essentially there are three approaches to identifying the
activities or tasks that make up a project:
◦ the activity-based approach,
◦ the product-based approach and
◦ the hybrid approach
6
The activity based approach
It consists of creating a list of all the activities that the
project is thought to involve.
This might require a brainstorming session involving the
whole project team or it might stem from an analysis of
similar past projects.
When listing activities, particularly for a large project, it might
be helpful to subdivide the project into the main life cycle
stages and consider each of these separately.
Rather than doing this in an ad hoc manner, with the obvious
risks of omitting or double-counting tasks, a much favoured
way of generating a task list is to create a Work Breakdown
Structure (WBS).
7
The product-based approach
It consists of producing a Product Breakdown Structure (PBS) and a
Product Flow Diagram (PFD).
PFD indicates, for each product, which other products are required as
inputs. PFD can be easily transformed into an ordered list of activities by
identifying the transformations that turn some products into others.
Proponents of this approach claim that it is less likely that a product will be
left out of a PBS than that an activity might be omitted from an
unstructured activity list.
This approach is suitable when using methodologies such as SSADM or
USDP, which clearly specifies, for each step or task, each of the products
required and the activities required to produce it.
For example, the SSADM Reference Manual provides a set of generic PBSs
for each stage in SSADM, which can be used as a basis for generating a
project specific PBS. 8
The product-based approach cont …
In the USDP, products are referred to as artefacts, and the sequence of
activities needed to create them is called a workflow.
USDP emphasizes that processes are iterative. This means that it may not
be possible to map a USDP process directly onto a single activity in a
network.
9
10
A structuring of activities for USDP reqmnts capture work flow
11
The hybrid approach
The WBS discussed earlier is based entirely on a structuring of
activities.
Alternatively, and perhaps more commonly, a WBS may be based upon
the project's products as shown in next figure, which is in turn based
on a simple list of final deliverables and, for each deliverable, a set of
activities required to produce that product.
Next figure illustrates a flat WBS.
12
The hybrid approach
13
The hybrid approach
It is likely that, in a project of any size, it would be beneficial to
introduce additional levels – structuring both products and activities.
The degree to which the structuring is product-based or activity-based
might be influenced by the nature of the project and the particular
development method adopted.
As with a purely activity-based WBS, having identified the activities, we
are then left with the task of sequencing them.
A framework dictating the number of levels and the nature of each
level in the structure may be imposed on a WBS. For example, IBM
recommends that the following five levels should be used in a WBS:
14
The hybrid approach
Level 1: Project.
Level 2: Deliverables such as software, manuals and training courses.
Level 3: Components, which are the key work items needed to produce
deliverables, such as the modules and tests required to produce the
system software.
Level 4: Work-packages, which are major work items, or collections of
related tasks, required to produce a component.
Level 5: Tasks, which are tasks that will normally be the responsibility of
a single person.
15
Network Planning Models or Activity
Networks
These project scheduling techniques model the project's activities and
their relationships as a network.
In the network, time flows from left to right. These techniques were
originally developed in the 1950s – the two best known being CPM
(Critical Path Method) and PERT (Program Evaluation Review
Technique).
Both of these techniques used an activity-on-arrow approach to
visualizing the project as a network where activities are drawn as
arrows joining circles, or nodes, which represent the possible start
and/or completion of an activity or set of activities.
More recently a variation on these techniques, called precedence
networks, has become popular.
16
Network Planning Models or Activity
Networks
This method uses activity-on-node networks where activities are represented
as nodes and the links between nodes represent precedence (or sequencing)
requirements.
This latter approach avoids some of the problems inherent in the activity-on-
arrow representation and provides more scope for easily representing certain
situations.
This method is adopted in majority of computer applications currently available.
These methods are very similar and it must be admitted that many people use
the same name (particularly CPM) indiscriminately to refer to any or all of the
methods.
17
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)
◦ Activity on Edge (AOE) or Activity on Arrow (AOA)
18
Activity Networks
WBS structure can be refined into an activity network
representation:
◦ Network of boxes and arrows
◦ shows different tasks making up a project,
◦ represents the ordering among the tasks.
It is important to realize that developing WBS and activity
network
◦ requires a thorough understanding of the tasks involved.
19
Activity on Node (AON)
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.
20
Activity on Edge (AOE)
Tasks are associated with the edges.
The edges are also annotated with the task duration.
The nodes in the graph represent project milestones.
21
Activity networks
Activity networks were originally represented using activity
on edge (AOE) representation.
However, later activity on node (AON) has become popular
since this representation is easier to understand and revise.
22
Example
Consider MIS development project.
Suppose the project manager has determined the durations
and dependencies for each task as given in table.
Write Manual
Activity Networks cont …
Managers can estimate the time durations for the different
tasks in several ways.
One possibility is that they can empirically assign durations to
different tasks.
This however may not be such a good idea, because software
developers often resent such unilateral decisions.
However, some managers prefer to estimate the time for
various activities themselves.
26
Activity Network cont …
They believe that an aggressive schedule would motivate
the developers to do a better and faster job.
On the other hand, careful experiments have shown that
unrealistically aggressive schedules not only cause
developers to compromise on intangible quality aspects,
◦ but also cause greater schedule delays compared to the other
approaches.
27
Activity Networks cont …
A possible alternative is to let each developer himself
estimate the time for an activity he would be assigned to.
This approach can help to accurately estimate the task
durations without creating undue schedule pressures.
28
Gantt Charts
Named after its developer Henry Gantt.
◦ a form of bar chart:
each bar represents an activity,
bars are drawn against a time line,
length of each bar is proportional to the length of time planned for
the activity.
Vertical axis lists all the tasks to be performed.
The bars are drawn along the y-axis, one for each task.
29
Gantt Charts cont …
Gantt charts are not specific to software engineering.
Gantt charts used in software project management are:
◦ enhanced version of standard Gantt charts.
◦ colored (shaded) part of a bar shows the length of time a task is
estimated to take.
◦ white (unshaded) part shows the slack time or lax time,
the latest time by which a task must be finished.
30
31
Gantt chart for MIS problem
Gantt Chart for Compiler Project
Requirements
Design
Code Lexer
Code Parser
Code Code Generator
Test
Write Manual
32
Gantt Chart cont …
Gantt charts are useful for resource planning (i.e. allocate
resources to activities).
The different types of resources that need to be allocated
to activities include
◦ Staff
◦ Hardware
◦ Software
33
Gantt Chart cont …
Gantt chart representation of a project schedule is helpful in
planning the utilisation of resources,
◦ while PERT is useful for monitoring the timely progress of activities.
Also, it is easier to identify parallel activities in a project using
a PERT chart.
Project managers need to identify the parallel activities in a
project for assignment to different developers.
34
Available Online Tools
GanttProject
ProjectLibre
2
CPM and PERT Charts
While Gantt charts show the different tasks and their
durations clearly:
◦ they do not show inter-task dependencies explicitly.
◦ this shortcoming of Gantt charts is overcome by PERT charts.
CPM & PERT are operation research techniques developed
in the late 1950s.
Later, these 2 techniques have got merged & many tools
support them as CPM/PERT.
3
Critical Path Method
Critical Path Method (CPM) is a technique for:
◦ Identifying critical paths
◦ Managing project.
The CPM technique is not specific to software engineering
◦ has a much wider use.
4
Critical Path Method
CPM can assist in answering questions like:
◦ What are the critical paths in the project?
◦ What is the shortest time in which the project can be completed?
◦ What is the earliest (or latest) time a task can be started (or finished)
without delaying the project?
5
Critical Path Method (CPM)
A path in the activity network (graph) is any set of
consecutive nodes and edges from the starting node to the
last node.
A critical path consists of a set of dependent tasks that
need to be performed in a sequence and which together
take the longest time to complete.
6
Critical Path Method (CPM)
A critical task is one with a zero slack time.
A path from the start node to the finish node containing
only critical tasks is called a critical path.
7
Critical Path Method (CPM)
A critical path:
◦ is a path along which every milestone is critical to meeting the project
deadline.
A Critical Path is a chain of tasks that determine the
duration of the project.
8
Critical Path Method (CPM)
A critical path is a sequence of tasks such that
◦ a delay in any of the tasks will cause a delay to the entire project.
There can be more than one critical path in a project.
It is important for the project manager to be aware of the
critical paths in a project:
◦ can ensure that tasks on these paths are completed on time.
9
Critical Path Method (CPM)
Other tasks may have some room for delay without affecting
the entire project.
◦ If necessary, the manager may switch resources from a noncritical task
to a critical task.
Several software packages are available for automating the
scheduling process:
◦ MacProject on Apple Macintosh computer
◦ MS-Project on Microsoft Windows Operating System.
10
Critical Path Method (CPM)
CPM is an algorithmic approach to determine the critical
paths and slack times for tasks not in the critical paths.
It involves calculating the following quantities:
◦ Minimum time (MT)
◦ Earliest start time (ES)
◦ Latest start time (LS)
◦ Earliest finish time (EF)
◦ Latest finish time (LF)
◦ Slack time (ST) (or float time)
11
Quantities to be calculated in CPM
Minimum time (MT)
◦ Minimum time required to complete the project.
◦ Computed by determining the maximum of all paths from start node
to finish node.
Earliest start time (ES)
◦ The time of a task which 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.
12
Quantities to be calculated in CPM cont…
13
Quantities to be calculated in CPM
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 time (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.
◦ Obtained by subtracting maximum of all paths from this task to finish
node from MT.
14
Quantities to be calculated in CPM
Slack time (ST) (or float time)
◦ Total time that a task may be delayed before it will affect the end time
of the project.
◦ Indicates the flexibility in starting and completion of tasks.
◦ ST for a task is LS-ES and can equivalently be written as LF-EF.
15
What data do we need to construct a
CPM graph?
To construct a CPM graph,
◦ A list of tasks and their durations are required.
◦ Also, for each task a list of tasks upon which it depends is required.
◦ A task may depend on more than one task.
The task details can be given in the form of a table.
16
How do we work out the various start
and finish times for tasks?
Minimum time to complete project (MT) = Maximum of all
paths from start to finish
Earliest start time (ES) of a task = Maximum of all paths from
start to this task
Earliest finish time (EF) of a task = ES + duration of the task
Latest finish time (LF) of a task = MT - Maximum of all paths
from this task to finish
Slack time = LS - ES = LF - EF
17
What are the float time (or slack time) of
tasks?
Float time (or slack time) is the total time that a task may
be delayed
◦ before it will affect the end time of the project.
The float times indicate the "flexibility" in starting and
completion of tasks:
A critical activity is an activity with zero (0) slack or float
time.
18
Example - Activity Network for MIS
Design database Code database
45 105
20
Example: MIS problem
Steps for finding the critical path
Compute ES and EF for each task
◦ Use the rule: ES is equal to the largest EF of the immediate
predecessors
Compute LS and LF for each task
◦ Use the rule: LF is equal to the smallest LS of the immediate successors
Compute ST for each task
◦ Use the rule: ST=LF-EF
21
Project parameters (ES & EF) for MIS problem
Task Duration ES EF
Specification 15 0 15
Design data 45 15 60
base
Design GUI 30 15 45
part
Code data 105 60 165
base
Code GUI 45 45 90
part
Integrate 120 165 285
and test
Write user 60 15 75
manual
22
Project parameters (LS & LF) for MIS problem
Task Duration LS LF
Specification 15 0 15
Design data 45 15 60
base
Design GUI 30 90 120
part
Code data 105 60 165
base
Code GUI 45 120 165
part
Integrate 120 165 285
and test
Write user 60 225 285
manual
23
Slack Times for MIS problem
Task ES EF LS LF ST
Specification 0 15 0 15 0
Design data 15 60 15 60 0
base
Design GUI 15 45 90 120 75
part
Code data 60 165 60 165 0
base
Code GUI part 45 90 120 165 75
(ES, EF)
Write user manual
(15, 75)
LS and LF for MIS problem (LS, LF) (LS, LF)
Design database Code database
(15, 60) (60, 165)
(LS, LF)
Write user manual
(225, 285)
Critical Path for MIS problem (EF, LF) (EF, LF)
Design database Code database
(60, 60) (165, 165)
(EF, LF)
Write user manual
(75, 285)
Screenshot showing the Activity Network
& CP for MIS Problem using ProjectLibre
28
Summary
We have discussed Critical Path Method (CPM).
Solved an example to find the critical path.
29
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth
Edition, McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI
Learning Pvt. Ltd., 2018.
Thank you
Software Project Management
2
Formulating a Network Model
The first stage in creating a network model is to represent the
activities and their interrelationships as a graph". In activity-on-
node, we do this by representing activities as nodes (boxes) in
the graph.The edges between nodes represent dependencies.
Some rules for constructing precedence networks
A project network should have only one start node
A project network should have only one end node
A node has some duration
Links normally have no duration
Precedents are the immediate preceding activities
Time moves from left to right
A network may not contain loops
A network should not contain dangles
3
A project network should have only one start node
4
A project network should have only one end node
5
A node has some duration
A node represents an activity and, in general, activities take
time to execute.
Notice, however, that the network in the next figure does
not contain any reference to durations.
This network drawing merely represents the logic of the
project – the rules governing the order in which activities
are to be carried out.
6
The IOE annual maintenance contracts project activity
network fragment with a checkpoint activity added
7
Links normally have no duration
Links represent the relationships between activities. Normally, links do
not have any duration.
In the below figure, installation cannot start until program testing is
complete. Program testing cannot start until both coding and data take-
on have been completed.
9
Time moves from left to right
If at all possible, networks are drawn so that time moves
from left to right.
It is rare that this convention needs to be flouted but some
people add arrows to the lines to give a stronger visual
indication of the time flow of the project.
10
A network may not contain loops
The next figure demonstrates a loop in a network. A loop is
an error in the sense that it represents a situation that
cannot occur in practice.
While loops, in the sense of iteration, may occur in practice,
they cannot be directly represented in a project network.
Note that the logic of the figure suggests that program
testing cannot start until the errors have been corrected.
11
A loop represents an impossible sequence
12
A network may not contain loops cont…
If we know the number of times we expect to repeat a set of
activities, e.g. a test-diagnose--correct sequence, then we can draw
that set of activities as a straight sequence, repeating it the
appropriate number of times.
If we do not know how many times a sequence is going to be
repeated then normally we cannot calculate the duration of the
project unless we adopt an alternative strategy.
Although it is easy to see the loop in this simple network fragment,
very large networks can easily contain complex loops which are
difficult to spot when they are initially constructed. All network
planning applications usually detect loops and generate error
messages when they are found. 13
A network should not contain dangles
A dangling activity such as 'Write user manual in the figure
should not exist as it is likely to lead to errors in subsequent
analysis.
Indeed, in many cases dangling activities indicate errors in logic
when activities are added as an afterthought.
If, in the figure, we mean to indicate that the project is complete
once the software has been installed and the user manual written,
then we should redraw the network with a final completion
activity - which, at least in this case, is probably a more accurate
representation of what should happen.
The redrawn network is shown in the next figure.
14
Figure: a dangle
18
Another way of labeling activities
21
Activity Network
6 wks 3 wks
A. Hardware selection C. Install hardware
23
After Forward Pass Step 1
0 6 wks 6 3 wks
A. Hardware selection C. Install hardware
24
After Forward Pass Step 2
0 6 wks 6 6 3 wks 9
A. Hardware selection C. Install hardware
25
After Forward Pass Step 3 (Final)
0 6 wks 6 6 3 wks 9
A. Hardware selection C. Install hardware
26
The Backward Pass
The backward pass is carried out to calculate the latest start
date at which each activity may be started and finished
without delaying the end date of the project.
Rule
◦ The latest finish date for an activity is the latest start date for the
activity that commences immediately that activity is complete.
◦ Where more than one activity can commence we take the earliest of
the latest start dates for those activities.
27
After Backward Pass Step 1
0 6 wks 6 6 3 wks 9
A. Hardware selection C. Install hardware
7 3 10 10 0 13
29
After Backward Pass Step 3 (Final)
0 6 wks 6 6 3 wks 9
A. Hardware selection C. Install hardware
8 11
2 2 8 8 2 11
0 10 wks 10 4 10
3 wks 7 10 313
wks 13
F. Recruit staff E. Draft office proc G. User training
0 0 10 7 3 10 10 0 13
30
Critical Path
The critical path is the longest path through the network.
The difference between an activity’s earliest start date and
its latest start date (or equally, the difference between its
earliest and latest finish dates) is known as activity’s float.
Any activity with a float of zero is critical in the sense that
◦ any delay in carrying out the activity will delay the completion date of
the project as a whole.
31
Activity float
Free float
◦ The time by which an activity may be delayed without affecting any
subsequent activity.
◦ It is calculated as the difference between the earliest completion date
for the activity and the earliest start date of the succeeding activity.
Interfering float
◦ The difference between total float and free float.
◦ It tells by how much the activity may be delayed without delaying the
project end date,
even though it will delay the start of some subsequent activities.
32
Critical Path
0 6 wks 6 6 9
Critical Activities – F, G
3 wks
A. Hardware selection C. Install hardware
2 2 8 8 2 11
33
The example shown in ProjectLibre with
duration & predecessors
34
The WBS for the example
35
Gantt chart for the example
36
Activity Network showing the Critical Path
for the example
37
The task usage details for the example
38
Shortening the Project Duration
If we wish to shorten the overall duration of a project we
would normally consider attempting to reduce activity
durations. In many cases this can be done by applying more
resources to the task – either working overtime or
procuring additional staff.
The critical path indicates where we must look to save time -
if we are trying to bring forward the end date of the project,
there is clearly no point in attempting to shorten non-critical
activities.
For example, in last figure, it can be seen that we could
complete the project in week 12 by reducing the duration of
the critical activity F by one week (i.e. to 9 weeks). 39
Shortening the Project Duration cont…
As we reduce activity times along the critical path, we must continually
check for any non critical path emerging and redirect our attention
wherever necessary.
There will come a point when we can no longer safely, or cost-effectively,
reduce the critical activity durations in an attempt to bring forward the
project end date.
Further savings, if needed, must be sought in a consideration of our work
methods and by questioning the logical sequencing of activities.
Generally, time savings are to be found by increasing the amount of
parallelism in the network and the removal of bottlenecks.
40
Summary
Discussed the rules to construct the activity networks.
Solved another example on finding the critical activities
and critical path.
Discussed how to shorten the project duration.
41
References:
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth
Edition, McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI
Learning Pvt. Ltd., 2018.
Thank you
Software Project Management
2
Activity on Edge Network
Activities are represented by links/edges/arrows.
Nodes represent events of activities (or group of activities)
starting or finishing.
3
Example
Activity Activity Name Duration Precedence
Label (Weeks)
A Hardware Selection 6 ---
C Install hardware 3 A
D Data migration 4 B
E Draft office procedures 3 B
F Recruit staff 10 ---
G User training 3 E,F
H Install and test 2 C,D
Corresponding AOE Network
5
AOE Rules and Conventions
A project network may have only one start node.
◦ This is a requirement of activity on edge networks rather than merely
desirable as is the case with activity on node networks.
A project network may have only one end node.
◦ Again, this is a requirement for activity on edge networks.
6
AOE Rules and Conventions
A link has duration
◦ A link represents an activity and in general, activities take time to
execute.
◦ The links are not drawn in any way to represent the activity durations.
◦ The network drawing merely represents the logic of the project
The rules governing the order in which activities are to be carried out.
7
AOE Rules and Conventions
Nodes have no duration
Nodes are events and are instantaneous points in time.
The source node is the event of the project becoming ready
to start
The sink node is the event of the project becoming
completed.
Intermediate nodes represent two simultaneous events
The event of all activities leading into a node having been completed
and the event of all activities leading out of that node being in a position to
be started.
8
AOE Rules and Conventions
Node 3 is the event that both coding and data take-on have
been completed and the activity program test is free to start.
Installation may be started only when event 4 has been
achieved, i.e. as soon as program test has been completed.
9
AOE Rules and Conventions
Time moves from left to right.
◦ In AOE networks, time moves from left to right.
Nodes are numbered sequentially.
◦ There are no precise rules about node numbering but
nodes should be numbered so that head nodes (those at the arrow end of
an activity) always have a higher number than tail events (those at the non-
arrow end of an activity).
This convention makes it easy to spot loops.
10
AOE Rules and Conventions
A network may not contain loops.
◦ Loops are either an error of logic or a situation that must be resolved
by itemizing iterations of activity groups.
◦ A loop represents an impossible sequence.
11
AOE Rules and Conventions
A network may not contain dangles.
◦ A dangling activity cannot exist
as it would suggest there are two completion points for the project.
Node 5 represents the true project completion point and
there are no activities dependent on activity Write user
manual.
12
AOE Rules and Conventions
Then the network should be redrawn so that activity Write
user manual starts at node 2 and terminates at node 5.
In practice, we would insert a dummy activity between
nodes 3 and 5.
In other words, all events, except the first and the last, must
have
◦ at least one activity entering them and
◦ at least one activity leaving them and
◦ all activities must start and end with an event.
13
Dummy Activity
When two paths within a network have a common event
although they are, in other respects, independent,
◦ A logical error might occur.
14
Dummy Activity
Suppose, it is necessary to specify a piece of hardware
before placing an order for it and before coding the
software.
Before coding the software, it is also necessary to specify
the appropriate data structures, although clearly we do not
wait for this to be done before the hardware is ordered.
15
Dummy Activity
The following figure models the situation.
16
Dummy Activity
The network is incorrect
◦ as it requires both hardware specification and data structure design to
be completed before either an order may be placed or software
coding may commence.
The problem is resolved by
◦ separating the two (more or less) independent paths and introducing
a dummy activity to link the completion of specify hardware to the
start of the activity code software.
17
Dummy Activity
This effectively breaks the link between data structure
design and placing the order.
18
Dummy Activity
Dummy activities, shown as dotted lines on the network
diagram, have a zero duration and use no resources.
They are often used to aid in the layout of network
drawings.
19
Dummy Activity
The use of a dummy activity where two activities share the
same start and end nodes makes it easier to distinguish the
activity end points.
These problems do not occur with activity on node (AON)
network.
20
Representing lagged activities
Activity on edge networks are less elegant when it comes to
representing lagged parallel activities.
We need to represent these with pairs of dummy activities as
shown below.
22
Activity labeling
One of the more common conventions for labeling nodes is
◦ to divide the node circle into quadrants and
◦ use those quadrants to show
the event number,
the latest and
earliest dates by which the event should occur, and
the event slack.
Event
number
Earliest Latest
date date
Slack 23
Network Analysis
Analysis proceeds in the same way as with activity on node
networks, although the discussion places emphasis on the
events rather than activity start and completion time.
24
Example
Activity Activity Name Duration Precedents
Label (Weeks)
A Hardware Selection 6 ---
C Install hardware 3 A
D Data migration 4 B
E Draft office procedures 3 B
F Recruit staff 10 ---
G User training 3 E,F
H Install and test 2 C,D
Forward Pass
The earliest start date for an event is
◦ the earliest finish date for all the activities terminating at that event.
Where more than one activity terminates at a common
event
◦ we take the latest of the earliest finish dates for those activities.
26
Forward Pass
27
Forward Pass
Activity Duration Earliest Latest Earliest Latest Total float
(weeks) start date start finish date finish
date date
A 6 0 6
B 4 0 4
C 3 6 9
D 4 4 8
E 3 4 7
F 10 0 10
G 3 10 13
H 2 9 11
28
Backward Pass
The latest finish date for an event is the latest start date for
all the activities that may commence from that event.
Where more than one activity commences at a common
event we take the earliest of the latest start dates for those
activities.
29
Backward Pass
30
Backward Pass
Activity Duration Earliest Latest Earliest Latest Slack
(weeks) start date start finish date finish Time
date date
A 6 0 2 6 8 2
B 4 0 3 4 7 3
C 3 6 8 9 11 2
D 4 4 7 8 11 3
E 3 4 7 7 10 3
F 10 0 0 10 10 0
G 3 10 10 13 13 0
H 2 9 11 11 13 2
31
Identifying the critical path
Critical activities are activities with 0 slack time (F & G).
Critical path is the path joining all nodes with a 0 slack time.
Here, CP is through nodes 1-5-6. The critical path is the
longest path in the network.
32
Example
A project involves three tasks:
◦ task a takes 4 hours,
◦ task b takes 5 hours
◦ task c takes 8 hours.
◦ task c cannot commence until task a is completed.
What is the shortest time in which the project can be
completed?
1
start b=5 finish
a=4 2 c=8 3
33
Example
Clearly, the project continues until task a and then task c
complete:
◦ which is 12 hours.
◦ Task b takes only 5 hours.
◦ Task b can have 7 hours of leeway to start and finish.
1
start b=5 finish
a=4 2 c=8 3
34
CPM
CPM can be used to determine the minimum estimated
duration of a project and the slack times associated with
various non-critical tasks.
Thus, any path whose duration equals MT is a critical path.
There can be more than one critical path for a project.
Tasks which fall on the critical path should receive special
attention by both project manager and the personnel
assigned to perform those tasks.
35
CPM
One way is to draw the critical paths with a double line
instead of a single line or the path may be coloured.
The critical path may change as the project progresses.
This may happen when tasks are completed either behind
or ahead of schedule.
36
Summary
We have discussed Activity-On-Edge Network.
The rules for constructing Activity-On-Edge Network.
Solved some examples for finding the critical path in
Activity-On-Edge Networks.
37
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth
Edition, McGraw Hill Education (India) Pvt. Ltd., 2018.
Thank you
Software Project Management
2
What is PERT and how does it work?
PERT (Program Evaluation and Review Technique) is a
variation of CPM:
◦ incorporates uncertainty about duration of tasks.
Gantt charts can be derived automatically from PERT charts.
Gantt chart representation of schedule is helpful in planning
the utilization of resources,
◦ while PERT chart is more useful for monitoring the timely progress of
activities.
3
Program Evaluation and Review Technique (PERT)
The activity durations computed using an activity network
are only estimated duration.
It is therefore not possible to estimate the worst case
(pessimistic) and best case (optimistic) estimations using an
activity diagram.
Since, the actual durations might vary from the estimated
durations,
◦ the utility of the activity network diagrams are limited.
The CPM can be used to determine the duration of a project,
◦ but does not provide any indication of the probability of meeting that
schedule. 4
Program Evaluation and Review Technique (PERT)
PERT charts are a more sophisticated form of activity chart.
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.
5
Program Evaluation and Review Technique (PERT)
6
Program Evaluation and Review Technique (PERT)
PERT charts, like activity networks consist of a network of
boxes and arrows.
The boxes represent activities and the arrows represent
task dependencies.
A PERT chart represents the statistical variations in the
project estimates assuming these to be normal
distribution.
7
Program Evaluation and Review Technique
(PERT)
PERT allows for some randomness in task completion times,
and therefore provides the capability to determine
the probability for achieving project milestones based on the
probability of completing each task along the path to that milestone.
8
Program Evaluation and 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.
9
Program Evaluation and Review Technique
(PERT)
The optimistic (O) and worst case (W) estimates represent
the extremities of all possible scenarios of task completion.
The most likely estimate (M) is the completion time that
has the highest probability.
The three estimates are used to compute the expected
value of the standard deviation.
10
Program Evaluation and Review Technique
(PERT)
The entire distribution lies between the interval (M-3*ST)
and (M+3*ST),
◦ where ST is the standard deviation.
Thus, the standard deviation for a task is ST=(W-O)/6.
The mean estimated time ET=(O+4M+W)/6.
11
Program Evaluation and Review Technique
(PERT)
Since all possible completion times between the minimum
and maximum duration for every task has to be considered
◦ there can be many critical paths,
depending on the various permutations of the estimates for each task.
This makes critical path analysis in PERT charts very
complex.
12
Program Evaluation and Review Technique (PERT)
13
PERT
PERT was developed to take account of the uncertainty
surrounding estimates of task durations.
It was developed in an environment of expensive, high risk
and state-of-the-art projects
◦ Not that dissimilar to many of today’s large software projects.
14
Estimates in PERT
Most likely time
◦ The time we would expect the task to take under normal
circumstances.
◦ We shall identify this by the letter m or M.
Optimistic time
◦ The shortest time in which we could expect to complete the activity,
barring outright miracles.
◦ We shall use the letter a or O, for this.
Pessimistic time
◦ The worst possible time, allowing for all reasonable eventualities but
excluding ‘acts of God and warfare’.
◦ We shall call this b or P. 15
Estimates in PERT
PERT then combines these three estimates to form a single
expected duration, te or ET, using the formula
te= (a+4m+b)/6 (te, a, m & b correspond to ET, O, M & P respectively).
The expected durations are used to carry out a forward
pass through a network, using the same method as the CPM
technique.
In this case, however, the calculated event dates are not the
earliest possible dates but the dates by which we expect to
achieve those events.
16
PERT event labelling convention
Event Target
number date
Expected Standard
date Deviation
Activity standard deviations
A quantitative measure of the degree of uncertainty of an
activity duration estimate may be obtained by calculating the
standard deviation s of an activity time using the formula
◦ s=(b-a)/6
The activity standard deviation is proportional to the
difference between the optimistic and pessimistic estimates,
and can be used as a ranking measure of the degree of
uncertainty of risk for each activity.
18
Example
Activity Activity Name
Label
A Hardware Selection
B System configuration
C Install hardware
D Data migration
F Recruit staff
G User training
B 3 4 5 ---
C 2 3 3 A
D 3.5 4 5 B
E 1 3 4 B
F 8 10 15 ---
G 2 3 4 E,F
H 2 2 2.5 C,D
Expected Time Estimates (te)
Activity duration (weeks)
Activity Optimistic Most Likely Pessimistic Expected
(a) (m) (b) te=(a+4m+b)/6
A 5 6 8 (5+4*6+8)/6= 6.17
B 3 4 5 (3+4*4+5)/6= 4
C 2 3 3 (2+4*3+3)/6= 2.83
D 3.5 4 5 (3.5+4*4+5)/6= 4.08
E 1 3 4 (1+4*3+4)/6= 2.83
F 8 10 15 (8+4*10+15)/6= 10.5
G 2 3 4 (2+4*3+4)/6= 3
H 2 2 2.5 (2+4*2+2.5)/6= 2.08
21
Activity Deviation (s)
Activity Optimistic (a) Pessimistic (b) Standard deviation
s=(b-a)/6
A 5 8 (8-5)/6= 0.5
B 3 5 (5-3)/6= 0.33
C 2 3 (3-2)/6= 0.17
D 3.5 5 (5-3.5)/6= 0.25
E 1 4 (4-1)/6= 0.5
F 8 15 (15-8)/6= 1.17
G 2 4 (4-2)/6= 0.33
H 2 2.5 (2.5-2)/6= 0.08
22
Expected Time Estimates (te) & SD (s)
Activity duration (weeks)
Acti Optimis Most Pessimis Expected Standard
vity tic (a) Likely (m) tic (b) Time (te) Deviation (s)
24
The likelihood of meeting targets
The main advantage of the PERT technique is that
◦ it provides a method for estimating the probability of meeting or
missing target dates.
There might be only a single target date, the project
completion,
◦ but we might wish to set additional intermediate targets.
25
The likelihood of meeting targets
Suppose that we must complete the project within 15 weeks
at the outside.
We expect it will take 13.5 weeks but it could take more or
perhaps less.
In addition, suppose
◦ that activity C must be completed by week 10,
as it is to be carried out by a member of staff who is scheduled to be
working on another project, and
◦ that event 5 represents the delivery of intermediate products to the
customer,
which must take place by week 10.
26
The likelihood of meeting targets
These three target dates are shown on the PERT network
below.
27
The likelihood of meeting targets
The PERT technique uses the following three-step method
for calculating the probability of meeting or missing a target
date:
◦ Calculate the standard deviation of each project event.
◦ Calculate the z value for each event that has a target date.
◦ Convert z values to probabilities.
28
Calculating the standard deviation of each
project event
Standard deviations for the project events can be calculated
by carrying out a forward pass using the activity standard
deviations.
To add two standard deviations
◦ Add their squares and then find the square root of the sum.
One practical outcome of this is that
◦ the contingency time to be allocated to a sequence of activities as a
whole would be less than the sum of the contingency allowances for
each of the component activities.
29
Event Standard Deviation
Event Event Standard Deviation
1 0
2 √(0.5)2=0.5
3 √(0.33)2=0.33
4 max{√{(0.33)2+(0.25)2}, √{(0.5)2+(0.17)2}} =max{√{0.1089+0.0625},
√{0.25+0.0289}} =max{√0.1714, √0.2789} =max{0.41, 0.53} =0.53
31
z Values for different events
Event 4
◦ Target date is 10
◦ z=(T-te)/s=(10-9)/0.53=1/0.53=1.89
Event 5
◦ Target date is 10.
◦ z=(T-te)/s=(10-10.5)/1.17= - 0.5/1.17= - 0.43
Event 6
◦ Target date is 15
◦ z=(T-te)/s=(15-13.5)/1.22=1.5/1.22=1.23
32
Converting z values to probabilities
A z value may be converted to the probability of not
meeting the target date by using the shown graph.
This graph is the equivalent of tables of z values, also known
as standard deviation, which may be found in most statistics
textbooks.
33
Converting z values to probabilities
34
Probabilities
Event 4
◦ Φ(1.89)=0.97
◦ So, there is a probability of 97% risk of meeting the target date.
◦ Or, there is a probability of 3% risk of not meeting the target date.
Event 5
◦ Φ(-0.43)=1-Φ(0.43)=1-0.67=0.33
◦ There is a probability of 33% risk of meeting the target date.
◦ There is a probability of 67% risk of not meeting the target date.
35
Probabilities
Event 6
◦ Φ(1.23)=0.89
◦ There is a probability of 89% risk of meeting the target date.
◦ There is a probability of 11% risk of not meeting the target date.
36
Assignment
What is the probability of completing the project by
week 14?
37
Normal Table
38
Advantages of PERT
PERT focuses attention on the uncertainty of forecasting
◦ By requesting multi-valued activity duration estimates and calculating
expected dates.
The technique can be used to
◦ calculate the standard deviation for each task and
◦ rank them according to their degree of risk.
39
Advantages of PERT
Using this ranking, it can be seen that, for example, that
◦ activity F is the one regarding which we have greatest uncertainty,
whereas
◦ activity C should , in principle, give us relatively little cause for
concern.
40
Advantages of PERT
41
Summary
We have discussed PERT.
Solved some examples on PERT.
42
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
3. Kanti Swarup, P. K. Gupta, Man Mohan, Operations Research, Nineteenth
Edition, Sultan Chand and Sons, 2018.
Thank you
Software Project Management
σ2 = ( b − a )2
6
10
PERT Algorithm cont…
9. Compute the standard normal deviate:
DueDate − ExpectedDateOfCompletion
z0 =
√Variance
11
Example - PERT
A small project is composed of seven activities whose time
estimates are listed in the table as follows.
Example - PERT cont…
Draw the project network.
Find the expected duration and variance of each activity. Calculate early and late
occurrence times for each event. What is the expected project length?
Calculate the variance and standard deviation of project length. What is the
probability that the project will be completed:
a. at least 4 weeks earlier than expected?
b. no more than 4 weeks later than expected?
If the project due date is 19 weeks, what is the probability of meeting the due date?
Given
z 0.50 0.67 1.00 1.33 2.00
p 0.3085 0.2514 0.1587 0.0918 0.0228
Resultant network
Solution
The expected time and variance of each activity is computed in t h e table
shown below.
Activity (i –j) a m b te = a+4m+b
6 ( b−a
6
)2
1–2 1 1 7 2 1
1–3 1 4 7 4 1
1–4 2 2 8 3 1
2–5 1 1 1 1 0
3–5 2 5 14 6 4
4–6 2 5 8 5 1
5–6 3 6 15 7 4
Solution cont…
Earliest expected times E {µi } for each event is obtained by taking the
sum of expected times for all the activities leading to an event i .
When more than one activity leads to event i , the greatest of E {µi } is
chosen.
Thus,
E {µ1} = 0.
E {µ2} = 0 + 2 = 2.
E {µ3} = 0 + 4 = 4.
E {µ4} = 0 + 3 = 3.
E {µ5} = max.{4 + 6, 2 + 1} = 10.
E {µ6} = max.{10 + 7, 3 + 5} = 17.
Solution cont…
• For the latest expected times we start with E {µi } for the last event
and move backwards, subtracting ” 𝐭 𝐞 ” for each activity link.
Thus,
• E {L6} = 17.
• E {L5} = 17 − 7 = 10.
• E {L4} = 17 − 5 = 12.
• E {L3} = 10 − 6 = 4.
• E {L2} = 10 − 1 = 9.
• E {L1} = min.{9 − 2, 4 − 4, 12 − 3} = 0.
Solution cont…
Resultant network
The critical path is shown by thick line arrows.
Solution cont…
Critical path: 1→3→5→6.
Other paths: 1→2→5→6 and 1→4→6.
The expected duration of the project is 17 weeks.
Variance of the project length is given by σ2 = 1 + 4 + 4 = 9.
The standard normal deviate is:
DueDate − ExpectedDateOfCompletion
z0 =
√
Variance
Solution cont…
(a) at least 4 weeks earlier than expected?
z= 13 − 17 = −4 = −1.33
3 3
Now,
P(z ≤ −1.33) = 0.5−Φ(1.33) = 0.5−0.4082 = 0.0918 ≡ 9.18%
See normal table
Or in next slide
21
Solution cont…
(b) no more than 4 weeks later than expected?
21−17 4
z = = = 1.33
3 3
19−17 2
z = = = 0.67
3 3
3. Analyze
project
characteristics
Steps 3 & 6
8. Review/ publicize
9. Execute plan plan
Categories of Risk
• Risks: Two types
Project Risk: related to threats to successful project
execution.
Business Risk: related to factors threatening the
benefits of the delivered project.
In business case, main focus is on Business Risk.
Categories of Risk
An ICT project manager is normally given the objective of
installing the required application by a specified deadline and
within an agreed budget. Other objectives might be set,
especially with regard to quality requirements.
Project risks are those that could prevent the achievement of
the objectives given to the project manager and the project
team.
Categories of Risk
There could be risks that an application after successful
implementation is a business failure, e.g. if an e-commerce site is
established to sell a product, the site might be correctly
implemented, but customers fail to use the site because of the
uncompetitive prices demanded.
Dealing with these business risks is likely to be outside the direct
responsibilities of the application implementation team.
However, the failure to meet any project objective could have a
negative impact on the business case for the project. For example,
an increase in development cost might mean that the income (or
savings) generated by the delivered application no longer
represents a good return on the increased investment.
Categories of Risk
Risks have been categorized in other ways. Kalle Lyytinen and his
colleagues, for instance, have proposed a sociotechnical model of
risk, a diagrammatic representation of which appears in next figure.
Actors refers to all the people involved in the development of the
application in question. A typical risk in this area is that high staff
turnover leads to expertise of value to the project being lost.
Technology encompasses both the technology used to
implement the application and that embedded in the delivered
products. Risks here could relate to the appropriateness of the
technologies and to possible faults within them, especially if they
are novel.
Lyytinen-Mathiassen-Ropponen risk
framework
Structure describes the management structures and systems, including
those affecting planning and control. For example, the implementation
might need user participation in some tasks, but the responsibility for
managing the users' contribution might not be clearly allocated.
Tasks relate to the work planned. For instance, the complexity of the
work might lead to delays because of the additional time required to
integrate the large number of components.
In the figure, all boxes are interlinked, e.g. risks often arise from the
relationships between actors and technology. If a development technology
is novel then the developers might not be experienced in its use and
delay results. The novelty of the new technology is really a characteristic
of the developers: once they are used to the technology, it is no longer
‘novel'.
Risk Management Approaches
Risk management approaches can broadly be classified into
reactive and proactive approaches. The latter Approach is
much more effective in risk handling and, therefore, used
wherever possible.
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.
An example of such a risk management strategy can be the
Following.
Example of reactive approach
Consider a project in which the server hosting the project
data crashes. Once this risk event has occurred, the team
members may put best effort to recover the data and also
initiate the practice of taking regular backups, so that in
future such a risk event does not recur.
It is similar to calling the emergency fire-fighting service once
a fire has been noticed, & then installing fire-fighting
equipment in all the rooms of the building to be able to
instantly handle fire the next time it is noticed.
It can be seen that the main objective of this is to minimize
the damage due to the risk and take steps to prevent future
recurrence of the risk.
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.
For example, if man power turnover is anticipated (i.e. some personnel
may leave the project), then thorough documentation may be planned.
Also, more than one developer many work on a work item and also some
stand-by man power may be planned.
Obviously, proactive approaches incur lower cost and time overruns
when risk events occur and, therefore, are much more preferred by
teams. However, when some risks cannot be anticipated, a reactive
approach is usually followed.
A Framework for Dealing with Risk
Planning for risk includes these steps:
(i) Risk identification
(ii) Risk analysis and prioritization
(iii) Risk planning
(iv) Risk monitoring
A Framework for Dealing with Risk
• Steps (i) to (iii) will probably be repeated.
• When risks that could prevent a project success are
identified, plans can be made to reduce or remove their
threat.
• The plans are then reassessed to ensure that the original
risks are reduced sufficiently and no new risks inadvertently
introduced.
Example
• Consider the risk that staff inexperience with a new
technology could lead to delays in software development.
• To reduce this risk, consultants who are expert in the new
technology might be recruited.
• However, the use of consultants might introduce the new risk
that knowledge about the new technology is not transferred
to the permanent staff, making subsequent software
maintenance problematic.
• Having identified this new risk, further risk reduction
activities can be planned.
Risk Identification
There are two main approaches to the identification of risks:
use of checklists
brainstorming
Checklists
Checklists are simply lists of the risks that have been found
to occur regularly in software development projects.
A specialized list of software development risks by Barry
Boehm appears in the next table in a modified version.
Ideally a group of representative project stakeholders
examines a checklist identifying risks applicable to their
project.
Often the checklist suggests potential countermeasures for
each risk.
Software project risks and strategies of Risk reduction
Risk Risk reduction techniques
use of checklists
brainstorming
Checklists
Checklists are simply lists of the risks that have been found
to occur regularly in software development projects.
A specialized list of software development risks by Barry
Boehm appears in the next table in a modified version.
Ideally a group of representative project stakeholders
examines a checklist identifying risks applicable to their
project.
Often the checklist suggests potential countermeasures for
each risk.
Software project risks and strategies of Risk reduction
Risk Risk reduction techniques
Plus comfort
Activity Most likely Comfort zone
zone
A 6 8 2
B 4 5 1
C 3 3 0
D 4 5 1
E 3 4 1
F 10 15 5
G 3 4 1
H 2 2.5 0.5
Use latest start dates for activities
Working backwards from the target completion date, each
activity is scheduled to start as late as possible.
Among other things, this should reduce the chance of staff
being pulled off the project on to other work. It is also
argued – with some justification according to van
Genuchten's research – that most developers would tend to
start work on the task at the latest start time anyway.
However, it does make every activity ‘critical’, i.e. if one is late,
the, the whole project is late.
Insert project and feeder buffers
To cope with activity overruns, a project butter is inserted at
the end of the project before the target completion date.
One way of calculating this buffer is as the equivalent of 50%
of the sum of lengths of the comfort zones that have been
removed from the critical chain.
The critical chain is the longest chain of activities in the
project, taking account of both task and resource
dependencies.
Insert project and feeder buffers
This is different from the critical path as the latter only takes
account of task dependencies, not resource dependencies.
A resource dependency is where one activity has to wait for
a resource (usually a person in software development) which
is being used by another activity to become available.
If an activity on this critical chain is late, it will push the
project completion date further into the project buffer.
Why the buffer should be 50% of the total comfort zones?
Reason: It is based on the grounds that if the estimate for an
activity was calculated as having a 50% chance of being
correct, the buffer would only need to be called upon by the
50% of cases where the estimate was not correct.
An alternative proposal
An alternative proposal is to sum the squares of the comfort
zones and then take the square root of the total. This is
based on the idea that each comfort zone is the equivalent to
the standard deviation of the activity.
This method of calculation still produces a figure which is less
than simply summing all the comfort zones.
This is justified on the grounds that the contingency time
needed for a group of activities is less than the sum of the
individual contingency allowances as the success of some
activities will compensate for the shortfalls in others.
Feeding buffers
Buffers are also inserted into the project schedule where a
subsidiary chain of activities feeds into the critical chain.
These feeding buffers could once again be set at 50% of the
length of the 'comfort zone' removed from the subsidiary or
feeding chain.
Worked example
Next figure shows the results of this process.
The critical chain in this example happens to be the same as
the critical path, that is activities F and G which have comfort
zones of 5 weeks and I (one) week respectively, making a
total of 6 weeks.
The project buffer is therefore (5+1)/2 = 3 weeks.
Gantt chart – ‘critical
chain’ planning approach
Feeding Buffers
Subsidiary chains feed into the critical chain where activity H
links into the project buffer and where activity E links into G
which is part of the critical chain.
Feeding buffers are inserted at these points. For the first
buffer the duration would be 50% of the saved comfort zones
of A, C and H, i.e. (2 + 0 + 0.5)/2 = 1.25 weeks.
It could be argued that B, D & H could form a feeder chain
which also has a comfort zone of (1+1+0.5)/2 = 1.25 weeks.
In situations, where there are parallel alternative paths on a
feeder chain, the practice is to base the feeding buffer on
whichever comfort zone total is greater. This because if one
or both parallel paths are late they could use the same buffer.
It could be argued that the feeding and the final project buffer
could also be merged, but explanations of critical chain
planning, make clear that this is not to be done.
This could be because a delay penetrating the feeding buffer
time does not affect the completion date of the project, while
penetrating project buffer does.
In the second place, where a feeder chain of activities joins
the critical chain, the feeder buffer would be 50% of the
comfort zones of activities B and E, i.e. (1+1) / 2 = 1 week.
Project execution
When the project is executed, the following principles are
followed:
No chain of tasks should be started earlier than scheduled,
but once it has been started it should be finished as soon as
possible – this invokes the relay race principle,
◦ where developers should be ready to start their tasks as soon as the
previous, dependent, tasks are completed.
Buffers are divided into three zones: green, amber and
red, each of an even (33%) size.
Project execution
green, where no action is required if the project completion
date creeps into this zone;
amber, where an action plan is formulated if the project
completion dates moves into this zone;
red, where the action plan above is executed if the project
penetrates this zone.
Summary
Discussed Monte Carlo Simulation.
Discussed Critical Chain method with an example.
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
Thank you
Software Project Management
6
Categories of Resources
• Services: Some projects may require procurement of
specialized services, e.g. development of a wide area
distributed system, may require scheduling of
telecommunication services; postal/courier services etc.
Time: elapsed time can be reduced by adding more staff
Money: It is a secondary resource, used to buy the other
resources. It is similar to other resources in that it is
available at a cost – in this case interest charges.
7
Resource allocation - Steps
Identify the resources needed for each activity and create a
resource requirement list
Identify resource types - individuals are interchangeable
within the group (e.g. ‘VB programmers’ as opposed to
‘software developers’)
Allocate resource types to activities and examine the
resource histogram
8
Identify the resource requirements
Identify hardware
Identify software
Identify support
9
Identify hardware
Steps:
1. List all the hardware needs of the project (e.g. desktops,
servers, backup media, keyboards, switches, ports and cables,
display devices, printers, plotters, touch screens etc.)
2. For each piece of hardware, specify what it needs to do
3. For each piece of hardware, specify what it needs in order to
function properly (e.g. the required software, cables etc.)
4. Specify who needs what hardware to do his task (Do not
provide everyone with every piece of hardware, if they do not
require it)
5. Specify, when the team needs the hardware, may be in advance
10
Identify software
Many other supporting software (such as OS, DB packages,
etc.) are needed to develop a software project.
Basic software like operating systems, compilers etc. may
cause project delays if installed incorrectly or upgraded
randomly.
Different versions of software, mismatched service packs,
and different releases of libraries may also create problems.
Ignoring these issues may lead to problems.
11
Identify software cont…
Experienced project managers know that software
upgrades during a project cost the team productivity and
may create serious problems.
So, there is a need to plan for upgrades and schedule them,
when the impact on the team and the project can be
minimized.
Project managers can get a handle on software support by
following below steps.
12
Identify software cont…
Steps:
List the Software Requirements
Specify the Software Versions
Identify Upgrades and Service Packs
Identify Who Upgrades Which Software
Specify When to Upgrade Which Software
13
List Software Requirements.
The team may need a well-specified set of software
products so that product inconsistencies can be
minimized, upgrades can be planned, and licensing can be
done properly.
To get this set, the project manager needs to manage the
details of all the software to be used.
He may start by specifying the software that the team
will need, including the followings:
14
List Software Requirements cont…
Operating systems
Compilers
Configuration management system
Email systems
Supporting software (FTPs, web browser, etc.)
Libraries (dynamic link libraries, standard template libraries,
graphic user interface libraries, etc.)
Office software (word processing, excel sheet, presentation, etc.)
Software tools (CASE tools, Design tools, Testing tools, SPM tools)
15
Specify the Software Versions.
Given the list of existing software products, specify the
team needs exactly which version of each of these pieces
of software.
16
Identify Upgrades and Service Packs
18
Specify When to Upgrade Which Software
Once the project manager has a handle on the list of
software and an idea of what upgrades the team will need
to make during the project,
◦ he can decide when to upgrade.
Upgrades just before a major milestone are very risky. Up
grading immediately after a milestone will allow time to
troubleshoot problems that arise but may invalidate
testing done prior to the milestone.
19
Specify When to Upgrade Which Software
cont…
Consider all the software that the team will use in the
project. If you want to upgrade the software, plan to
upgrade when the team and project can best handle
unexpected problems.
Never plan on a best-case scenario when upgrading
software. Expect problems to occur and plan time to
handle them. If problems don't pop up, the team has extra
time. If they do pop up, the planning provides time to
handle problems.
20
Identify support
Steps:
1. Identify the support needed from each group.
2. Specify when support will be required, so that the project can
make progress without any delay.
3. Specify how support occurs (e.g. will the staff be available via
phone, email, or in person?)
4. Gain commitment from each group for the support required
(e.g. through a verbal commitment or a contract or a
commitment letter).
5. Maintain a good relationship with support staff
21
Prepare a resource requirement list
First step in producing a resource allocation plan is to prepare
a resource requirement list containing the resources that will
be required along with the expected level of demand.
This can be done by considering each activity present in a
precedence network & identifying the resources required by it.
There can be some resources that are not activity specific, but
are part of the project infrastructure (for example project
manager) or required to support other resources (for example
office space).
22
An Example of Precedence Network
23
A sample resource requirements list
Stage Activity Resource Days Quantity Notes
All All Project Manager 104 F/T
1 All Workstation --- 34 Check software availability
IoE/P/1 Senior analyst 34F/T
2 All Workstation --- 3 One per person essential
IoE/P/2 Analyst/Designer 20F/T
IoE/P/3 Analyst/Designer 15F/T
IoE/P/4 Analyst/Designer 25F/T
IoE/P/5 Analyst/Designer 15F/T Could use analyst/programmer
3 All Workstation --- 2
IoE/P/6 Senior analyst* 2F/T
4 All Workstation --- 3 As stage 2
IoE/P/7 Analyst/Designer 7F/T
A sample resource requirements list
cont…
Stage Activity Resource Days Quantity Notes
3
Scheduling resources
After producing the resource requirements list, the next
stage is to identify the resource types. Then, map the
resources on to the activity plan to assess the distribution
of resources required over the duration of the project.
This is done by representing the activity plan as a bar
chart & using this to produce a resource histogram for
each resource.
The next figure illustrates the example activity plan as a
bar chart and a resource histogram for analyst/designers.
Each activity has been scheduled to start at its earliest
start date. Earliest start date scheduling, frequently creates
resource histograms that start with a peak and then tail
off. 4
An Example of Precedence Network
5
A sample resource requirements list
Stage Activity Resource Days Quantity Notes
All All Project Manager 104 F/T
1 All Workstation --- 34 Check software availability
IoE/P/1 Senior analyst 34F/T
2 All Workstation --- 3 One per person essential
IoE/P/2 Analyst/Designer 20F/T
IoE/P/3 Analyst/Designer 15F/T
IoE/P/4 Analyst/Designer 25F/T
IoE/P/5 Analyst/Designer 15F/T Could use analyst/programmer
3 All Workstation --- 2
IoE/P/6 Senior analyst* 2F/T
4 All Workstation --- 3 As stage 2
IoE/P/7 Analyst/Designer 7F/T
A sample resource requirements list
cont…
Stage Activity Resource Days Quantity Notes
8
Scheduling resources cont…
Changing the level of resources on a project over time,
particularly personnel, generally adds to the cost of a
project. Recruiting staff has costs and, even where staff are
transferred internally, time will be needed for
familiarization with the new project environment.
The resource histogram shown in the previous figure
poses some problems. Some analysts/designers may sit
idle for some days (e.g. between the specification and
design stages of the histogram). It is unlikely that there
would have another project requiring their skills for
exactly those periods of time.
This idle time may be charged to the project.
The ideal resource histogram will be smooth (even) with
an initial build-up and a staged run-down. 9
Resource histogram: An Example
5
4
3
2
1
1 2 3 4 5 6 7
WEEK
10
Resource smoothing
It is usually difficult to get specialist staff who will work
odd days to fill in gaps – there is a need for staff to learn
about application, etc
Staff often have to be employed for a continuous block of
time
Therefore it is desirable to employ a constant number of
staff on a project – who as far as possible are fully
employed
Hence there is a need for resource smoothing
11
Resource histogram after
smoothing
5
4
3
2
1
1 2 3 4 5 6 7 8
WEEK
Resource smoothing cont ...
Another problem with an uneven resource histogram is
that it may call for levels of resource beyond those
available.
The next figure illustrates how, by adjusting the start date
of some activities and splitting others, a resource
histogram can be smoothed to contain resource demand
at available levels, subject to constraints such as
precedence requirements.
The different letters in the figure represent staff working
on a series of module testing tasks, i.e. 1 person working
on task A, 2 on tasks B and C etc. 13
Resource smoothing cont ...
15
Resource smoothing cont ...
Revised
Precedence
Network
16
Resource smoothing cont ...
Notice that some activities, such as C and D, have been
split. Where non-critical activities can be split they can
provide a useful way of filling troughs in the demand for a
resource.
But, in software projects it is difficult to split tasks without
increasing the time they take.
Some of the activities may call for more than one unit of
the resource at a time, e.g. activity F requires 2
programmers, each working for 2 weeks.
It is possible to reschedule this activity to use one
programmer over 4 weeks (although not done here).
17
Resource clashes
Resource clashes: Where same resource is needed in
more than one place (activity) at the same time
Can be resolved by:
◦ delaying one of the activities
taking advantage of float to change start date
delaying start of one activity until finish of the other activity that
resource is being used on - puts back project completion
◦ moving resource from a non-critical activity
◦ bringing in additional resource - increases costs
Prioritizing activities
In practice, resources are allocated to a project on an activity-
by-activity basis.
Finding the best allocation is time consuming and difficult.
Allocating a resource to one activity limits the flexibility for
resource allocation and scheduling of other activities.
So, there is a need to prioritize the activities so that resources
can be allocated to competing activities in some rational order.
The priority must almost always be to allocate resources to
critical path activities and then to those activities that are most
likely to affect others.
In this way, lower–priority activities are made to fit around the
more critical, already scheduled activities. 19
Prioritizing activities cont ...
There are two main ways of doing this:
20
Total float priority
Total Float: It is a measure of how much the start or
completion of an activity may be delayed without affecting the
end date of the project.
In this method, activities with the smallest float have the
highest priority.
Activities are allocated resources in ascending order of their
floats.
As scheduling proceeds, activities may be delayed (if resources
are not available at their earliest start dates) and total floats
will be reduced.
So, it is desirable to recalculate the floats (and hence reorder
the list) each time an activity is delayed. 21
Ordered list priority
In this method, activities that can proceed at the same
time are ordered according to a set of simple criteria.
22
Burman’s priority list
Give priority to the activities as in the following order:
1. Shortest critical activities
2. Other critical activities
3. Shortest non-critical activities
4. Non-critical activities with least float
5. Non-critical activities
23
Alternatives to resource smoothing
Resource smoothing is not always possible
◦ Deferring activities to smooth out resource peaks
often puts back project completion.
• In this case the project manager needs to consider
alternative ways, such as
◦ Increasing the available resource levels
◦ Altering working methods such as doing overtime
work, working in holidays etc.
24
Resource usage
Project manager needs to maximize % usage of
resources i.e. to reduce the idle periods between tasks
There is a need to balance costs against early
completion date
There is a need to allow for contingency
25
Creating critical path
27
Summary
Discussed the scheduling of resources
Presented what is a resource histogram?
Explained the concept of resource smoothing
Described fundamentals of resource clashes
Discussed the methods for prioritizing activities
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
Thank you
Software Project Management
6
Allocation of resources to individuals
Allocating resources and smoothing resource histograms are
relatively straightforward where all resources of a given type
can be considered more or less equivalent.
7
Allocation of resources to individuals cont ...
8
Factors affecting allocation of individuals to tasks
In allocating individuals to tasks, the following factors need
to be taken into account.
Availability: Project manager needs to know whether a particular
individual will be available when required.
Criticality: Allocate the more experienced personnel to activities
lying on the critical path.
◦ This helps in shortening project durations or at least reducing the risk
of overrun.
9
Factors affecting allocation of individuals to tasks
cont...
Risk: Identifying the activities posing the greatest risk, and knowing
the factors influencing them, help to allocate staff.
◦ Allocating the most experienced staff to the highest-risk activities has more
effect in reducing the overall project uncertainties.
◦ But, more experienced staff are, usually more expensive.
Training: It will benefit the organization if junior staff are allocated
to non-critical activities, where there will be sufficient slack time for
them to train and develop skills.
◦ There can even be direct benefits to the particular project since some
costs may be allocated to the training budget.
10
Factors affecting allocation of individuals to tasks
cont...
11
Publishing the Resource Schedule
In allocating and scheduling resources we have used the
activity plan (or a precedence network), activity bar charts
and resource histograms.
But, they are not the best way of publishing and
communicating project schedules.
For this we need some form of work plan / work schedule.
Work plans are commonly published as either lists or charts
such as shown in the next figure.
12
Work schedule
13
Cost Schedules
Cost schedule shows the weekly or monthly costs over the
life of the project. This will provide a more detailed and
accurate estimate of costs and will serve as a plan against
which the progress of the project can be monitored.
Calculating cost is straightforward where the organization has
standard cost figures for staff and other resources.
◦ Where this is not the case, then the project manager will have to
calculate the costs.
14
Categories of costs
In general, costs are categorized as follows:
Staff costs: These will include staff salaries as well as the other direct costs of
employment such as employer's contribution to social security funds, pension
scheme contributions, holiday pay & sickness benefit. These are commonly charged
to projects at hourly rates based on weekly work records completed by staff.
Overheads: Overheads represent expenditure that an organization incurs, which
cannot be directly related to individual projects or jobs, including space rental,
interest charges and the costs of service departments (such as human resources).
Usage charges In some organizations, projects are charged directly for use of
resources such as computer time (rather than their cost being recovered as an
overhead). This will normally be on an “as used” basis.
15
An example cost schedule
16
An example cost schedule cont ...
The given figure shows the weekly costs over the 20 weeks
that the project manager expects the project to take.
This is a typical cost profile - building up slowly to a peak
and then tailing off quite rapidly at the end of the project.
17
An example for cumulative project costs
18
Scheduling Sequence
Going from an ideal activity plan to a cost schedule can be
represented as a sequence of steps.
Usually, the project manager should start with the activity
plan and use this as the basis for the risk assessment.
The activity plan and risk assessment would provide the basis
for the resource allocation & resource schedule from which
the project manager would produce the cost schedules.
19
Figure showing the scheduling sequence
20
Scheduling Sequence cont ...
Usually, successful resource allocation often necessitates
revisions to the activity plan, which, in turn, will affect the risk
assessment.
Similarly, the cost schedule might indicate the need to
reallocate resources or revise activity plans – particularly
where that schedule indicates a higher overall project cost
than originally anticipated.
21
Scheduling Sequence cont ...
The interplay between the plans and schedules is complex –
any change to any one will affect each of the others.
Some factors can be directly compared in terms of money,
such as the cost of hiring additional staff can be balanced
against the costs of delaying the project's end date.
◦ Some factors, however, are difficult to express in money terms (e.g. the
cost of an increased risk) and will include an element of subjectivity.
22
Scheduling Sequence cont ...
While good project planning software will assist greatly in
demonstrating the consequences of change and keeping the
planning synchronized,
◦ successful project scheduling is largely dependent upon the skill and
experience of the project manager in juggling the many factors involved.
23
Summary
Discussed the allocation of resources to individuals and the
factors to be considered during allocation.
Presented how to publish the resource schedule using a
work schedule
Presented how to represent cost schedules
Explained the scheduling sequence
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. J. Henry, Software Project Management – A Real-World Guide to Success, Pearson
Education, 2004.
3. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you
Software Project Management
• The project control cycle shows how, once the initial project plan has been
published,
– project control is a continual process of monitoring progress against
that plan and, where necessary, revising the plan to take account of
deviations.
• It also illustrates the important steps that must be taken after completion
of the project so that
– the experience gained in any one project can feed into the planning
stages of future projects,
• thus allowing us to learn from past mistakes.
Creating the Framework
In practice, the project manager normally concerned with
four types of shortfall
◦ Delays in meeting target dates,
◦ shortfalls in quality,
◦ inadequate functionality, and
◦ costs going over target.
Responsibilities
All interim and final work products are usually candidates for
review.
Usually, the work products considered to be suitable
candidates for review are as follows.
◦ Requirements specification documents
◦ User interface specification and design documents
◦ Architectural, high-level, and detailed design documents
◦ Test plan and the designed test cases
◦ Project management plan and configuration management plan
Review Roles
In every review meeting, a few key roles need to be assigned
to the review team members.
These roles are
◦ Moderator
◦ Recorder
◦ Reviewer
Moderator
Plays a key role in the review process.
The principal responsibilities include
◦ Scheduling and convening meetings
◦ Distributing review materials
◦ Leading and moderating the review sessions
◦ Ensuring that the defects are tracked to closure.
Recorder
The main role is to record
◦ the defects found,
◦ the time and
◦ effort data
Reviewer
The review team members
◦ review the work product and
◦ give specific suggestions to the author about the existing defects and
◦ also point out ways to improve the work product.
Review Process
Review of any work product consists of the following four
important activities
◦ Planning
◦ Review preparation and overview
◦ Review meeting
◦ Rework and follow up
Review Process Model
Reviewer’s
logs
Code Review
Code Walk Through
Code Inspection
Cleanroom Technique
Visualizing the Progress of a project
Gantt Chart
Slip chart
Time line chart
Candidate work products for review
All interim and final work products are usually candidates for review.
Usually, the work products considered to be suitable candidates for
review are as follows.
◦ Requirements specification documents
◦ User interface specification and design documents
◦ Architectural, high-level, and detailed design documents
◦ Source code
◦ Test plan and the designed test cases
◦ Project management plan and configuration management plan
Code Review
Review is a very effective technique to remove defects
from source code.
In fact, review has been acknowledged to be more cost-
effective in removing defects as compared to testing.
Over the years, review techniques have become extremely
popular and have been generalised for use with other
work products.
Code Review cont...
10
Code inspection and code walk through
cont...
Detect as many errors as possible during
inspection and walkthrough:
◦ detected errors require less effort for correction
much higher effort needed if errors were to be
detected during integration or system testing.
11
Code Walk Through
An informal code analysis technique.
◦ undertaken after the coding of a module is complete.
A few members of the development team
select some test cases:
◦ simulate execution of the code by hand using these test
cases, i.e. the members mentally trace the execution
through different statements and functions of the code.
12
Code Walk Through cont...
The members note down their findings of their code walk
through and discuss those in a walkthrough meeting.
Even though it is an informal technique:
◦ several guidelines have evolved over the years
◦ making this naive but useful analysis technique more
effective.
◦ These guidelines are based on
personal experience, common sense, and several
subjective factors.
13
Code Walk Through cont...
The guidelines should be considered as
examples:
◦ rather than accepted as rules to be applied dogmatically.
The team performing code walk through
should not be either too big or too small.
◦ Ideally, it should consist of between three to seven
members.
14
Code Walk Through cont...
Discussion should focus on discovery of
errors:
◦ and not on how to fix the discovered errors.
To foster cooperation:
◦ avoid the feeling among engineers that they are being
evaluated in the code walk through meeting,
◦ managers should not attend the walk through meetings.
15
Code Inspection
In contrast to code walk through,
◦ code inspection aims mainly at discovery of the commonly
made errors that usually creep into code due to programmer
mistakes and oversights .
◦ also aims at checking adherence to coding standards.
During code inspection:
◦ the code is examined for the presence of certain kinds of
errors,
◦ in contrast to the hand simulation of code execution done in
code walk through.
16
Benefits of code inspection
Finds the commonly made errors
Programmer receives feedback on
◦ programming style,
◦ choice of algorithm, and
◦ programming techniques
17
Code Inspection cont...
For instance, consider:
◦ classical error of writing a procedure that modifies a
formal parameter
◦ while the calling routine calls the procedure with a
constant actual parameter.
It is more likely that such an error will be
discovered:
◦ by looking for this kind of mistakes in the code,
◦ rather than by simply hand simulating execution of the
procedure.
18
Code Inspection cont...
Good software development companies:
◦ collect statistics of errors committed by their engineers
◦ identify the types of errors most frequently committed.
A list of common errors:
◦ can be used during code inspection to look out for
possible errors.
19
Examples of some commonly made errors
Use of uninitialized variables.
Use of incorrect logical operators or incorrect precedence among
operators.
Non-terminating loops.
Array indices out of bounds.
Incompatible assignments.
Improper storage allocation and deallocation.
Actual and formal parameter mismatch in procedure calls.
Jumps into loops
Improper modification of loop variables, etc.
20
Cleanroom Technique
Pioneered at IBM
The term cleanroom was first coined at IBM by drawing
analogy to the semi-conductor fabrication units where the
defects are avoided by manufacturing in an ultra-clean
atmosphere.
Relies heavily on walkthroughs, inspection and formal
verification for bug removal
Programmers are not allowed to test any of their code by
executing the code other than doing some syntax testing
using a compiler 21
Cleanroom Technique cont ...
Pros:
• This technique reportedly produces documentation & code that
are more reliable and maintainable than other development
methods relying heavily on code execution based testing.
Cons:
The testing effort is increased as walkthroughs, inspection and
verification are time consuming for detecting simple errors.
Some errors might escape during manual inspection. Testing-
based error detection techniques may detect these errors.
22
Visualizing the Progress of a Project
Having collected data about project progress, a manager
needs some way of presenting that data to greatest effect.
Some methods of presenting a picture of the project and its
future.
◦ Methods that provide a static picture, a single snapshot (such as Gantt
charts)
◦ Methods that try to show how the project has progressed and changed
through time (such as timeline charts)
Gantt chart
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.
Gantt charts used in software project management are
actually an enhanced version of the standard Gantt charts. In
the Gantt, each bar consists of a unshaded part and a shaded
part.
Gantt chart
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.
The lax time represents the leeway or flexibility available in
meeting the latest time by which a task must be finished.
Gantt chart
A Gantt chart is a special type of bar chart where each bar
represents an activity. The bars are drawn along a time line. The
length of each bar is proportional to the duration of time planned
for the corresponding activity.
Gantt chart representation of a project schedule is helpful in
planning the utilisation of resources, while PERT chart is useful for
monitoring the timely progress of activities.
Gantt chart
Gantt charts are useful for resource planning (i.e. allocate
resources to activities). The different types of resources that
need to be allocated to activities include staff, hardware, and
software.
Activity network representation of MIS problem
Gantt chart representation of the MIS problem
Gantt chart
One of the simplest and oldest techniques for tracking
project progress is the Gantt chart.
This is essentially an activity bar chart indicating scheduled
activity dates and durations, frequently augmented with
activity floats (Activity float is the time by which an activity
may be delayed without affecting any subsequent activity).
Reported progress is recorded on the chart (normally by
shading activity bars) and a ‘today cursor’ provides an
immediate visual indication of which activities are ahead or
behind schedule.
A Sample Gantt chart
Gantt chart cont …
The figure shows a sample Gantt chart as at the end of
Tuesday of week 17.
‘Code and test module D’ has been completed ahead of
schedule and ‘Code and test module A’ appears also to be
ahead of schedule.
The coding and testing of the other two modules are behind
schedule.
The slip chart
• A slip chart is a very similar alternative favoured by some
project managers who believe
– it provides a more striking visual indication of those activities
that are not progressing according to schedule,
• the more the slip line bend, the greater the variation from the plan.
• Additional slip lines are added at intervals and, as they build
up, the project manager will gain an idea as to whether the
project is improving (subsequent slip lines bend less) or not.
• A very jagged slip line indicates a need for rescheduling.
A sample slip chart
The slip chart cont …
To the left of the line are all the completed activities
and to the right those activities that have not been
completed.
The more jagged the line, the more it means that
that there are some activities that are lagging to
various degrees and some that are ahead of
themselves.
A very jagged line means that there is scope for re-
planning to move resources from those activities
that are ahead to those that are behind.
The timeline chart
• One disadvantage of Gantt chart and Slip chart is that they do not
show clearly the slippage of the project completion date through
the life of the project.
• Analysing and understanding trends in the project so far, allows us
to predict the future progress of the project.
• For example, if a project is behind schedule because so far
productivity has not been as high as assumed at the planning stage,
it is likely that the scheduled completion date will be pushed back
even further, unless action is taken to compensate for or improve
productivity.
• The timeline chart is a method of recording and displaying the way
in which targets have changed throughout the duration of the
project.
A sample timeline chart
The timeline chart cont …
• The figure shows a sample time line chart at the end of the
sixth week.
• Planned time is plotted along the horizontal axis and
elapsed time down the vertical axis.
• The lines meandering down the chart represent scheduled
activity completion dates
– At the start of the project ‘analyse existing system’ is scheduled to
be completed by the Tuesday of week 3,
– ‘obtain user requirements’ by Friday of week 5
– ‘issue tender’, the final activity, by Tuesday of week 9, and so on.
The timeline chart cont …
• At the end of the first week, the project manager reviews
these target dates and leaves them as they are
– lines are therefore drawn vertically downwards from the
target dates to the end of week 1 on the actual time axis.
• At the end of week 2, he decides that ‘obtain user
requirements’ will not be completed until Tuesday of week 6
– he therefore extends that activity line diagonally to reflect this.
• The other activity completion targets are also delayed
correspondingly.
The timeline chart cont …
• By the Tuesday of week 3, ‘analyse existing system’ is completed and
the project manager puts a blob on the diagonal timeline to
indicate that this has happened.
• At the end of week 3 he decides to keep to the existing targets.
• At the end of week 4 he adds another 3 days to ‘issue tender’.
• Note that by the end of week 6, two activities have been completed
and three are still unfinished.
• Up to this point she has revised target dates on three occasions
and the project as a whole is running almost one week late.
The timeline chart cont …
The timeline chart is useful both during the execution of a
project and as part of the post-implementation review.
Analysis of the timeline chart, and the reasons for the changes,
can indicate failures in the estimation process or other errors
that might, with that knowledge, be avoided in future.
Summary
• Discussed two important code review techniques such as
code walk through and code inspection.
• Presented a list of some commonly made errors which
can be detected by code review.
• Discussed briefly Cleanroom Technique .
• Discussed various ways to visualize the progress of a
project such as
Gantt chart,
Slip chart and
Time line chart.
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth
Edition, McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning
Pvt. Ltd., 2018.
Thank you
Software Project Management
If any activity has very little float it might use up this float
before the regular activity monitoring brings the problem to
the project manager’s attention.
It is a common practice to monitor closely those activities
with less than, say, one week free float.
High risk activities
A set of high-risk activities should have been identified as part
of the initial risk profiling exercise.
If we are using the PERT, we should designate as high risk to
those activities that have a high estimated duration variance.
These activities will be given close attention,
◦ because they are most likely to overrun or overspend.
Activities using critical resources
Activities can be critical because they are very expensive (as
in the case of specialized contract programmers).
Staff or other resources might be available only for a limited
period, especially if they are controlled outside the project
team.
In any event, an activity that demands a critical resource,
requires a high level of monitoring.
Getting the project back to target
• Almost any project will, at one time or another, be subject
to delays and unexpected events.
• One of the tasks of the project manager is to recognize
when this is happening (or, if possible, about to happen) and,
with the minimum delay and disruption to the project team,
attempt to mitigate the effects of the problem.
• In most cases, the project manager, at least initially, tries to
ensure that the scheduled project end date remains
unaffected.
• This can be done by shortening remaining activity durations
or shortening the overall duration of the remaining project.
Getting the project back to target cont ...
• This might not always be the most appropriate response to
disruptions to a plan.
• There is little point in spending considerable amount in
overtime payments in order to speed up a project,
• if the customer is not overly concerned with the delivery date, and
• there is no other valuable work for the team members once this
project is completed.
• There are two main strategies to consider when drawing up
plans to bring a project back on target.
– Shortening the critical path
– Altering the activity precedence requirements
Shorten the critical path
The overall duration of a project is determined by the
current critical path,
◦ so speeding up non-critical path activities will not bring forward a
project completion date.
There are several ways in which this might be done.
◦ Adding resources - especially staff
◦ Increase use of current resources
◦ Reallocate staff to critical activities
◦ Reduce scope
◦ Reduce quality
Shorten the critical path
By such means, we can attempt to shorten the timescale for
critical activities until such time as either we have brought
the project back to schedule or further efforts prove
unproductive or not cost-effective.
Remember, however, that shortening a critical path often
causes some other path, or paths, to become critical.
Adding resources- especially staff
Exhorting staff to ‘work harder’ might have some effect,
◦ it is better to follow a more positive form of action, such as increasing
the resources available for some critical activity.
For example, fact-finding, might be speeded up by allocating
an additional analyst to interviewing users.
But, it is unlikely, that the coding of a small module would be
shortened by allocating an additional programmer
◦ indeed, it might be counterproductive because of the
additional time needed for organizing and allocating tasks
and communicating.
Adding resources- especially staff
While adding more staff may be able to speed up progress,
this would be at an additional cost.
In EV terms, negative schedule variance (SV) may be
reduced, but at the price of increasing a negative cost
variance (CV).
Increase use of current resources
W1 W2 W3 … Wn-1 Wn
Configuration
Reserve
Restore
W1 W2 W3 … Wn-1 Wn
Reserve Configuration
Restore
Figure shows a Gantt chart to plan and track the progress of the project
ProjectLibre
• ProjectLibre is a open source software tool intended as an
alternative to commercial software like Microsoft Project.
• task management,
• work breakdown structure generation (a list and a graphical
• representation),
• resource allocation and tracking, and
• Gantt charts that provide a clear view of the critical path
elements of the schedule.
Install ProjectLibre
• Installing ProjectLibre on a single computer is quite
straightforward.
• go to http://sourceforge.net/projects/projectlibre/, and
download the Windows.msi file
• When the download is complete, double click on the file
to open it, and follow the instructions from the installer
that are initiated from the installation wizard.
• Then, simply complete the installation following the
directions on the screen.
Project libre cont…
click on “New” to start the process.
ProjectLibre cont…
If you select “new”, the dialog box shown in Figure pops up and its
primary purpose is to name the new project to be managed.
The only box that must be filled-in is the name, but you may also list the
manager's name, change the date or add notes in the provided spaces.
Once you have made the desired entries, click “OK” to proceed.
Project libre cont…
Screenshot of a sample project
What is Microsoft Project?
Microsoft Project (or MSP) is a project management
software program.
It is designed to assist project managers in:
• developing plans
• assigning resources to tasks
• tracking progress
• managing budgets
• analyzing workloads
Feature Description
Project creates budgets based on assignment work and
resource rates
Resources – people, equipment and materials
MSP Offers
Robust management tools with the right blend of:
◦ Usability
◦ Power
◦ Flexibility
Track progress
Manage a schedule
Manage resources
Manage costs
Manage risks
Activity for closing a project
Review final project information
Disadvantages
difficulties with software size measurement - may need
independent FP counter
changing (as opposed to new) requirements: how do you
charge?
Types of software contracts cont …
Another way of classification based on the approach that is
used in contractor selection is as follows:
Open tendering process
Restricted tendering process
Negotiated procedure
The open tendering process
• Any supplier can bid in response to the invitation to tender
(ITT) / request for proposal (RFP)
• All tenders must be evaluated in the same way
• Government bodies may have to do this by
local/international law
• With a major project this evaluation process can be time
consuming and expensive.
• Where the client is a public body, an open tendering process
may be compulsory.
Restricted tendering process
• In this case, bids are received only from those suppliers
who have been specifically invited
• Unlike, the open tendering process, at any time, the
customer can reduce the number of suppliers being
considered at any stage
Negotiated procedure / Single tendering
process
Open or restricted tendering process may not be suitable in
some particular sets of circumstances.
For example, suppose, there is a fire that destroys some ICT
equipment. The key concern here may be to get replacement
equipment up and running as quickly as possible, and there
may not be sufficient time to embark on a lengthy tendering
process.
Negotiated procedure / Single tendering
process cont …
Another situation might be where a new software application
had been successfully built by an outside supplier, but some
extensions are required to the system. As the original supplier
has staff familiar with the existing system, it might be
inconvenient to approach other potential suppliers via a full
tendering process.
In these cases, an approach to a single supplier may be
justified, i.e. negotiate with one supplier.
Negotiated procedure / Single tendering
process cont …
However, approaching a single, supplier could expose the
customer to charges of favouritism.
So, it should only be done with a proper justification.
Stages in contract placement
requirements
analysis
evaluation
plan
invitation to
tender
evaluation of
proposals
Requirements document: sections
Introduction
Description of existing system and current environment
Future strategy or plans
System requirements -
◦ mandatory/desirable features
Deadlines
Additional information required from bidders
Requirements
These will include
◦ functions in software, with necessary inputs and outputs
◦ standards to be adhered to
◦ other applications with which software is to be compatible
◦ quality requirements e.g. response times
Evaluation plan
• Incomplete requirements.
Changes to the regulatory policies (e.g. permission not
granted to use satellite communication-based product)
• Some key technologies used in the project have become
obsolete during project execution.
• Risks becoming unacceptably high
Why are projects not properly closed?
3
Introduction cont …
A satisfactory definition of quality for many products:
◦ A car, a table fan, a food mixer, microwave oven, etc.
But, not satisfactory for software products.
◦ Why?
4
Quality for Software Products
Consider a software product:
◦ Functionally correct:
Performs all functions as specified in the SRS document.
◦ But, has an almost unusable user interface.
Cannot be considered as a quality product.
5
Quality for Software Products
Consider another example:
◦ A product which does everything that users want.
◦ But has an almost incomprehensible and unmaintainable code.
◦ Will you call it a quality product?
6
Modern View of Quality
Several quality factors are associated with a software
product :
◦ Correctness
◦ Reliability
◦ Efficiency (includes efficiency of resource utilization)
◦ Portability
◦ Usability
◦ Reusability
◦ Maintainability
7
Correctness
A software product is correct:
◦ If different requirements as specified in the SRS
document have been correctly implemented.
◦ Results are accurate.
8
Portability
A software product is said to be portable:
◦ If it can be easily made to work
In different operating systems.
In different machines,
With other software products, etc.
9
Reusability
10
Usability
A software product has good usability:
◦ If different categories of users (i.e. both expert and novice users) can
easily invoke the functions of the product.
11
Maintainability
A software product is maintainable:
◦ If errors can be easily corrected as and when they show up,
◦ New functions can be easily added to the product,
◦ Functionalities of the product can be easily modified.
12
‘Step Wise’ - an overview
0.Select
1. Identify project 2. Identify project
project objectives infrastructure
3. Analyse
project
characteristics
Review 4. Identify products
and activities
Lower
5. Estimate effort
level
for activity For each
detail
6. Identify activity activity
risks
10. Lower level
7. Allocate
planning
resources
8. Review/ publicize
9. Execute plan plan
Place of software quality in project planning
design s/w
processes code/test
software architecture
The deliverables are the products that are handed over to the
client at the end of the project, typically the executable code.
Intermediate products are things that are produced during the
project, but which are not (usually) handed to the client at the
end. Typically they are things that are produced by one sub-
process (e.g. a requirements document created by the
requirements elicitation and analysis processes) and used by
others (e.g. a design process which produces a design that fulfils
the requirements).
These sub-processes will fit into the overall framework of a
development cycle.
Some software quality models focus on evaluating the quality of
software products, others on the processes by which the
products are created.
ISO standards
The ISO 9000 series of standards establishes
requirements for quality management systems for the
creation/supply of all types of goods and services.
Software Quality Management System
25
Quality System
A quality system consists of the following:
◦ Managerial Structure
◦ Individual Responsibilities.
Responsibility of the organization as a whole.
26
Quality System
Every quality conscious organization has an independent quality
department:
◦ Performs several quality system activities.
◦ Needs support of top management.
◦ Without support at a high level in a company:
Many employees may not take the quality system seriously.
27
Quality System Activities
Auditing of projects
Development of:
◦ standards, procedures, and guidelines.
Production of reports for the top management:
◦ Summarizing the effectiveness of the quality system in the organization.
Review of the quality system itself.
28
Quality System
A good quality system must be well documented.
◦ Without a properly documented quality system,
Application of quality procedures become ad hoc,
Results in large variations in the quality of the products delivered.
29
Quality System
An undocumented quality system:
◦ Sends clear messages to the staff about the attitude of the
organization towards quality assurance.
International standards such as ISO 9000 provide:
◦ Guidance on how to organize a quality system.
30
Evolution of Quality Systems
Quality systems have evolved:
◦ Over the last six decades.
Prior to World War II:
◦ Accepted way to produce quality products:
Inspect the finished products
Eliminate defective products.
31
Evolution of Quality Systems
Since World war II,
◦ Quality systems of organizations have undergone:
Four stages of evolution.
Many advances came from Japanese:
◦ Helped resurrect Japanese economy.
32
Evolution of Quality Systems
33
Evolution of Quality Systems
Initial product inspection method:
◦ Gave way to quality control (QC).
Quality control:
◦ Not only detect the defective products and eliminate them
◦ But also determine the causes behind the defects.
34
Quality Control (QC)
Quality control aims at correcting the causes of errors:
◦ Not just rejecting defective products.
Statistical quality control (SQC):
◦ Quality of the output of the process is inferred using statistical
methods.
◦ In stead of inspection or testing of all products.
35
Quality Control (QC)
The next breakthrough:
◦ Development of quality assurance principles.
36
Quality Assurance
Basic premise of modern quality assurance:
◦ If an organization's processes are good and are followed rigorously:
The products are bound to be of good quality.
37
Quality Assurance
All modern quality paradigms include:
◦ Guidance for recognizing, defining, analyzing, and improving the
production process.
38
Total Quality Management (TQM)
TQM advocates:
◦ Continuous process improvements through process measurements.
39
Business Process Reengineering
40
Business Process Reengineering
41
Total Quality Management (TQM)
TQM goes beyond documenting processes
◦ Optimizes them through redesign.
Over the years the quality paradigm has shifted:
◦ From product assurance to process assurance.
42
Process Improvement
Implies introducing process changes to improve:
◦ Product quality
◦ Reduce costs
◦ Accelerate schedules.
Most process improvement work so far has focused on
defect reduction.
43
Process Attributes
Process Description
characteristic
Understandability To what extent is the process explicitly defined and how easy is it to
understand theprocess definition?
Visibility Do the process activities culminate in clear results so that the progress
of theprocess is externally visible?
Supportability To what extent can CASE tools be used to support the process
activities?
Acceptability Is t he defined process acceptable to and usable by the engineers
responsible for producing the software product?
Reliability Is the process designed in such a way thatprocess errorsare avoided or
trapped before they result in product errors?
Robustness Can theprocess continue in spite of unexpected problems?
Maintainability Can the process evolve to reflect changing organisational requirements
or identified process improvements?
Rapidity How fast can the process of delivering a system from a given
specification becompleted?
The Process Improvement Cycle
Measure
Change Analyse
45
Process Improvement Stages
Process measurement
◦ Attributes of the process are measured.
◦ Form a baseline for assessing improvements.
Process analysis
◦ The process is assessed and bottlenecks and weaknesses are
identified.
Process change
◦ Changes to the process that have been identified during the
analysis are introduced.
46
Process and Product Quality
A good process is usually required to produce a good
product.
For manufactured goods, process is the principal quality
determinant.
For design-based activity, other factors are also involved:
◦ For example, the capabilities of the designers.
47
Summary
Discussed basic concepts of quality systems.
Explained the quality factors associated with a software
product.
Discussed the Evolution of Quality Systems
Explained the Process Improvement Cycle
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you
Software Project Management
3
What is ISO 9000 Certification?
4
What is ISO 9000 Certification?
ISO 9000 specifies:
◦ Guidelines for repeatable and high quality product development.
◦ Also addresses organizational aspects
Responsibilities, reporting, procedures, processes, and resources for
implementing quality management.
5
ISO 9000
A set of guidelines for the production process.
◦ Not directly concerned about the product it self.
◦ A series of three standards:
ISO 9001, ISO 9002, and ISO 9003.
6
ISO 9000
Based on the premise:
◦ If a proper process is followed for production:
Good quality products are bound to follow.
7
ISO 9001
Applies to:
◦ Organizations engaged in design, development, production, and
servicing of goods.
◦ Applicable to most software development organizations.
8
ISO 9002
ISO 9002 applies to:
◦ Organizations who do not design products:
but are only involved in production.
Examples of this category of industries:
◦ Steel or car manufacturing industries
◦ Buy the product and plant designs from external sources:
only manufacture products.
◦ Not applicable to software development organizations.
9
ISO 9003
ISO 9003 applies to:
◦ Organizations involved only in installation and testing of the
products.
10
ISO 9000 for Software Industry
ISO 9000 is a generic standard:
◦ Applicable to many industries,
Starting from a steel manufacturing industry to a service rendering
company.
11
Software vs. Other Industries
Very difficult to interpret many clauses for software
industry:
◦ Software development is radically different from development of
other products.
12
Software vs. Other Industries
Software is intangible:
◦ Therefore difficult to control.
It is difficult to control anything that we cannot see and feel.
◦ In contrast, in a car manufacturing unit:
We can see a product being developed through stages such as fitting
engine, fitting doors, etc.
One can accurately tell about the status of the product at any time.
◦ Software project management is an altogether different ball
game.
13
Software vs. Other Industries
During software development:
◦ The only raw material consumed is data.
For any other product development:
◦ Lot of raw materials consumed
e.g. Steel industry consumes large volumes of iron ore, coal, limestone,
etc.
15
ISO 9000 Part-3
ISO released a separate document called ISO 9000 part-3
in 1991:
◦ To help interpret the ISO standard for software industry.
At present:
◦ Official guidance is inadequate.
16
Why Get ISO 9000 Certification?
Several benefits:
◦ Confidence of customers in an organization increases.
If organization qualified for ISO 9001 certification.
This is especially true in the international market.
17
Why Get ISO 9000 Certification?
18
Why Get ISO 9000 Certification?
Requires:
◦ A well-documented software production process to be in place.
◦ Contributes to repeatable and higher quality software.
Makes development process:
◦ Focussed, efficient, and cost-effective
19
Why Get ISO 9000 Certification?
Points out the weakness of an organizations:
◦ Recommends remedial action.
Sets the basic framework:
◦ For development of an optimal process and TQM.
20
How to Get ISO 9000 Certification?
An organization intending to obtain ISO 9000 certification:
◦ Applies to a ISO 9000 registrar for registration.
ISO 9000 registration process consists of several stages.
21
How to Get ISO 9000 Certification?
Application stage:
◦ Applies to a registrar for registration.
Pre-assessment:
◦ The registrar makes a rough assessment of the organization.
22
How to Get ISO 9000 Certification?
Document review and adequacy audit:
◦ Process and quality-related documents.
◦ The registrar reviews the documents.
◦ Makes suggestions for improvements.
23
How to Get ISO 9000 Certification?
Compliance audit:The registrar checks:
Whether the suggestions made by it during review have been
complied.
24
How to Get ISO 9000 Certification?
Registration:
◦ The registrar awards ISO 9000 certificate after successful
completions of all previous phases.
Continued surveillance:
◦ The registrar continues monitoring the organization periodically.
25
ISO 9000 Certification
An ISO certified organization :
◦ Can use the certificate for corporate advertizements.
◦ Cannot use the certificate to advertize its products.
ISO 9000 certifies organization's process
Not any product of the organization.
◦ An organization using ISO certificate for product advertizements:
Risks withdrawal of the certificate.
26
Summary of ISO 9001 Requirements
Management responsibility(4.1):
◦ Management must have an effective quality policy.
◦ The responsibility and authority of all those whose work
affects quality:
Must be defined and documented.
27
Salient Features of ISO 9001 Requirements:
28
Salient Features of ISO 9001 Requirements
Important documents independently checked and
reviewed:
◦ For effectiveness and correctness.
The product should be tested :
◦ Against specification.
Several organizational aspects:
◦ e.g., management reporting of the quality team.
29
Shortcomings of ISO 9001 Certification (1)
ISO 9000 requires a production process to be adhered to:
◦ But does not guarantee the process to be of high quality.
◦ Does not give any guideline for defining an appropriate process.
30
Shortcomings of ISO 9001 Certification (2)
31
Shortcomings of ISO 9001 Certification (3)
32
Shortcomings of ISO 9001 Certification (4)
In manufacturing industry:
◦ Clear link between process quality and product quality.
◦ Once a process is calibrated:
Can be run again and again producing quality goods.
Software development is a creative process:
◦ Individual skills and experience is significant.
33
Shortcomings of ISO 9001 Certification (5)
Many areas of software development are very specialized:
◦ Special expertize and experience (domain expertize) required.
ISO 9001:
◦ Does not automatically lead to continuous process improvement,
◦ Does not automatically lead to TQM.
34
Shortcomings of ISO 9001 Certification (6)
35
Summary
Discussed ISO 9000 standard.
Explained how to Get ISO 9000 Certification.
Discussed requirements for ISO.
Discussed the limitations of ISO.
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you
Software Project Management
5
SEI Capability Maturity Model
Can be used in two ways:
◦ Capability evaluation
◦ Software process assessment.
6
Capability Evaluation
Provides a way to assess the software process capability of
an organization:
◦ Helps in selecting a contractor
◦ Indicates the likely contractor performance.
7
Software Process Assessment
Used by an organization to assess its current process:
◦ Suggests ways to improve the process capability.
◦ This type of assessment is for purely internal use.
8
SEI Capability Maturity Model
The SEI CMM classifies software development industries
into:
Five maturity levels.
Stages are ordered so that improvements at one stage provide
foundations for the next.
Based on the pioneering work of Philip Crosby.
9
SEI Capability Maturity Model
Optimizing (5)
Managed (4)
Defined (3)
Repeatable (2)
Initial (1)
10
Level 1: (Initial)
Organization operates
◦ Without any formalized process or project plans
An organization at this level is characterized by
◦ Ad hoc and often chaotic activities.
11
Level 1: (Initial)
Software production processes are not defined,
◦ Different engineers follow their own process
◦ Development efforts become chaotic.
◦ The success of projects depend on individual efforts and heroics.
12
Level 2: (Repeatable)
Basic project management practices
◦ Tracking cost, schedule, and functionality are followed.
Size and cost estimation techniques:
◦ Function point analysis, COCOMO, etc. used.
Production process is ad hoc:
◦ Not formally defined
◦ Also not documented.
13
Level 2: (Repeatable)
Process used for different projects might vary between
projects:
◦ Earlier success on projects with similar applications can be
repeated.
◦ Opportunity to repeat process exist when a company produces a
family of products.
14
Level 3: (Defined)
Management and development activities:
◦ Defined and documented.
◦ Common organization-wide understanding of activities, roles, and
responsibilities.
15
Level 3: (Defined)
The process though defined:
◦ Process and product qualities are not measured.
ISO 9001 aims at achieving this level.
16
Level 4: (Managed)
Quantitative quality goals for products are set.
Software process and product quality are measured:
◦ The measured values are used to control the product quality.
◦ Results of measurement used to evaluate project performance:
Rather than improve process.
17
Level 4: (Managed)
Organization sets quantitative quality goals.
World-wide about 100 organizations assessed at this level.
18
Level 5: (Optimizing)
Statistics collected from process and product
measurements are analyzed:
◦ Continuous process improvement based on the measurements.
Known types of defects are prevented from recurring by tuning the
process
Lessons learned from specific projects incorporated into the process
19
Level 5: (Optimizing)
Identify best software engineering practices and
innovations:
◦ Tools, methods, or process are identified.
◦ Transferred throughout the organization.
World-wide about 500 organizations have been assessed at this level.
20
Key Process Areas
Each level is associated with a key process area (KPA)
which identifies:
◦ Where an organization at the previous level must focus to reach this
level.
21
Level 2 KPAs
Software project planning:
◦ Size, cost, schedule.
◦ Project monitoring
Configuration management
Subcontract management
22
Level 3 KPAs
23
Level 4 KPAs
Quantitative measurements.
Process management.
24
Level 5 KPAs
Defect prevention.
Technology change management.
Process change management.
25
A repeatable model
inputs
(requirements)
resources
(staff, tools)
Repeatable model KPAs
To move to this level concentrate on:
Configuration management
Quality assurance
Sub-contract management
Project planning
Project tracking and oversight
Measurement and analysis
A defined process
requirements
design defects
manage
design methods design &
define system design
system errors
code & unit
inspection tested modules
test
criteria
system errors
define
tools, staff etc
inspection code & unit
criteria test tested modules
tools, staff etc.
test plans integrate/
system test
tools, staff etc.
system
software
34
Comparison Between ISO 9001 and SEI CMM
35
Comparison Between ISO 9001 and SEI CMM
36
CMMI (CMM Integration)
37
Some questions about CMMI
suitable only for large organizations
◦ e.g. need for special quality assurance and process improvement
groups
defining processes may not be easy with new technology
◦ how can we plan when we’ve not used the development method
before?
higher CMM levels easier with maintenance environments
can you jump levels? (HP level 5 in India)
Remarks on Quality Model Usage
Highly systematic and measured approach to software
development process which suits certain circumstances
◦ Negotiated software, safety-critical software, etc.
What about small organizations?
Typically handle applications such as internet, e-comm.
Without an established product range,
Without revenue base, experience on past projects, etc.
CMM may be incompatible
39
Summary
Discussed the basic concepts of SEI CMM.
Compared between ISO and SEI CMM.
References :
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you
Software Project Management
0. incomplete
6
IS0 15504 Process Assessment
For each process in the relevant Process Reference Model
For each set of attribute level criteria
Assess whether:
N: not achieved 0-15%
P: partially achieved 15%-50%
L: largely achieved 50%-85%
F: fully achieved 85% or more
ISO 15504 performance indicators
This is just an example of how indicators for each level
might be identified
1.Performance
Descriptions of maximum and minimum expected input
values exist
2.1 Performance management
A plan of how expected input variable ranges are to be
obtained which is up to date
ISO 15504 performance indicators 2
2.2 Work product management
There are minutes of a meeting where the input
requirements document was reviewed and corrections were
mandated
3.1 Process definition
A written procedure for input requirements gathering exists
3.2 Process deployment
A control document exists that is signed as each part of the
procedure is completed
ISO 15504 performance indicators 2
4.1. Process measurement
Measurement data can be collected e.g. number of changes
resulting from review
4.2. Process control
Memos relating to management actions taken in the light of
the above
ISO 15504 performance indicators 3
5.1 Process innovation
Existence of some kind of ‘lessons learnt’ report at the
end of project
5.2. Process optimization
Existence of documents assessing the feasibility of
suggested process improvements and which show
consultation with relevant stakeholders
Quality Systems for Small Organizations
Small organizations tend to believe:
◦ We are all competent people hired to do a job, we can’t afford
training.
◦ We all communicate with one another.
Osmosis works because we are so close.
◦ We are all heroes:
We do what needs to be done.
Therefore rules do not apply to us.
12
Quality Systems for Small Organizations
Often have problems:
◦ Undocumented requirements
◦ Inexperienced managers
◦ Documenting the product
◦ Resource allocation
◦ Training
◦ Peer reviews
13
Quality Systems for Small Organizations
A two week CMM-based appraisal is probably excessive:
Small organizations need to operate more efficiently at
lower levels of maturity
◦ Must first flourish if eventually they are to mature
14
Personal Software Process (PSP)
Based on the work of Humphrey.
PSP is a scaled down version of industrial software process:
◦ Suitable for individual use.
Even CMM assumes that engineers use effective personal
practices.
15
Personal Software Process (PSP)
A process is the set of steps for doing a job.
The quality and productivity of an engineer are
◦ Largely determined by his process
PSP framework:
◦ Helps software engineers to measure and improve the way they work.
16
Personal Software Process (PSP)
Helps developing personal skills and methods.
◦ Estimating and planning method.
◦ Shows how to track performance against plans.
◦ Provides a defined process;
Can be fine tuned by individuals.
Recognizes that a process for individual use is different from that
necessary for a team project.
17
Time Management
Track the way you spend time:
◦ Boring activities seem longer than actual.
◦ Interesting activities seem short.
Record time for:
◦ Designing
◦ Writing code
◦ Compiling
◦ Testing
18
Personal Software Process (PSP)
Planning
Design
Code Logs
Compile
Test Project plan
Postmortem summary
19
PSP-Planning
Problem definition
Estimate max, min, and total LOC
Determine minutes/LOC
Calculate max, min, and total development times
Enter the plan data in project plan summary form
Record the planned time in Log
20
PSP-Design
Design the program.
Record the design in specified format.
Record the Design time in time recording log.
21
PSP-Code
Implement the design.
Use a standard format for code text.
Use coding standards and guidelines.
Record the coding time in time recording log.
22
PSP-Compile
Compile the program.
Fix all the defects.
Record compile time in time recording log.
23
PSP-Test/Postmortem
Test:
◦ Test the program.
◦ Fix all the defects found.
◦ Record testing time in time recording log.
Postmortem:
◦ Complete project plan summary form with actual time and size data.
◦ Record postmortem time in time record.
24
Personal Software Process (PSP)
26
Six Sigma
To achieve six sigma:
◦ A process must not produce more than 3.4 defects per million
opportunities.
◦ 5 Sigma -> 230 defects per million.
◦ 4 Sigma -> 6210 defects per million.
Six sigma methodologies:
◦ DMAIC (Define, Measure, Analyse, Improve, Control).
◦ DMADV: (Define, Measure, Analyse, Design, Verify).
27
Six Sigma Methodologies
28
Techniques to improve quality
Inspection
Walkthrough Already discussed
Review
Clean room software development
Formal methods
Testing
Reliability
‘Clean-room’ software development
Pioneered at IBM
The term cleanroom was first coined at IBM by drawing
analogy to the semi-conductor fabrication units where the
defects are avoided by manufacturing in an ultra-clean
atmosphere.
Relies heavily on walkthroughs, inspection and formal
verification for bug removal
Programmers are not allowed to test any of their code by
executing the code other than doing some syntax testing
using a compiler 30
‘Clean-room’ software development
Ideas associated with Harlan Mills at IBM
Three separate teams:
1. Specification team – documents user requirements and usage
profiles (how much use each function will have)
2. Development team – develops code but does not test it. Uses
mathematical verification techniques
3. Certification team – tests code. Statistical model used to decide
when to stop
Formal methods
Mathematical notations such as VDM (Vienna Development
Method) and Z can be used to produce unambiguous
specifications.
Can prove correctness of software mathematically (cf.
geometric proofs of Pythagoras’ theorem).
Newer approaches use Object Constraint Language (OCL)
to add details to UML models.
Aspiration is to be able to generate applications directly
from UML+OCL without manual coding – Model Driven
Architectures (MDA).
Verification versus Validation
Verification is the process of determining whether the
output of one phase of software development conforms to
that of its previous phase;
◦ whereas validation is the process of determining whether a fully
developed software conforms to its requirements specification.
Verification is carried out during the development process
to check if the development activities are being carried out
correctly,
◦ whereas validation is carried out towards the end of the development
process to check if the right product as required by the customer has
been developed.
Testing: the V-process model
This is shown diagrammatically on the next slide
It is an extension of the waterfall approach
For each development stage there is a testing stage
The testing associated with different stages serves
different purposes
◦ e.g. system testing tests that components work together correctly,
user acceptance testing tests that users can use system to carry
out their work
Testing: the V-process model
Black box versus glass box testing
Glass box testing
◦ The tester is aware of the internal structure of the code; can test
each path; can assess percentage test coverage of the tests e.g.
proportion of code that has been executed
Black box testing
◦ The tester is not aware of internal structure; concerned with
degree to which it meets user requirements
Levels of testing
Unit testing
Integration testing
System testing
Testing activities
Test planning
Test suite design
Test case execution and result checking
Test reporting:
Debugging:
Error correction:
Defect retesting
Regression testing
Test closure:
Test plans
Specify test environment
◦ In many cases, especially with software that controls equipment, a
special test system will need to be set up
Usage profile
◦ failures in operational system more likely in the more heavily used
components
◦ Faults in less used parts can lie hidden for a long time
◦ Testing heavily used components more thoroughly tends to reduce
number of operational failures
39
Management of testing
The tester executes test cases and may as a result find
discrepancies between actual results and expected results
– issues
Issue resolution – could be:
a mistake by tester
a fault – needs correction
a fault – may decide not to correct: off-specification
a change – software works as specified, but specification
wrong: submit to change control
Decision to stop testing
• The problem: impossible to know there are no more
errors in code
• Need to estimate how many errors are likely to be left
• Bug seeding – insert (or leave) known bugs in code
• Estimate of bugs left =
• (total errors found)/(seeded errors found) x (total seeded errors)
How many errors are still remaining?
Seed the code with some known errors:
◦ artificial errors are introduced into the program.
◦ Check how many of the seeded errors are detected
during testing.
42
Error Seeding
Let:
◦ N be the total number of errors in the system
◦ n of these errors be found by testing.
◦ S be the total number of seeded errors,
◦ s of the seeded errors be found during testing.
43
Error Seeding
n/N = s/S
N = S * n/s
remaining defects:
N - n = n * ((S - s)/ s)
44
Example
100 errors were introduced.
90 of these errors were found during testing
50 other errors were also found.
Remaining errors= 50 * (100-90)/90 = 6
45
Error Seeding - issues
The kind of seeded errors should match closely with
existing errors:
◦ However, it is difficult to predict the types of errors that exist.
Categories of remaining errors:
◦ can be estimated by analyzing historical data from similar projects.
46
Alternative method of error estimation
Have two independent testers,A and B
N1 = valid errors found by A
N2 = valid errors found by B
N12 = number of cases where same error found by A and B
Estimate = (N1 × N2)/ N12
Example: A finds 30 errors, B finds 20 errors. 15 are common
to A and B. How many errors are there likely to be?
(30 X 20)/15 = 40 errors
Test automation
Other than reducing human effort and time,
◦ Test automation also significantly improves the thoroughness of
testing.
A large number of tools are at present available both in the
public domain as well as from commercial sources.
48
Types of Testing Tools
Capture and playback
Automated test script
Random input test
Model-based test
Summary
Discussed ISO/IEC 15504 Standard
Discussed PSP.
Briefly introduced Six sigma.
Explained some techniques to improve software quality.
◦ Clean room software development
◦ Formal methods
◦ Testing
References
1. B. Hughes, M. Cotterell, R. Mall, Software Project Management, Sixth Edition,
McGraw Hill Education (India) Pvt. Ltd., 2018.
2. R. Mall, Fundamentals of Software Engineering, Fifth Edition, PHI Learning Pvt. Ltd.,
2018.
Thank you