Software Engineering 7SKILLS Full
Software Engineering 7SKILLS Full
MCA102
SOFTWARE ENGINEERING
AND
PROJECT MANAGEMENT
F.Y. MCA (CBCS)
SEMESTER - I
© UNIVERSITY OF MUMBAI
Course Co-ordinator
Asst. Prof. Reshma Kurkute
Department - MCA, University of Mumbai, IDOL
Asst. Prof. Shardul Gavande
Department - MCA, University of Mumbai, IDOL
Course Writer
Asst. Prof. Amit Kukreja
K. J. Somaiya Institute of Engineering & Information Technology, Sion. Mumbai.
Asst. Prof. Vishal Khandekar
K. J. Somaiya Institute of Engineering & Information Technology, Sion. Mumbai.
Asst. Prof. Pallavi Chavda
K. J. Somaiya Institute of Engineering & Information Technology, Sion. Mumbai.
Asst. Prof. Prachi Surve
Department - I.T., Ramniranjan Jhunjunwala College, Ghatkopar (W), Mumbai.
Published by
Dr. Prakash Mahanwar, Director Incharge
on behalf of Institute of Distance & Open Learning,University of Mumbai, Mumbai
and Printed at Printers Name
Printers address
ii
CONTENTS
iii
Software Engineering and Project Management
F.Y. MCA (CBCS)
Semester - I
SYLLABUS
iv
5 Project Relationship between people and Effort: Staffing 6
Scheduling and Level Estimation, Effect of schedule Change on
Procurement Cost, Degree of Rigor & Task set selector, Project
management Schedule, Schedule Control, CPM (Numericals),
Basic Planning Purchases and Acquisitions,
Planning Contracting, Requesting Seller
Responses, Selecting Sellers, Out Sourcing:
The Beginning of the outsourcing phenomenon,
Types of outsourcing relationship, The realities
of outsourcing, Managing the outsourcing
relationship.
v
vi
UNIT
Chapter 1
1: Introduction to Software Engineering and Project Management
1
INTRODUCTION TO SOFTWARE
ENGINEERING AND PROJECT
MANAGEMENT
Unit Structure
1.0 Objectives
1.1 Introduction
1.1.1 Software Engineering
1.1.2 Software
1.1.3 Evolving Role of Software
1.1.4 Three “R” Reuse
1.2 Summary
Objectives
1
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
1.1 Introduction
The world can’t operate without software. Industries are controlled by software
systems, as the financial systems, scientific labs, infrastructures and utilities, games,
film, television, and the list goes on.
Good software should deliver the main required functionality.
Other set of attributes — called quality or non-functional — should be also
delivered. Examples of these attributes are, the software is written in a way that
can be adapted to changes, response time, performance (less use of resources such
as memory and processor time), usable; acceptable for the type of the user it’s built
for, reliable, secure, safe, …etc.
1.1.1 Software Engineering:
Software engineering is an engineering discipline that’s applied to the development
of software in a systematic approach (called a software process). It’s the application
of theories, methods, and tools to design build a software that meets the specifications
efficiently, cost-effectively, and ensuring quality. It’s not only concerned with the
technical process of building software, it also includes activities to manage the
project, develop tools, methods and theories that support the software production.
Not applying software engineering methods results in more expensive, less reliable
software, and it can be vital on the long term, as the changes come in, the costs will
dramatically increase. Different methods and techniques of software engineering
are appropriate for different types of systems. For example, games should be
developed using series of prototypes, while critical control systems require a
complete analyzable specification to be developed.
Computer Science Vs Software Engineering
Computer science focuses on the theory and fundamentals, like algorithms,
programming languages, theories of computing, artificial intelligence, and hardware
design, while software engineering is concerned with the activities of developing
and managing software.
Software Engineers
The job of a software engineer is difficult. It has to balance between different people
involved, such as
Dealing with users: User doesn’t know what to expect exactly from the software.
The concern is always about the ease of use and response time.
2
Chapter 1: Introduction to Software Engineering and Project Management
Dealing with technical people: Developers are more technically inclined people
so they think more of database terms, functionality, etc.
Dealing with management: They are concerned with return on their investment,
and meeting the schedule. For success in large software developments, it is
important to follow an engineering approach, consisting of a well defined process.
That’s what we’re going to explore next in the “Software Processes”.
1.1.2 Software
Software: “So, what’s software anyway?” … software is a computer programs
along with the associated documents and the configuration data that make these
programs operate correctly.
A program is a set of instructions (written in form of human-readable code) that
performs a specific task.
Types of Software Systems:
There are many different types of software systems from simple to complex systems.
These systems may be developed for a particular customer, like systems to support
a particular business process, or developed for a general purpose, like any software
for our computers such as word processors.
Many systems are now being built with a generic product as base, which is then
adapted to suit the requirements of a customer such as SAP system.
1.1.3 Evolving Role of Software
Evolving Role of Software:
Software takes dual role. It is both a product and a vehicle for delivering a product.
As a product: It delivers the computing potential embodied by computer Hardware
or by a network of computers. As a vehicle: It is information transformer-producing,
managing, acquiring, modifying, displaying, or transmitting information that can
be as simple as single bit or as complex as a multimedia presentation. Software
delivers the most important product of our time-information. It transforms personal
data. It manages business information to enhance competitiveness. It provides a
gateway to worldwide information networks. It provides the means for acquiring
information.
The role of computer software has undergone significant change over a span of
little more than 50 years. Dramatic Improvements in hardware performance Vast
increases in memory and storage capacity, A wide variety of exotic input and output
options.
3
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
1990s began:
Mid-1990s:
Later 1990s:
Yourdon re-evaluated the prospects of the software professional and suggested the
rise and resurrection of the American programmer. The impact of the Y2K time
bomb was at the end of 20th century.
2000s progressed:
4
Chapter 1: Introduction to Software Engineering and Project Management
1. Software Reuse:
A definition of software reuse is the process of creating software systems from
predefined software components.
The advantage of software reuse:
5
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
2. Reengineering :
Software Re-engineering is a process of software development which is done to
improve the maintainability of a software system. Re-engineering is the examination
and alteration of a system to reconstitute it in a new form. This process encompasses
a combination of sub-processes like reverse engineering, forward engineering,
reconstructing etc.
Re-engineering is the reorganizing and modifying existing software systems to
make them more maintainable.
Objectives of Re-engineering:
• To describe a cost-effective option for system evolution.
• To describe the activities involved in the software maintenance process.
• To distinguish between software and data re-engineering and to explain the
problems of data re-engineering.
Steps involved in Re-engineering:
1. Inventory Analysis
2. Document Reconstruction
3. Reverse Engineering
4. Code Reconstruction
5. Data Reconstruction
6. Forward Engineering
Diagrammatic Representation (Figure 1.1):
6
Chapter 1: Introduction to Software Engineering and Project Management
• Reduced Risk:
As the software already exists, the risk is less as compared to new software
development. Development problems, staffing problems and specification
problems are the lots of problems which may arise in new software
development.
• Reduced Cost:
The cost of re-engineering is less than the costs of developing new software.
• Reverse Engineering:
7
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
and make products and systems compatible so they can work together or share
data. It is done to evaluate one’s own product to understand its limitations
and determine whether someone else has literally copied elements of one’s
own technology. The common use of it is to transform obsolete products into
useful ones by adapting them to new systems and platforms.
The reverse engineer can reuse code in his own programs or modify an
existing program to perform in other ways. He can use the knowledge gained
from RE to correct application programs, also known as bugs. But the most
important is that one can get extremely useful ideas by observing how other
programmers work and think, thus improving his skills and knowledge.
3. Retooling:
To achieve the first two R’s, we need a third R—a new generation of software tools.
In retooling the
Software engineering process, we must remember the mistakes of the 1980s and
early 1990s. At that time, CASE tools were inserted into a process vacuum, and
failed to meet expectations. Tools for the next ten years will address all aspects of
the methods landscape. But they should emphasize reuse and re-engineering.
1.2 Summary
vvv
8
UNIT 1 Chapter 2: Overview of IT Project Management
2
OVERVIEW OF IT PROJECT
MANAGEMENT
Unit Structure
2.0 Objectives
2.1 Introduction to An Overview of IT Project Management
2.1.1 What Is IT Project Management?
2.1.2 Project Management Framework
2.1.3 Responsibilities of an IT Project Manager
2.1.4 System view of a project
2.1.5 Stakeholder Management
2.1.6 Project Phases and the project life cycle
2.2 Summary
2.0 Objective
9
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
In IT, projects have become more complex as technologies rapidly change and
end-users demand greater ease-of-use and flexibility. For an IT project manager to
achieve their objectives, it is imperative that these initiatives are completed on time
and on budget.
Discover what it means to manage IT projects, common challenges faced by IT
project managers, and tips to make your next IT project a success. You’ll also find
helpful resources, like guides and free templates.
2.1.1 What Is IT Project Management?
IT project management (ITPM) is the process of managing the plan, organization,
and accountability to achieve information technology goals. Since the reach of IT
spans across most of a business or enterprise, the scope of these projects can be
large and complex.
The magnitude of IT project management often means that it’s more than just
applying knowledge, aligning skills, and using regular tools and techniques to
drive a project to completion. IT project managers deal with the challenges of
interdependent integrations, rapid technology upgrades, and version changes that
can occur throughout the project timeline (Figure 2.1).
10
Chapter 2: Overview of IT Project Management
• Initiation:
Project Managers work with other concerned stakeholders to evaluate and
determine the values and feasibility of the project
• Planning:
Create a project plan: team, timeline, activities, and resources budgeting.
Designing required solutions to solve the customer’s problem. Communicate
project plan to all stakeholders.
• Execution:
Team delivery of project plan. Test project implementation to ensure
successful project integration. Monitor all aspect of project plan to ensure
quality and delivery time. Establish training and modes of continues support
for customers
• Performance Control:
Project execution process gets evaluated in this phase by means of KPIs
like project objectives, quality deliverables, cost monitoring, overall project
performance, etc.
• Closure:
The promised project deliverables are handed over to the client for validation.
A final closure meeting is also held to discuss the overall experience and to
close all project accounts.
Today’s IT project managers (IT PM) must be able to juggle a wide range of tasks
and responsibilities. They must be able to handle firmware and software integrations,
website construction, database storage and management, and also build complex
and geographically diverse infrastructures and networks, all while planning for
potential security and data risks.
11
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
12
Chapter 2: Overview of IT Project Management
13
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Stakeholder Analysis
A qualitative and quantitative analysis is required to systematically determine the
interest of stakeholders throughout the project. The benefits of this analysis are:
Stakeholder interests can be identified
Stakeholder expectations can be identified
Another benefit includes identification of stakeholder relationships that can be
leveraged to build partnerships with stakeholders to increase the probability of
project success
Multiple classification models are used for stakeholder analysis, but not limited to:
Power/Interest grid: Bifurcation of stakeholders based on their level of authority
and their level of concern regarding project outcomes.
Power/Influence grid: Bifurcation of stakeholders based on their level of authority
and their level of involvement in the project
Power/Impact grid: Bifurcation of stakeholders based on their level of authority
and their level of impacting changes on project activities
Salience model: This model describes categories of stakeholders based on their
power, urgency, and legitimacy.
• Stakeholder Classification
14
Chapter 2: Overview of IT Project Management
15
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
This is an excellent time to identify and try to deal with anything that might pose a
threat to the successful completion of the project. This is called risk management.
In risk management, “high-threat” potential problems are identified along with the
action that is to be taken on each high-threat potential problem, either to reduce the
probability that the problem will occur or to reduce the impact on the project if it
does occur. This is also a good time to identify all project stakeholders and establish
a communication plan describing the information needed and the delivery method
to be used to keep the stakeholders informed.
Finally, you will want to document a quality plan, providing quality targets,
assurance, and control measures, along with an acceptance plan, listing the criteria
to be met to gain customer acceptance. At this point, the project would have been
planned in detail and is ready to be executed.
Implementation (Execution) Phase:
During the third phase, the implementation phase, the project plan is put into
motion and the work of the project is performed. It is important to maintain control
and communicate as needed during implementation. Progress is continuously
monitored and appropriate adjustments are made and recorded as variances from
the original plan. In any project, a project manager spends most of the time in
this step. During project implementation, people are carrying out the tasks, and
progress information is being reported through regular team meetings. The project
manager uses this information to maintain control over the direction of the project
by comparing the progress reports with the project plan to measure the performance
of the project activities and take corrective action as needed. The first course of
action should always be to bring the project back on course (i.e., to return it to the
original plan). If that cannot happen, the team should record variations from the
original plan and record and publish modifications to the plan. Throughout this
step, project sponsors and other key stakeholders should be kept informed of the
project’s status according to the agreed-on frequency and format of communication.
The plan should be updated and published on a regular basis.
Status reports should always emphasize the anticipated end point in terms of cost,
schedule, and quality of deliverables. Each project deliverable produced should be
reviewed for quality and measured against the acceptance criteria. Once all of the
deliverables have been produced and the customer has accepted the final solution,
the project is ready for closure.
16
Chapter 2: Overview of IT Project Management
Closing Phase:
During the final closure, or completion phase, the emphasis is on releasing the final
deliverables to the customer, handing over project documentation to the business,
terminating supplier contracts, releasing project resources, and communicating the
closure of the project to all stakeholders. The last remaining step is to conduct
lessons-learned studies to examine what went well and what didn’t. Through
this type of analysis, the wisdom of experience is transferred back to the project
organization, which will help future project teams.
Example: Project Phases on a Large Multinational Project:
A U.S. construction company won a contract to design and build the first copper mine
in northern Argentina. There was no existing infrastructure for either the mining
industry or large construction projects in this part of South America. During the
initiation phase of the project, the project manager focused on defining and finding
a project leadership team with the knowledge, skills, and experience to manage a
large complex project in a remote area of the globe. The project team set up three
offices. One was in Chile, where large mining construction project infrastructure
existed. The other two were in Argentina. One was in Buenos Aries to establish
relationships and Argentinean expertise, and the second was in Catamarca—the
largest town close to the mine site. With offices in place, the project start-up team
began developing procedures for getting work done, acquiring the appropriate
permits, and developing relationships with Chilean and Argentine partners.
During the planning phase, the project team developed an integrated project schedule
that coordinated the activities of the design, procurement, and construction teams.
The project controls team also developed a detailed budget that enabled the project
team to track project expenditures against the expected expenses. The project design
team built on the conceptual design and developed detailed drawings for use by
the procurement team. The procurement team used the drawings to begin ordering
equipment and materials for the construction team; develop labour projections;
refine the construction schedule; and set up the construction site. Although planning
is a never-ending process on a project, the planning phase focused on developing
sufficient details to allow various parts of the project team to coordinate their work
and allow the project management team to make priority decisions.
The implementation phase represents the work done to meet the requirements of the
scope of work and fulfil the charter. During the implementation phase, the project
team accomplished the work defined in the plan and made adjustments when the
project factors changed. Equipment and materials were delivered to the work site,
17
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
labour was hired and trained, a construction site was built, and all the construction
activities, from the arrival of the first dozer to the installation of the final light
switch, were accomplished.
The closeout phase included turning over the newly constructed plant to the
operations team of the client. A punch list of a few remaining construction items
was developed and those items completed. The office in Catamarca was closed, the
office in Buenos Aries archived all the project documents, and the Chilean office
was already working on the next project. The accounting books were reconciled
and closed, final reports written and distributed, and the project manager started on
a new project.
2.2 Summary
vvv
18
UNIT 2 Chapter 3: Software Process Models
3
SOFTWARE PROCESS MODELS
Unit Structure
3.0 Objectives
3.1 Introduction
3.2 Software Process Models:
3.2.1 Waterfall Model
3.2.2 Evolutionary process model
3.2.2.1 Prototype Model
3.2.2.2 Spiral Model
3.2.3 Incremental Process Model
3.2.3.1 Iterative Approach
3.2.3.2 Rapid Application Development Model
3.2.3.3 Joint Application Development Model
3.2.3.4 Concurrent Development Model
3.2.4 Agile Development
3.2.4.1 Extreme Programming
3.2.4.2 Scrum
3.3 Summary
3.0 Objectives
19
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
3.1 Introduction
Software Process Models were originally proposed to bring order to the chaos of
software development. History has indicated that these conventional models have
brought a certain amount of useful structure to software engineering work and have
provided reasonably effective roadmap for software teams.
20
Chapter 3: Software Process Models
• System Design − the requirement specifications from first phase are studied
in this phase and the system design is prepared. This system design helps
in specifying hardware and system requirements and helps in defining the
overall system architecture.
• Implementation − with inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next
phase. Each unit is developed and tested for its functionality, which is referred
to as Unit Testing.
21
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
• Integration and Testing − All the units developed in the implementation phase
are integrated into a system after testing of each unit. Post integration the
entire system is tested for any faults and failures.
• Maintenance − There are some issues which come up in the client environment.
To fix those issues, patches are released. Also to enhance the product some
better versions are released. Maintenance is done to deliver these changes in
the customer environment.
All these phases are cascaded to each other in which progress is seen as
flowing steadily downwards (like a waterfall) through the phases. The next
phase is started only after the defined set of goals are achieved for previous
phase and it is signed off, so the name “Waterfall Model”. In this model,
phases do not overlap.
• Ample resources with required expertise are available to support the product.
22
Chapter 3: Software Process Models
It is better for software products that have their feature sets redefined during
23
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Feedback is provided by the users on the product for the planning stage of the next
cycle and the development team responds, often by changing the product, plan or
process. Therefore, the software product evolves with time.
All the models have the disadvantage that the duration of time from start of the
project to the delivery time of a solution is very high. Evolutionary model solves
this problem in a different approach.
Software prototyping model works best in scenarios where the project’s requirement
are not known. It is an iterative, trial, and error method which take place between
the developer and the client (Figure 3.2).
24
Chapter 3: Software Process Models
25
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
26
Chapter 3: Software Process Models
size for each version. Implement important features early on so that if you run out
of the time, you still have a worthwhile system
Advantages of the Prototyping Model
Here, are important pros/benefits of using Prototyping models:
• Users are actively involved in development. Therefore, errors can be detected
in the initial stage of the software development process.
• Missing functionality can be identified, which helps to reduce the risk of
failure as Prototyping is also considered as a risk reduction activity.
• Helps team member to communicate effectively.
• Customer satisfaction exists because the customer can feel the product at a
very early stage. There will be hardly any chance of software rejection.
• Quicker user feedback helps you to achieve better software development
solutions. It allows the client to compare if the software code matches the
software specification.
• It helps you to find out the missing functionality in the system. It also
identifies the complex or difficult functions that encourage innovation and
flexible designing.
• It is a straightforward model, so it is easy to understand. No need for
specialized experts to build the model.
• The prototype serves as a basis for deriving a system specification.
• The prototype helps to gain a better understanding of the customer’s needs.
Prototypes can be changed and even discarded.
• Prototype also serves as the basis for operational specifications.
• Prototypes may offer early training for future users of the software system.
27
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
28
Chapter 3: Software Process Models
Construct or Build:
The Construct phase refers to production of the actual software product at every
spiral. In the baseline spiral, when the product is just thought of and the design is
being developed a POC (Proof of Concept) is developed in this phase to get customer
feedback. Then in the subsequent spirals with higher clarity on requirements and
design details a working model of the software called build is produced with a
version number. These builds are sent to the customer for feedback.
Evaluation and Risk Analysis:
Risk Analysis includes identifying, estimating and monitoring the technical
feasibility and management risks, such as schedule slippage and cost overrun. After
testing the build, at the end of first iteration, the customer evaluates the software
and provides feedback. The following illustration is a representation of the Spiral
Model, listing the activities in each phase. Based on the customer evaluation, the
software development process enters the next iteration and subsequently follows
the linear approach to implement the feedback suggested by the customer. The
process of iterations along the spiral continues throughout the life of the software.
Spiral Model Application:
The Spiral Model is widely used in the software industry as it is in sync with the
natural development process of any product, i.e. learning with maturity which
involves minimum risk for the customer as well as the development firms.
The following pointers explain the typical uses of a Spiral Model −
• When there is a budget constraint and risk evaluation is important.
• For medium to high-risk projects.
• Long-term project commitment because of potential changes to economic
priorities as the requirements change with time.
• Customer is not sure of their requirements which are usually the case.
• Requirements are complex and need evaluation to get clarity.
• New product line which should be released in phases to get enough customer
feedback.
• Significant changes are expected in the product during the development cycle.
Spiral Model - Pros and Cons:
The advantage of spiral lifecycle model is that it allows elements of the product to
be added in, when they become available or known. This assures that there is no
conflict with previous requirements and design.
29
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
This method is consistent with approaches that have multiple software builds
and releases which allows making an orderly transition to a maintenance activity.
Another positive aspect of this method is that the spiral model forces an early user
involvement in the system development effort.
On the other side, it takes a very strict management to complete such products and
there is a risk of running the spiral in an indefinite loop. So, the discipline of change
and the extent of taking change requests is very important to develop and deploy
the product successfully.
The advantages of the Spiral SDLC Model are as follows −
• Changing requirements can be accommodated.
• Allows extensive use of prototypes.
• Requirements can be captured more accurately.
• Users see the system early.
• Development can be divided into smaller parts and the risky parts can be
developed earlier which helps in better risk management.
30
Chapter 3: Software Process Models
31
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Advantages –
• Error Reduction (core modules are used by the customer from the beginning
of the phase and then these are tested thoroughly)
• Uses divide and conquer for breakdown of tasks.
• Lowers initial delivery cost.
• Incremental Resource Deployment.
Disadvantages –
• Requires good planning and design.
• Total cost is not lower.
• Well defined module interfaces are required.
32
Chapter 3: Software Process Models
33
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
What is RAD?
34
Chapter 3: Software Process Models
Business Modelling:
The business model for the product under development is designed in terms of
flow of information and the distribution of information between various business
channels. A complete business analysis is performed to find the vital information
for business, how it can be obtained, how and when is the information processed
and what are the factors driving successful flow of information.
Data Modelling:
The information gathered in the Business Modeling phase is reviewed and analyzed
to form sets of data objects vital for the business. The attributes of all data sets is
identified and defined. The relation between these data objects are established and
defined in detail in relevance to the business model.
Process Modelling:
The data object sets defined in the Data Modeling phase are converted to establish
the business information flow needed to achieve specific business objectives as per
the business model. The process model for any changes or enhancements to the
data object sets is defined in this phase. Process descriptions for adding, deleting,
retrieving or modifying a data object are given.
Application Generation:
The actual system is built and coding is done by using automation tools to convert
process and data models into actual prototypes.
The overall testing time is reduced in the RAD model as the prototypes are
independently tested during every iteration. However, the data flow and the
interfaces between all the components need to be thoroughly tested with complete
test coverage. Since most of the programming components have already been
tested, it reduces the risk of any major issues.
The traditional SDLC follows a rigid process models with high emphasis on
requirement analysis and gathering before the coding starts. It puts pressure on the
35
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
customer to sign off the requirements before the project starts and the customer
doesn’t get the feel of the product as there is no working build available for a
long time. The customer may need some changes after he gets to see the software.
However, the change process is quite rigid and it may not be feasible to incorporate
major changes in the product in the traditional SDLC. The RAD model focuses on
iterative and incremental delivery of working models to the customer. This results
in rapid delivery to the customer and customer involvement during the complete
development cycle of product reducing the risk of non-conformance with the actual
user requirements.
RAD model can be applied successfully to the projects in which clear modularization
is possible. If the project cannot be broken into modules, RAD may fail.
The following pointers describe the typical scenarios where RAD can be used −
• RAD should be used only when a system can be modularized to be delivered
in an incremental manner.
• It should be used if there is a high availability of designers for modeling.
• It should be used only if the budget permits use of automated code generating
tools.
• RAD SDLC model should be chosen only if domain experts are available
with relevant business knowledge.
• Should be used where the requirements change during the project and working
prototypes are to be presented to customer in small iterations of 2-3 months.
RAD model enables rapid delivery as it reduces the overall development time due
to the reusability of the components and parallel development. RAD works well
only if high skilled engineers are available and the customer is also committed
to achieve the targeted prototype in the given time frame. If there is commitment
lacking on either side the model may fail.
36
Chapter 3: Software Process Models
Collaboration and then building software is the key power which drives technology
and its innovation. JAD is a model for software development that augments the
stakeholders’ association in cycles of software development. Its life cycle has been
adopted for areas of dynamic software development method. It collects business and
system requirements while building a new information system for any organization
or enterprise. In this chapter, you will learn about the JAD model in detail.
37
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
This model furthermore, is vast when it comes to agile delivery wherein the software
products need to be developed as well as shipped in short iterations depending on
agreements among the industrial as well as industry stakeholders which are termed
as Minimum Viable Product (MVP).
Phases of JAD Model: Since you have become familiar with the JAD concept,
it is time to know about its phases and how the model’s design and development
approach works:
Define Specific Objectives: The facilitator, in partnership with stakeholders, set all
the objectives as well as a list of items which is then distributed to other developers
and participants to understand and review. This objective contains elements like
the scope of this projected system, its potential outcome, technical specification
required, etc.
Session Conduct: Here the facilitator is accountable to identify those issues which
have to be working out for making the system error-free. Here the facilitator will
serve as a participant but will not have a say regarding any information.
38
Chapter 3: Software Process Models
• Improved Quality: Since all the key decision makers and stakeholders of
the project are involved in the development of the project so there is the
least chance of error and hence the product quality becomes better and more
accurate.
Why Agile?
Technology in this current era is progressing faster than ever, enforcing the global
software companies to work in a fast-paced changing environment. Because these
businesses are operating in an ever-changing environment, it is impossible to gather
39
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
40
Chapter 3: Software Process Models
the design and development phase, it gives Agile development an extra level
of flexibility.
• An agile process focuses more on code development rather than
documentation.
Example: Let’s go through an example to understand clearly about how agile
actually works.
A Software company named ABC wants to make a new web browser for the
latest release of its operating system. The deadline for the task is 10 months. The
company’s head assigned two teams named Team A and Team B for this task. In
order to motivate the teams, the company head says that the first team to develop
the browser would be given a salary hike and a one week full sponsored travel plan.
With the dreams of their wild travel fantasies, the two teams set out on the journey
of the web browser. The team A decided to play by the book and decided to choose
the Waterfall model for the development. Team B after a heavy discussion decided
to take a leap of faith and choose Agile as their development model.
The Development plan of the Team A is as follows:
• Requirement analysis and Gathering – 1.5 Months
• Design of System – 2 Months
• Coding phase – 4 Months
• System Integration and Testing – 2 Months
• User Acceptance Testing – 5 Weeks
The Development plan for the Team B is as follows:
• Since this was an Agile, the project was broken up into several iterations.
• The iterations are all of the same time duration.
• At the end of each iteration, a working product with a new feature has to be
delivered.
• Instead of Spending 1.5 months on requirements gathering, They will decide
the core features that are required in the product and decide which of these
features can be developed in the first iteration.
• Any remaining features that cannot be delivered in the first iteration will be
delivered in the next subsequent iteration, based in the priority
At the end of the first iterations, the team will deliver working software with the
core basic features.
41
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Both the team have put their best efforts to get the product to a complete stage.
But then out of blue due to the rapidly changing environment, the company’s head
come up with an entirely new set of features and want to be implemented as quickly
as possible and wanted to push out a working model in 2 days. Team A was now in a
fix, they were still in their design phase and did not yet started coding and they had
no working model to display. And moreover, it was practically impossible for them
to implement new features since waterfall model there is not reverting back to the
old phase once you proceed to the next stage that means they would have to start
from the square one again. That would incur them heavy cost and a lot of overtime.
Team B was ahead of Team A in a lot of aspects, all thanks to Agile Development.
They also had the working product with most of the core requirement since the
first increment. And it was a piece of cake for them to add the new requirements.
All they had to do is schedule these requirements for the next increment and then
implement them.
Advantages:
• Deployment of software is quicker and thus helps in increasing the trust of
the customer.
• Can better adapt to rapidly changing requirements and respond faster.
• Helps in getting immediate feedback which can be used to improve the
software in the next increment.
• People – Not Process. People and interactions are given a higher priority
rather than process and tools.
• Continuous attention to technical excellence and good design.
Disadvantages:
• In case of large software projects, it is difficult to assess the effort required at
the initial stages of the software development life cycle.
• The Agile Development is more code focused and produces less documentation.
• Agile development is heavily depended on the inputs of the customer. If the
customer has ambiguity in his vision of the final outcome, it is highly likely
for the project to get off track.
• Face to Face communication is harder in large-scale organizations.
• Only senior programmers are capable of taking the kind of decisions required
during the development process. Hence it’s a difficult situation for new
programmers to adapt to the environment.
42
Chapter 3: Software Process Models
43
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
44
Chapter 3: Software Process Models
3.2.4.2 Scrum
Scrum is widely used by software development teams. In fact it’s the most popular
agile methodology. According to the 12th annual State of Agile report, 70% of
software teams use Scrum or a Scrum hybrid. However, Scrum has spread to other
business functions including IT and marketing where there are projects that must
move forward in the presence of complexity and ambiguity. Leadership teams are
also basing their agile management practices on Scrum, often combining it with
lean and Kanban practices (subgroups of agile project management).
45
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
3.3 Summary
• In Prototype Model, prototype is built, tests, and then reworked when needed
until an acceptable prototype is achieved.
vvv
46
UNIT 3 4: Software Requirement Analysis and Specification
Chapter
4
SOFTWARE REQUIREMENT
ANALYSIS AND SPECIFICATION
Unit Structure
4.0 Objectives
4.1 Introduction
4.6 Summary
47
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
4.0 Objectives
4.1 Introduction
The requirements for a system are the descriptions of the services that a system
should provide and the constraints on its operation. These requirements reflect the
needs of customers for a system that serves a certain purpose such as controlling
a device, placing an order, or finding information. The process of finding out,
analyzing, documenting and checking these services and constraints is called
requirements engineering (RE).
The term requirement is not used consistently in the software industry. In some
cases, a requirement is simply a high-level, abstract statement of a service that
a system should provide or a constraint on a system. At the other extreme, it is a
detailed, formal definition of a system function.
1. Functional requirements:
These are statements of services the system should provide, how the system
should react to particular inputs, and how the system should behave in
particular situations. In some cases, the functional requirements may also
explicitly state what the system should not do.
48
Chapter 4: Software Requirement Analysis and Specification
2. Non-functional requirements:
1. A user shall be able to search the appointments lists for all clinics.
2. The system shall generate each day, for each clinic, a list of patients who are
expected to attend appointments that day.
3. Each staff member using the system shall be uniquely identified by his or her
eight-digit employee number.
49
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
For example, the first Mentcare system requirement in the above list states that a
user shall be able to search the appointments lists for all clinics. The rationale for this
requirement is that patients with mental health problems are sometimes confused.
They may have an appointment at one clinic but actually go to a different clinic. If
they have an appointment, they will be recorded as having attended, regardless of
the clinic.
50
Chapter 4: Software Requirement Analysis and Specification
Non-functional requirements, as the name suggests, are requirements that are not
directly concerned with the specific services delivered by the system to its users.
These non-functional requirements usually specify or constrain characteristics
of the system as a whole. They may relate to emergent system properties such
as reliability, response time, and memory use. Alternatively, they may define
constraints on the system implementation, such as the capabilities of I/O devices or
the data representations used in interfaces with other systems.
51
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
52
Chapter 4: Software Requirement Analysis and Specification
3. External requirements: This broad heading covers all requirements that are
derived from factors external to the system and its development process. These may
include regulatory requirements that set out what must be done for the system to
be approved for use by a regulator, such as a nuclear safety authority; legislative
requirements that must be followed to ensure that the system operates within the
law; and ethical requirements that ensure that the system will be acceptable to its
users and the general public.
The activities are organized as an iterative process around a spiral. The output of
the RE process is a system requirements document. The amount of time and effort
devoted to each activity in iteration depends on the stage of the overall process, the
type of system being developed, and the budget that is available.
Early in the process, most effort will be spent on understanding high-level business
and non-functional requirements, and the user requirements for the system. Later in
the process, in the outer rings of the spiral, more effort will be devoted to eliciting
and understanding the non-functional requirements and more detailed system
requirements.
53
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Some of the problems that arise during the requirements engineering process are
a result of failing to make a clear separation between these different levels of
description. I distinguish between them by using the term user requirements to
mean the high-level abstract requirements and system requirements to mean the
detailed description of what the system should do.
54
Chapter 4: Software Requirement Analysis and Specification
55
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
modelling only a limited set of constructs are used, and the rules applied are
designed to be simple and easy to follow. These same rules and constructs apply to
all data-flow diagrams (i.e., for each of the different software process activities in
which DFDs can be used).
The benefits of data-flow diagrams
Data-flow diagrams provide a very important tool for software engineering, for a
number of reasons:
• The system scope and boundaries are clearly indicated on the diagrams (more
will be described about the boundaries of systems and each DFD later in this
chapter).
56
Chapter 4: Software Requirement Analysis and Specification
57
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
During this unit we shall investigate each of the three types of diagram in the
sequence they are described above. This is both a sequence of increasing complexity
and sophistication, and also the sequence of DFDs that is usually followed when
modelling systems.
For each type of diagram we shall first investigate what the features of the diagram
are, and then we shall investigate how to create that type of diagram. However,
before looking at particular kinds of dataflow diagrams, we shall briefly examine
each of the symbols from which DFDs are composed.
4.4.2 Data Dictionary
There is a wide range of definitions for Data Dictionary /Directory Systems (DD/
DS). Due to the increasing interest and the rapidly evolving nature of this field in
recent years, terminology is somewhat confusing. One author speaks of a Data
Dictionary System (DDS) or System Resources Dictionary, while another refers to
DD/DS or Data Element Dictionary/Directory System, (DED/DS). Characteristic
definitions include those of:
Leong-Hong and Marron (1977):
The DED/DS is a software tool that provides the means for defining and describing
the characteristics of a database, as opposed to the contents of a database.
National Bureau of Standards (NBS) (1978):
The DED/DS is considered as a resource manager. It is an integrated repository
that provides data necessary for managing data. Data management includes the
planning, control, direction, and organization of data.
Allen, Loomis and Hannino (1982):
a DD/DS is an automated information system. It helps to achieve control of the data
resource, by providing an inventory of that resource. It helps to control the cost of
developing and maintaining applications. Finally it can provide for independence
of metadata across comput¬ing environments, improving resiliency to the effects of
hardware and software changes
Data has positive or negative value. The value of the data derives from the fact that
the entire enterprise depends on its availability for the proper management of all
other resources. Thus, it must be treated as a resource. The management and control
of data resources begins with a proper definition and description of data. A DD/DS
is a tool for the control and management of data as a resource.
58
Chapter 4: Software Requirement Analysis and Specification
To manage data as a resource it is basic that data about data must be clearly
specified, easily accessible and well controlled. These data are called metadata.
These are data objects, that in a data processing environment are represented in
the form of elements, records, files or databases. Metadata is not user data, but
identifies, defines and describes the characteristics of the latter. It describes the data
resources of an organization. A DD/DS contains two types of metadata: Dictionary
and Directory metadata. Dictionary metadata describes the data, and defines their
meaning and structure. Directory metadata describes where the data is stored, and
how internally represented and accessed.
A collection of related metadata comprises the metadata database. It consists of
a database that contains descriptive and definitional information about the user
database. It has basically the same characteristics of a user database. To achieve
the goals of managing data as a resource it requires proper management. That is,
planning for the design, implementation, maintenance, utilization and control.
This implies that established lines of responsibility and authority; formal rules and
detailed procedures to guide metadata- related activities; common procedures for
collection, update, and maintenance; and common procedures for access control
to the metadata must be developed. The DD/DS is the basic tool for managing the
metadata database.
The DD/DS is divided into three categories, based on the scope of control exercised
through metadata management: Active, Potentially Active and Passive. A DD/DS
is said to be active with respect to a program or process if that program or process
is fully dependent on the DD/DS for its metadata. A DD/DS is said to be passive
if it does not generate metadata and does not have control over where and how a
user or processing component obtains the required metadata. A potentially active
DD/DS provides the capability of producing the metadata for a given program or
process. A potentially active DD/DS can be extended to active through supportive
administrative procedures. Many of the currently commercially available DD/DSs
are of this type. In practice, the concept of active/passive DD/DS refers to interfaces
that it provides to other software packages. A DD/DS with active interfaces can
better serve the goals of managing data as a resource.
4.4.3 HIPO Chart
Hierarchy-Input-Process-Output (HIPO)
Hierarchy-Input-Process-Output (HIPO) is a documentation technique developed
by IBM and used in a number of different situations. It is useful for design
documentation as well as stating requirements and specifications before beginning
59
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
60
Chapter 4: Software Requirement Analysis and Specification
61
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
under Update Inventory means that the program is repeated many (1 or more) times.
The digit 1 in parentheses under Get Transaction (and the next three processes)
means the process is performed once. The (0, 1) under Write Reorder means the
process is repeated 0 or 1 times, depending on a run-time condition. (Stock may or
may not be reordered as a result of any given transaction.) (Figure 4.7)
Data flow into and out from every process. The process inputs and outputs are
identified to the right of the in-out diagram. For example, the Get Transaction
process reads an Invoice and passes it to a subsequent process. The last column
is a list of the program’s primary input and output data structures. Note how the
brackets indicate the hierarchical levels.
The aims of the requirements elicitation process are to understand the work that
Stakeholders do and how they might use a new system to help support that work.
During requirements elicitation, software engineers work with stakeholders to
find out about the application domain, work activities, the services and system
features that stakeholders want, the required performance of the system, hardware
constraints, and so on. Eliciting and understanding requirements from system
stakeholders is a difficult process for several reasons:
62
Chapter 4: Software Requirement Analysis and Specification
1. Stakeholders often don’t know what they want from a computer system
except in the most general terms; they may find it difficult to articulate what
they want the system to do; they may make unrealistic demands because they
don’t know what is and isn’t feasible.
2. Stakeholders in a system naturally express requirements in their own terms
and with implicit knowledge of their own work. Requirements engineers,
without experience in the customer’s domain, may not understand these
requirements.
3. Different stakeholders, with diverse requirements, may express their
requirements in different ways. Requirements engineers have to discover all
potential sources of requirements and discover commonalities and conflict.
4. Political factors may influence the requirements of a system. Managers
may demand specific system requirements because these will allow them to
increase their influence in the organization.
5. The economic and business environment in which the analysis takes place is
dynamic. It inevitably changes during the analysis process. The importance
of particular requirements may change. New requirements may emerge from
new stakeholders who were not originally consulted.
4.5.1 Interviewing
Formal or informal interviews with system stakeholders are part of most requirements
Engineering processes. In these interviews, the requirements engineering team puts
questions to stakeholders about the system that they currently use and the system to
be developed. Requirements are derived from the answers to these questions.
Interviews may be of two types:
63
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Interviews are good for getting an overall understanding of what stakeholders do,
how they might interact with the new system, and the difficulties that they face
with current systems. People like talking about their work, and so they are usually
happy to get involved in interviews. However, unless you have a system prototype
to demonstrate, you should not expect stakeholders to suggest specific and detailed
requirements. Everyone finds it difficult to visualize what a system might be like.
You need to analyze the information collected and to generate the requirements
from this.
Eliciting domain knowledge through interviews can be difficult, for two reasons:
64
Chapter 4: Software Requirement Analysis and Specification
Information from interviews is used along with other information about the system
from documentation describing business processes or existing systems, user
observations, and developer experience. Sometimes, apart from the information
in the system documents, the interview information may be the only source of
information about the system requirements. However, interviewing on its own is
liable to miss essential information, and so it should be used in conjunction with
other requirements elicitation techniques.
4.5.2 Questionnaire
Interviews – Start Up Questions
• Context-free questions to narrow the scope a bit (Weinberg)
• Identify customers, goals, and benefits
• Who is (really) behind the request for the system?
• Who will use the system? Willingly?
• Are there several types of users?
• What is the potential economic benefit from a successful solution?
• Is a (pre-existing) solution available from another source?
• When do you need it by?
• Can you prioritize your needs?
• What are your constraints?
• Time
• Budget
• Resources (human or otherwise)
• Expected milestones (deliverables and dates)?
• Try to characterize the problem and its solution
• What would be a “good” solution to the problem?
• What problems is the system trying to address?
• In what environment will the system be used?
• Any special performance issues?
• Other special constraints?
• What is (un)likely to change?
• Future evolution?
65
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
66
Chapter 4: Software Requirement Analysis and Specification
Brainstorming – Objectives
• Hear ideas from everyone, especially unconventional ideas
• Keep the tone informal and non-judgemental
• Keep the number of participants “reasonable“ – if too many, consider a
“playoff “-type filtering and invite back the most creative to multiple sessions
• Encourage creativity
• Choose good, provocative project name.
• Choose good, provocative problem statement
• Get a room without distractions, but with good acoustics, whiteboards,
coloured pens, provide coffee/donuts/pizza/beer
• Provide appropriate props/mock-ups
67
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Brainstorming – Roles
• Scribe
• Write down all ideas (may also contribute)
• May ask clarifying questions during first phase but without criticizing
• Moderator/Leader
• Cannot be the scribe
• Two schools of thought: traffic cop or agent provocateur
• Traffic cop – enforces “rules of order”, but does not throw his/her weight
around otherwise
• Agent provocateur – traffic cop plus more of a leadership role, comes prepared
with wild ideas and throws them out as discussion wanes
• May also explicitly look for variations and combinations of other
suggestions
Brainstorming – Participants
• Virtually any stakeholder, e.g.
• Developers
• Domain experts
• End-users
• Clients
• “Ideas-people” – a company may have a special team of people
• Chair or participate in brainstorming sessions
• Not necessarily further involved with the project
Brainstorming – The Storm
• Goal is to generate as many ideas as possible
• Quantity, not quality, is the goal at this stage
• Look to combine or vary ideas already suggested
• No criticism or debate is permitted – do not want to inhibit participants
• Participants understand nothing they say will be held against them later on
• Scribe writes down all ideas where everyone can see
68
Chapter 4: Software Requirement Analysis and Specification
• Wild is good
• Feel free to be gloriously wrong
• Participants should NOT censor themselves or take too long to consider
whether an idea is practical or not – let you go!
Brainstorming – The Calm
• Go over the list of ideas and explain them more clearly
• Categorize into “maybe” and “no” by pre-agreed consensus method
• Informal consensus
• 50% + 1 vote vs. “clear majority”
• Does anyone have veto power?
• Be careful about time and people
• Meetings (especially if creative or technical in nature) tend to lose focus after
90 to 120 minutes – take breaks or reconvene later
• Be careful not to offend participants
• Review, consolidate, combine, clarify and improve.
• Rank the list by priority somehow
• Choose the winning idea(s)
Brainstorming – Tool Support
• With many good ideas, some outrageous and even farfetched, brainstorming
can be really fun!
• Creates a great environment that stimulates people and motivates them to
perform well!
• Can be done by email, but a good moderator/leader is needed to
• Prevent flamers to come into play
• Prevent race conditions due to the asynchronous communication medium
• Be careful not to go into too much detail
• Collaboration tools are also possible
• TWiki and many other more appropriate tools such as BrainStorm and
IdeaFisher
69
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
70
Chapter 4: Software Requirement Analysis and Specification
Setup consultation allows two or more doctors, working in different offices, to view
the same patient record at the same time. One doctor initiates the consultation by
choosing the people involved from a dropdown menu of doctors who are online.
The patient record is then displayed on their screens, but only the initiating doctor
can edit the record. In addition, a text chat window is created to help coordinate
actions. It is assumed that a phone call for voice communication can be separately
arranged (Figure 4.8).
The UML is a standard for object-oriented modeling, so use cases and use case
based elicitation are used in the requirements engineering process. However, my
experience with use cases is that they are too fine-grained to be useful in discussing
requirements. Stakeholders don’t understand the term use case; they don’t find
the graphical model to be useful, and they are often not interested in a detailed
description of each and every system interaction. Consequently, I find use cases to
be more helpful in systems design than in requirements engineering. I discuss use
cases further in Chapter 5, which shows how they are used alongside other system
models to document a system design.
Some people think that each use case is a single, low-level interaction scenario.
Others, such as Stevens and Pooley (Stevens and Pooley 2006), suggest that each
use case includes a set of related, low-level scenarios. Each of these scenarios is
a single thread through the use case. Therefore, there would be a scenario for the
normal interaction plus scenarios for each possible exception. In practice, you can
use them in either way.
71
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
4.6 Summary
• Requirements for a software system set out what the system should do and
define constraints on its operation and implementation
• Functional requirements are statements of the services that the system must
provide or are descriptions of how some computations must be carried out.
vvv
72
UNIT 3 Chapter 5: Software Requirement Specification
5
SOFTWARE REQUIREMENT
SPECIFICATION
Unit Structure
5.0 Introduction
5.1 Purpose
5.2 Specific Requirements
5.2.1 External Interface Requirements
5.2.2 Functional Requirements
5.2.3 Detailed Non-Functional Requirements
5.3 Software Project Estimation
5.3.1 Lines of Code (LOC)
5.3.2 Number of entities in ER diagram
5.3.3. Total number of processes in detailed data flow diagram
5.3.4 Function Point Analysis
5.4 COCOMO Model
5.4.1 Types of COCOMO model
5.4.2 Numerical
5.4.3 Advantages and Disadvantages of COCOMO Model
5.5 COCOMO II Model
5.5.1 Sub-models in COCOMO II
5.6 COMPARISION of COCOMO and COCZOMO-II
5.7 Earned Value Management
5.8 Variance Analysis
5.9 Summary
5.10 Questions
5.11 Reference Books
73
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
5.0 Introduction
5.1 Purpose
An SRS forms the basis of an organization’s entire project. It sets out the framework
that all the development teams will follow. It provides critical information to all the
teams, including development, operations, quality assurance QA and maintenance,
ensuring the teams are in agreement.
Using the SRS helps an enterprise confirm that the requirements are fulfilled and
helps business leaders make decisions about the lifecycle of their product, such as
when to retire a feature.
In addition, writing an SRS can help developers reduce the time and effort necessary
to meet their goals as well as save money on the cost of development.
74
Chapter 5: Software Requirement Specification
75
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
● Communicate
Use Case Name Communicate
XRef Section 2.2.2, Submit Article; Section 2.2.3, Submit Review
● Add Author
Use Case Name Add Author
XRef Section 2.2.4, Update Author
SDD, Section 7.3
Trigger The Editor selects to add a new author to the database.
Precondition The Editor has accessed the Article Manager main screen.
Basic Path The system presents a blank grid to enter the author information.
The Editor enters the information and submits the form.
The system checks that the name and email address fields are not
blank and updates the database.
Alternative Paths If in step 2, either field is blank, the Editor is instructed to add an
entry. No validation for correctness is made.
Postcondition The Author has been added to the database.
Exception Paths The Editor may abandon the operation at any time.
Other The author information includes the name mailing address and
email address.
● Add Reviewer
Use Case Name Add Reviewer
XRef Section 2.2.4, Update Reviewer
SDD, Section 7.4
76
Chapter 5: Software Requirement Specification
● Update Person
Use Case Name Update Person
XRef Sec 2.2.4 Update Author; Sec 2.2.4 Update Reviewer
SDD, Section 7.5
Trigger The Editor selects to update an author or reviewer and the person
is already in the database.
Precondition The Editor has accessed the Article Manager main screen.
Basic Path The Editor selects Author or Reviewer.
The system creates and presents an alphabetical list of people in
the category.
The Editor selects a person to update.
The system presents the database information in grid form for
modification.
The Editor updates the information and submits the form.
The system checks that required fields are not blank.
Alternative Paths In step 5, if any required field is blank, the Editor is instructed to
add an entry. No validation for correctness is made.
Postcondition The database has been updated.
77
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Exception Paths If the person is not already in the database, the use case is aban-
doned. In addition, the Editor may abandon the operation at any
time.
Other This use case is not used when one of the other use cases is more
appropriate, such as to add an article or a reviewer for an article.
● Enter Communication
Use Case Name Enter Communication
XRef Section 2.2.4, Receive Article; Section 2.2.4, Receive Review
SDD, Section 7.7
Trigger The Editor selects to add a document to the system.
Precondition The Editor has accessed the Article Manager main screen and has
the file of the item to be entered available.
78
Chapter 5: Software Requirement Specification
Basic Path The Editor selects the article using the 3.2.6, Update Article Status
use case.
The Editor attaches the file to the grid presented and updates the
respective information about the article.
When the Editor updates the article status to indicate that a review
is returned, the respective entry in the Reviewer table is updated.
Alternative Paths None
Postcondition The article entry is updated in the database.
Exception Paths The Editor may abandon the operation at any time.
Other This use case extends 3.2.6, Update Article Status
● Assign Reviewer
Use Case Name Assign Reviewer
XRef Section 2.2.4, Assign Reviewer
SDD, Section 7.8
Trigger The Editor selects to assign a reviewer to an article.
Precondition The Editor has accessed the Article Manager main screen and the
article is already in the database. .
Basic Path The Editor selects the article using the 3.2.6, Update Article Status
use case.
The system presents an alphabetical list of reviewers with their
information.
The Editor selects a reviewer for the article.
The system updates the article database entry and emails the re-
viewer with the standard message and attaches the text of the arti-
cle without author information.
The Editor has the option of repeating this use case from step 2.
Alternative Paths None.
Postcondition At least one reviewer has been added to the article information and
the appropriate communication has been sent.
Exception Paths The Editor may abandon the operation at any time.
Other This use case extends 3.2.6, Update Article Status. The Editor,
prior to implementation of this use case, will provide the message
text.
79
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
● Check Status
Use Case Name Check Status
XRef Section 2.2.4, Check Status
SDD, Section 7.9
Trigger The Editor has selected to check status of all active articles.
Precondition The Editor has accessed the Article Manager main screen.
Basic Path The system creates and presents a list of all active articles orga-
nized by their status.
The Editor may request to see the full information about an article.
Alternative Paths None.
Postcondition The requested information has been displayed.
Exception Paths The Editor may abandon the operation at any time.
Other The editor may provide an enhanced list of status later. At present,
the following categories must be provided:
1. Received but no further action taken
Reviewers have been assigned but not all reviews are returned
(include dates that reviewers were assigned and order by this cri-
terion).
Reviews returned but no further action taken.
Recommendations for revision sent to Author but no response as
of yet.
Author has revised article but no action has been taken.
Article has been accepted and copyright form has been sent.
Copyright form has been returned but article is not yet published.
A published article is automatically removed from the active arti-
cle list.
● Send Communication
Use Case Name Send Communication
XRef Section 2.2.4, Send Response; Section 2.2.4, Send Copyright
SDD, Section 7.10
Trigger The editor selects to send a communication to an author.
Precondition The Editor has accessed the Article Manager main screen.
80
Chapter 5: Software Requirement Specification
● Publish Article
Use Case Name Publish Article
XRef Section 2.2.4, Publish Article
SDD, Section 7.11
Trigger The Editor selects to transfer an approved article to the Online
Journal.
Precondition The Editor has accessed the Article Manager main screen.
Basic Path The system creates and presents an alphabetical list of the active
articles that are flagged as having their copyright form returned.
The Editor selects an article to publish.
The system accesses the Online Database and transfers the article
and its accompanying information to the Online Journal database.
The article is removed from the active article database.
Alternative Paths None.
Postcondition The article is properly transferred.
Exception Paths The Editor may abandon the operation at any time.
Other Find out from the Editor to see if the article information should be
archived somewhere.
● Remove Article
Use Case Name Remove Article
XRef Section 2.2.4, Remove Article
SDD, Section 7.12
81
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Trigger The Editor selects to remove an article from the active article
database.
Precondition The Editor has accessed the Article Manager main screen.
Basic Path The system provides an alphabetized list of all active articles.
The editor selects an article.
The system displays the information about the article and re-
quires that the Editor confirm the deletion.
The Editor confirms the deletion.
Alternative None.
Paths
Postcondition The article is removed from the database.
Exception Paths The Editor may abandon the operation at any time.
Other Find out from the Editor to see if the article and its informa-
tion information should be archived somewhere.
The logical structure of the data to be stored in the internal Article Manager
database is given below (Figure 5.1).
82
Chapter 5: Software Requirement Specification
83
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
The Logical Structure of the data to be stored in the Online Journal database on the
server is as follows:
Published Article Entity
Data Item Type Description Comment
Name Text Name of Article
Author Text Name of one Author May be several
Abstract Text Abstract of article Used for keyword search
Content Text Body of article
Category Text Area of content May be several
Security
The server on which the Online Journal resides will have its own security to prevent
unauthorized write/delete access. There is no restriction on read access. The use of
email by an Author or Reviewer is on the client systems and thus is external to the
system.
84
Chapter 5: Software Requirement Specification
The PC on which the Article Manager resides will have its own security. Only the
Editor will have physical access to the machine and the program on it. There is no
special protection built into this system other than to provide the editor with write
access to the Online Journal to publish an article.
85
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Disadvantages:
• Just like FPA, it is less used in cost estimation model. Hence, it must
be converted to LOC.
5.3.3. Total number of processes in detailed data flow diagram
Data Flow Diagram (DFD) represents the functional view of a software. The
model depicts the main processes/functions involved in software and flow of data
between them. Utilization of number of functions in DFD to predict software
size. Already existing processes of similar type are studied and used to estimate
the size of the process. Sum of the estimated size of each process gives the final
estimated size.
Advantages:
86
Chapter 5: Software Requirement Specification
87
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Advantages:
• Many cost estimation models like COCOMO uses LOC and hence
FPC must be converted to LOC.
• Organic projects - This suits small software team since it has a generally stable
development environment. The problem is well understood and has been
solved in the past. (In short, “small” teams with “good” experience working
with “less than rigid” requirements.)
88
Chapter 5: Software Requirement Specification
89
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
90
Chapter 5: Software Requirement Specification
Example:
Suppose the project was estimated to be 300 KDLOC, calculate the effort,
development time, and time of each of the 3 modes
Here, The estimated effort and scheduled time for the project are given by the
relation:
Where,
• E = Total effort required for the project in Man-Months (MM).
• D = Total time required for project development in Months (M).
• KLOC = the size of the code for the project in Kilo lines of code.
• a, b, c, d = The constant parameters for a software project.
PROJECT TYPE a b c d
Organic 2.4 1.05 2.5 0.38
Semidetached 3 1.12 2.5 0.35
Embedded 3.6 1.2 2.5 0.32
Solution:
Given estimated size of project is: 300 KLOC
● For Organic
Effort (E) = a*(KLOC)b = 2.4*(300)1.05 = 957.61 MM
Scheduled Time (D) = c*(E)d = 2.5*(957.61)0.38 = 33.95 Months(M)
Avg. Resource Size = E/D = 957.61/33.95 = 28.21 Mans
Productivity of Software = KLOC/E = 300/957.61 = 0.3132 KLOC/MM =
313 LOC/MM
● For Semidetached
Effort (E) = a*(KLOC)b = 3.0*(300)1.12 = 1784.42 MM
Scheduled Time (D) = c*(E)d = 2.5*(1784.42)0.35 = 34.35 Months(M)
91
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
● For Embedded
The estimated effort and scheduled time are given by the relationship:
92
Chapter 5: Software Requirement Specification
Personnel Parameter
Analysis Capability 1.46 1.19 0.86 0.71
Application Experience 1.29 1.13 0.91 0.82
Software Engineer Capa-
1.42 1.17 1 0.86 0.7
bility
Virtual Machine Experience 1.21 1.1 0.9 NA
Programming Experience 1.14 1.07 0.95 NA
Project Parameter
Software Engineering
1.24 1.1 0.91 0.82
Methods
1
Use of Software Tools 1.24 1.1 0.91 0.83
Development Time 1.23 1.08 1.04 1.1
Solution:
Given the estimated size of the project is: 300 KLOC
Developer having highly application experience: 0.82 (as per above table)
Developer having very low experience in programming: 1.14(as per above table)
EAF = 0.82*1.14 = 0.9348
Effort (E) = a*(KLOC)b *EAF = 3.0*(300)1.12 *0.9348 = 1668.07 MM
Scheduled Time (D) = c*(E)d = 2.5*(1668.07)0.35 = 33.55 Months(M)
In detailed cocomo, the whole software is divided into different modules and
then we apply COCOMO in different modules to estimate effort and then sum
the effort.
The Six phases of detailed COCOMO are:
93
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Advantages
• Easy to estimate the total cost of the project.
• Easy to implement with various factors.
• Provide ideas about historical projects.
Disadvantages
• It ignores requirements, customer skills, and hardware issues.
• It limits the accuracy of the software costs.
• It mostly depends on time factors.
b. Early design model: Used when requirements are available but design has
not yet started.
d. Post architecture model: Used once the system architecture has been
designed and more information about the system is available.
94
Chapter 5: Software Requirement Specification
COCOMO II Estimation
System Integration
2. Intermediate Sector:
95
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
3. Infrastructure Sector:
96
Chapter 5: Software Requirement Specification
COCOMO I COCOMO II
COCOMO I is convenient in the water- COCOMO II is helpful in non-sequential,
fall models of the software development rapid development and reuse models of
cycle. software.
Effort equation’s exponent is determined Effort equation’s exponent is determined
by 3 development modes. by 5 scale factors.
This model is based upon the linear reuse This model is based upon the non-linear
formula. reuse formula
Development begins with the require-
It follows a spiral type of development.
ments assigned to the software.
97
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Planned value is the budgeted cost for work scheduled (BCWS). PV varies
based on the scope of work in consideration and the point where you’re at in
the overall schedule.
PV = Total project cost * % of planned work
For example, let’s say, the PV for your 5-month project is $25,000:
PV for the complete project = $25,000
PV at 2 months = $25,000 * 40% = $10,000
You can also calculate PV for a time period,
say, month 2 to month 4 = $25,000 * 60% = $15,000.
d. Actual Costs (AC)
Actual costs, also referred to as actual cost of work performed (ACWP), is
relatively straightforward. If you are using a robust project cost management
software, tracking actual costs should not be a challenge. However, it’s
important to remember to include several hidden costs—material, resource,
hardware, software licenses, overheads, etc.
You can look at AC cumulatively, accounting for all the activities done from
the beginning of the project to date or over a specific time period.
In our example, let’s assume, AC at the end of 2 months = $15,000
e. Earned Value (EV)
Now, this is where EVM gets interesting. You’ve made a plan to finish some
amount of work and budgeted accordingly. But, from experience, you know
that there is bound to be some discrepancy from your estimate. At the end of
2 months, you may have planned to complete 40% of your work, but let’s say
you managed to just finish 30%.
The question, then, is, what’s the budgeted cost for this work? EV, also called
as budgeted cost for work performed (BCWP), gives you the answer.
In our example:
EV = Total project cost * % of actual work = $25,000 * 30% = $7,500
98
Chapter 5: Software Requirement Specification
Planned value, actual cost, and earned value numbers are fundamental to variance
calculations. At this point, the project manager wants to know how far off we
are from the project baseline. This can be determined through schedule and cost
variance.
SV = EV – PV
This implies that we are 25% behind schedule. It’s interesting to note that
we aim to understand schedule, a time component, from the perspective of
costs. To arrive at these costs though, we needed to know the scope of work
planned and completed. This is how the three pillars—scope, time and cost
come together in EVM.
CV = EV – AC
In our example, CV at 2 months = $7,500 – $15,000 = -$7500
CV% = (CV/EV) *100 = (-$7,500/$7,500) *100 = -100%
Again, this is an instance of how scope, time and cost come together to give
you a clear picture of where you stand at the moment in your project.
99
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
5.9 Summary
This chapter based on requirement analysis which includes data requirement, data
analysis, software requirements, system user requirements, project estimation with
case study. Detailed COCOMO and COCOMO II model as well as difference
between these two models are explained with numerical.
5.10 Questions
vvv
100
UNIT 4 Chapter 6: Software Project Planning
6
SOFTWARE PROJECT PLANNING
Unit Structure
6.0 Objective
6.1 Introduction
6.2 The Business Case
6.2.1 What Is A Business Case?
6.2.2 Developing TheBusiness Case
6.2.3 Process For Developing A Business Case
6.3 Project Selection And Approval
6.3.1 The IT Project Selection Process
6.3.3 Balanced Scorecard Approach
6.3.2 The Project Selection Decision
6.4 The Project Charter
6.4.1 What Should Be In A Project Charter
6.5 Project Scope Definition
6.5.1 Project- Oriented Scope
6.5.2 Product – Oriented Scope
6.6 Project Scope Verification
6.7 Scope Change Control
6.8 Work Breakdown Structure
6.9 Summary
101
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
6.0 Objective
6.1 Introduction
A business case is a deliverable that documents the project’s goal, as well as several
alternative or options. The feasibility, costs, benefits, and risks for each alternative
are analyzed and compared, and a recommendation to approve and fund one of
the alternatives is made to senior management. The first phase of the IT project
methodology, as in all of phases, ends with a review of the project by the client or
sponsor.
The project charter and detailed project plan make up the project’s tactical plan.
The project charter defines the project infrastructure and identifies the project
manager, the project team, the stakeholders, and the roles each will play within
the project. In addition, the project charter formalizes the project’s MOV, scope,
supporting processes and controls, required resources, risks, and assumptions. This
project infrastructure provides the foundation for developing a detailed project plan
that answers four major questions. How much will the project cost? When will the
project be finished? Who will be responsible for doing the work? And, what will we
ultimately achieve at the end of the project?
The term scope is used to define the work boundaries and deliverables of the project
so what needs to get done, gets done-and only what needs to get done, gets done.
Therefore, it is important to define not only what is part of the project is considered
to be outside of the project’s scope.
102
Chapter 6: Software Project Planning
103
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
largely on the ability to use compelling facts and logic in order to influence an
individual or group with decision - making authority.
A good IT business case should be
(1) through in detailing all possible impacts, costs, and benefits;
(2) clear and logical in comparing the costs/ benefits impact of each alternative;
(3) objective though including all pertinent information; and
(4) systematic in terms of summarizing the findings.
6.2.2 Developing the Business Case
The purpose of a business case is to show how an IT solution can create business
value. For example, an IT project may be undertaken to:
• Reduce costs
• Create a new product or service
• Improve customer service
• Improve communication
• Improve decision making
• Create or strengthen relationships with suppliers, customers, or partners
• Improve processes
• Improve reporting capabilities
• Support new legal requirements
6.2.3 Process For Developing A Business Case
Step 1: Select the Core Team
The core team should include managers, business specialists, and users who
understand the requirements to be met, as well as IT specialists who understand the
opportunities, limitations, and risks associated with IT. There are several advantages
for having a core team develop the business case
Credibility - A team made up of individuals from various organizational areas or
departments can provide access to critical expertise and information that may not
be readily accessible to others outside that particular area.
Alignment with organizational goals – Higher level managers can help connect
the business case with organization’s long term strategic plan and mission. This
alignment may be beneficial in understanding and presenting how the expected
business value of the IT project will support the overall goals and mission of the
organization.
104
Chapter 6: Software Project Planning
Access to the real costs – Core members with certain expertise or access to
important information can help build more realistic estimates in areas such as
salaries, overhead, accounting and reporting practices, training requirements, union
rules and regulations, and hiring practices.
The core team’s objective should be to define the problem or opportunity and then
identify several alternatives that will provide direct and measurable value to the
organization. To provide real value to an organization, however, IT projects must
align with and support the organization‘s goals, mission, and objectives.
• Be agreed on – A clear and agreed on MOV sets expectations for the project
stakeholders. It is important that all project stakeholders understand and agree
to the project’s MOV.
105
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
106
Chapter 6: Software Project Planning
107
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
The objective of the business case is to obtain approval and funding for a proposed
alternative. However, a proposed project may have to compete against several
others.
The criteria for selecting a project portfolio, a set of projects that an organization
may fund, are very similar to the analysis and subsequent selection of the proposed
project alternatives. An IT project portfolio mainly composed of projects with
low risk or those that do not attempt to take advantage of new technology may
lead to stagnation. The organization may not move ahead strategically and the
IT employees may fail to grow professionally due to lack of challenge. On other
hand, an organization that focuses too heavily on risky projects employing cutting-
edge technology may end up in a precarious position if the IT projects experience
serious problems and failures. Learning from mistakes can be useful, unless the
same mistakes are repeated over and over. Thus , an organization should attempt
to balance its IT project portfolio with projects that have varying degrees of risk
,cutting -edge technologies and structure.
6.3.1 The IT Project Selection Process
The selection process determines which projects will be funded in a given period
. This period can be a quarter, year, or a time frame used by organization. In order
to weed out projects that have little chance of being approved , many organizations
use an initial screening process in which business cases submitted for review are
compared with a set of organizational standards that outline minimum requirements.
Projects that meet the minimum requirements are then forwarded to a decision-
making committee of senior managers who have the authority to approve and
provide the resources needed to support the project.
Projects selected should then be assigned to a project manager who selects the
project team and then develops a project charter and detailed plan.
6.3.2 The Project Selection Decision
Even though each project proposal should be evaluated in terms of its value to
the organization, it is important to reiterate that projects should not be undertaken
for technology’s sake. The decision to approve a project requires a number of
conditions be met:
• The project must map directly to the organization’s strategies and goals.
108
Chapter 6: Software Project Planning
• The project must provide measurable organizational value that can be verified
at the completion of the project.
The project charter and baseline project plan provide governance framework for
carrying out or executing the IT project.
It serves as an agreement or contract between the sponsor and project team-
documenting the project’s MOV ,defining its infrastructure ,summarizing the project
plan details ,defining roles and responsibilities ,showing project commitments, and
explaining project control mechanisms.
(I) Documenting the project’s MOV:- Although the project’s MOV was
included in the business case, it is important that MOV be clearly defined and
agreed upon before developing or executing the project plan.
109
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
(II) Defining the projects infrastructure :-The project charter defines all of the
people,resources,technology, methods, project management processes, and
knowledge areas that are required to support the project. In short ,the project
charter will detail everything needed to carry out the project.
(III) Summarizing the details of the project plan :- The project charter should
summarize the scope, schedule, budget, quality objectives, deliverables ,and
milestones of the project.
(IV) Defining roles and responsibilities :-The project charter should not only
identify the project sponsor, project manager, and project team, but also
when and how they will be involved throughout the project life cycle. In
addition ,the project charter should specify the line of reporting and who will
be responsible for specific decisions.
110
Chapter 6: Software Project Planning
111
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
• A communication plan that outlines how the project’s status or progress will
be reported to various stakeholders. This plan also includes a process for
reporting and resolving significant issues or problems as they arise.
• A scope management plan that describes how changes to the project’s scope
will be submitted logged and reviewed.
• A quality management plans that details how quality planning, assurance, and
control will be supported throughout project life cycle.
112
Chapter 6: Software Project Planning
• A change management and implementation plan that will specify how the
project’s product will be integrated into the organizational environment.
Developing a scope statement is a useful first step for defining the scope of project
and setting a boundary. A project’s scope, however, should also be defined in
terms of the deliverables that the team must provide. These deliverables can be
divided into project –oriented deliverables and product oriented deliverables. This
separation gives the team a clearer definition of the work to be accomplished and
improves the likelihood of accurately assigning resources and estimating the time
and cost of completing the work.
6.5.1 Project- Oriented Scope
Project – oriented deliverables, or scope, support the project management and
IT development processes that are defined in the information technology project
methodology.
Project scope includes such things as the business case, project charter, and project
plan and defines the work products of various ITPM phases.
Project – oriented deliverables also include specific deliverables such as a
current systems study, requirements definition, and the documented design of the
information system.
Project – oriented deliverables requires time and resources and therefore, must be
part of the overall project schedule and budget. Their role is to ensure that project
processes are being completed so that the project’s product achieves the project’s
MOV and objectives. Project- oriented deliverables also provide tangible evidence
of the project’s progress.
113
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
The project’s scope must be verified and formally accepted by the project sponsor
and other appropriate stakeholders. It is scope management process that provides a
mechanism for ensuring that the project deliverables are completed.
• MOV – Is project’s MOV clearly defined and agreed upon? Failure to define
and agree upon the MOV could result in scope changes later in project, which
can lead to added work impacting the project’s schedule and budget.
• Quality Standards - Are controls in place to ensure that the work was not
only completed, but completed to meet specific standards?
• Review and acceptance- Are both sides clear in their expectations? The
project’s scope must be reviewed and accepted by the project stakeholders.
The project sponsor must formally accept the boundary, product to be
produced, and the project –related deliverables. The project team must be
clear on what it must deliver. In both cases, expectations must be realistic and
agreed upon.
114
Chapter 6: Software Project Planning
It is concerned with managing actual changes to the project’s scope as when they
occur, to ensure that any changes to the project‘s scope will be beneficial.
Scope grove- It describes a project team’s inability to define the project’s scope.
This situation is common early in a project when the project team and sponsor have
trouble understanding what the project is supposed to accomplish. Scope grove
can be minimized by having a clearly defined MOV and following or applying the
processes, concepts, and tools.
Scope creep– It is adding features to the system once the scope of the project
has been approved.It does not always come from the project sponsor side. The
project team itself may come across interesting or novel ideas as the project work
progresses. It must be identified and controlled throughout the project because it
lengthen the project schedule and, in turn, lead to cost overruns.
Scope leap- It can occur as a result of changes in environment , the business ,and
the competitive makeup of the industry .Scope leap entails changing the MOV and
therefore, requires that the organization rethink the value of the current project. If
this change is critical, the organization may be better off pulling the plug on the
current project and starting over by conceptualizing and initiating a new project.
115
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
-6.0 Testing
+6.1 Test Plan
-6.2 Test results report
6.2.1 Review test plan with client
6.2.2 Carry out test plan
6.2.3 Analyze results
6.2.4 Prepare test results report and presentation
6.2.5 Present test results to client
6.2.6 Address any software issues or problems
6.2.7 Milestone: Client signs off on test results
116
Chapter 6: Software Project Planning
Developing the WBS Should Involve the People Who Will Be Doing the Work:-
One way to ensure that the WBS has the appropriate level of detail to ensure that
the people who do the work are involved in its development. A person who has
experience and expertise in a particular area probably has a better feel for what
activities need to be performed in order to produce a particular project deliverable.
Learning Cycles and Lessons Learned can Support the Development of a
WBS:-
By using the concept of learning cycles, the project team can focus on what they
know (the facts) ,what they think they know (assumption) , and what they need to
find out (research) in order to develop a more useful WBS. Lessons learned from
previous projects can be helpful in ensuring that the WBS and subsequent project
plan are realistic and complete.
6.9 Summary
The business case is defines the problem or opportunity, MOV, feasibility, costs
, and benefits of several alternatives that an organization may choose in order to
achieve its goals and strategies. Based on the analysis of the alternatives identified
, a recommendation is made to approve and fund a specific project.
The business case is formalized in a report to senior management who may review
several proposed projects. The decision to fund a particular project depends on
resources available and the value of the project to the organization. The balanced
scorecard approach focuses on four perspectives – financial, customer, internal
processes and innovation and learning . An organization should make the project
selection decision based on a diverse set of measures and in terms of how well the
project supports the goal and strategies of the organization.
The project charter documents the project’s MOV and describes the infrastructure
needed to support the project. In addition, the project charter should provide a
consolidated source of information about the project and reduce confusion and
misunderstanding. The project charter and project plan should be developed
together – the details of project plan need to be summarized in the project charter,
and the infrastructure outlined in the project charter will influence the estimates
used to develop the project plan.
Product-oriented deliverables focus on the high level features and functionality
of the application system – the project’s product. On the other hand, project-
oriented deliverables focus on the project’s processes as defined in the IT project
methodology.
117
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Scope grope is a common occurrence in the early stages of the project. Often the
project team struggle to define what the project is all about and what work must be
done.
Scope creep, on the other hand, is a common occurrence in many projects. It entails
adding additional features or functions to the scope once the scope has been set
and approved. This phenomenon can increase the schedule and budget, causing the
project to miss its deadline and budget targets.
Sample Questions
1. What is a business case?
2. Why should an organization develop a business case?
3. Describe the balanced scorecard approach.
4. What is the purpose of a project charter
5. How does the project charter support the project plan?
6. What is a project’s scope?
7. Describe the scope definition process.
8. Describe the scope verification process.
9. Describe the scope change control process.
10. What is a WBS? What purpose does it serve?
Reference Books:
1. Software Engineering, 5th and 7thedition, by Roger S Pressman, McGraw Hill
publication.
2. Managing Information Technology Project 6thedition , by Kathy Schwalbe ,
Cengage Learning publication.
3. Software Engineering 3rd edition by KK Agarwal , Yogesh Singh , New Age
International publication.
4. Information Technology Project Management by Jack T Marchewka Wiley
India publication.
5. Software Engineering for students: A Programming Approach by Douglas
Bell, Pearson publication.
6. Software Engineering Project Management by Richard H. Thayer Wiley
India Publication.
vvv
118
UNIT 5 7: Project Scheduling and Procurement Management
Chapter
7
PROJECT SCHEDULING
AND PROCUREMENT
MANAGEMENT
Unit Structure
7.0 Objectives
7.1 Introduction
7.2 Overview
7.1.1 Scheduling Principals
7.1.2 Relationship between People and Effort
7.2.3 Project Effort Distribution
7.3 Scheduling
7.3.1 Tracking Project Schedules
7.3.2 Tracking Increment Progress for OO Projects
7.3.3 Webapp Project Scheduling
7.3.4 Earned Value Analysis
7.4 Project Procurement Management
7.4.1 Process of Project Procurement Management
7.4.2 Eight Steps for a Procurement Management Plan
7.5 Degree of Rigor
7.5.1 Four various degrees of rigor
7.5.2 Defining a Task Set for the Software Project
7.6 Critical Path Method (CPM)
7.6.1 Critical Path Method helps in:
7.6.2 Technique for CPM
7.6.3 Steps for CPM
7.6.4 Examples
7.7 Summary
7.8 Questions
7.9 Reference books
119
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
To arrange the manufacturing activities in such a way that the cost of production is
minimized and the goods produced are delivered on due dates is the main objective
of Project Scheduling. In order to meet the delivery dates the sequence of operations
is properly planned. To have minimum total time of production by having better
resources utilisation we use scheduling. We can also make use of this for having
maximum capacity utilization and reducing the labour cost by minimization of
idleness of machines and manpower. It also helps avoid unbalanced allocation of
work among the various departments and workstations.
7.1 Introduction
7.2 Overview
120
Chapter 7: Project Scheduling and Procurement Management
In fact, when people discuss the processes for building a schedule, they are usually
referring to the first six processes of time management:
1. Plan schedule management.
2. Define project activities.
3. Sequence activities.
4. Estimate resources.
5. Estimate durations.
6. Develop the project schedule
• Adding people to a project after it is behind schedule often causes the schedule
to slip further
• The main reasons for using more than 1 person on a project are to get the job
done more rapidly and to improve software quality.
121
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
7.3 Scheduling
• Program evaluation and review technique (PERT) and critical path method
(CPM) are quantitative techniques that allow software planners to identify
the chain of dependent tasks in the project work breakdown structure (WBS)
that determine the project duration time.
• Timeline (Gantt) charts enable software planners to determine what tasks will
be need to be conducted at a given point in time (based on estimates for effort,
start time, and duration for each task).
• Time-boxing is the practice of deciding a priori the fixed amount of time that
can be spent on each task. When the task’s time limit is exceeded, development
moves on to the next task (with the hope that a majority of the critical work
was completed before time ran out).
122
Chapter 7: Project Scheduling and Procurement Management
123
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
□ The correctness and completeness of the OOA and OOD models has
been reviewed
□ Test cases are designed and class-level tests have been conducted for
each class
□ Test cases are designed, cluster testing is completed, and classes have
been integrated
• The project is broken up into increments and the increments are refined in to
detailed schedules as each is begun (some increments may be developed in
parallel)
• Each task on the task list for each increment is adapted in one of four ways as
its detailed schedule is created
□ task is applied as is
1. The total hours to complete each project task are estimated (BCWS -
budgeted cost of work scheduled)
124
Chapter 7: Project Scheduling and Procurement Management
• It is compute the actual cost of work performed (ACWP) at any point in the
project and to compute progress indicators for both schedule and costs based
on these measures
1. Planning Process:
125
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
2. Selection Process:
3. Administration Process:
The third major step is administration, which refers to the tools and processes
used to manage relationships with vendors. The administration phase results in
the continual creation of procurement documents and spreadsheets that may drive
project changes. A centralized system of contract change monitoring and control
will be used to evaluate and determine whether potential changes to contracts are
needed.
Once the contracts are signed, the management of those contractors must be
folded into the overall management responsibilities. Contractors can have
negative impact on budgets and schedules, which can lead to a project going
off-track or worse.
It’s best to contract a change control system and have regular procurement
performance reviews, including inspections and audits to make sure the work
is going right. Performance reporting helps keep managers informed, too. A
payment system needs to be in place as well as a claims administration and a
records management system.
There are formal physical inspections, internal audits and reviews of procurement
operations in order to generate synthesized performance reports that provide real-
time feedback. The administration process is extremely important, so it’s usually
managed through supply chain or project management software.
126
Chapter 7: Project Scheduling and Procurement Management
4. Closing Process:
Just as there is a process to start the procurement, there needs one in place to
finalize it. What constitutes completed work should be detailed in the initial
agreement with the contractor, so there is no confusion of either’s part as to
when the work is done.
The closing process isn’t just about ending procurement contracts; it’s about
noting weaknesses, documenting successful processes and summarizing the
project for future needs. Some companies prefer to conduct simple audits using
performance matrices in order to grade the overall project.
Documentation is important for future projects, which may involve entirely different
teams in new locations. During the closing process, negotiations may be necessary to
resolve contract disputes. Ideally, potential issues will be noted during the administration
process in order to begin the mediation process early.
When it comes to project procurement management, there are standard features and
functions. For example, most companies prefer to use a smaller number of suppliers
with long-term relationships instead of using a group of suppliers to outbid each other
for the lowest price. Establishing and nurturing relationships with suppliers is important
because this enables various supply chain partners and shareholders to work closely
together on improvement and coordination activities.
7.4.2 Eight Steps for a Procurement Management Plan
The project manager is the project team member responsible for overseeing the
procurement management plan, but it’s not a one-person job. Since the procurements
will be project-wide, it’s important that everyone is on board with the process.
Everyone should have some involvement in approving and even managing contracts.
The procurement management plan can be broken down into these eight steps.
1. Define Terms: To begin, start by defining the procurement terms. This means
listing what you need to procure in detail: how many, what size, for how long,
etc. Then you want to know what service is provided to the project and why
this is important. Now add a date of use to each of these procurements and
who on the project team is authorized to make these purchases.
127
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
3. Identify and Mitigate Risks: Risks are inherent in every part of a project
process, and so they lie dormant in procurement until they show themselves.
It is now time to figure out what those risks might be and list them. Once a
thorough list has been collected, each must have a way to resolve them. It’s
also good to assign a team member with the task of mitigating those risks, so
they have ownership to follow through on closing them.
4. Define Costs: What are the costs involved with the project procurements?
Once those have been figured out, it is likely that a request for proposal will
be issued, with the needs outlined and requesting bids from suppliers. Be
thorough and note everything required. The suppliers will come back with
their cost for products or services.
5. Identify Constraints: It helps to try and identify any project constraints before
starting the project to avoid getting blindsided by unforeseen limitations
during execution. Once this list is complete it can be looked at throughout
the project phases. Constraints related to procurements include cost, scope,
limited resources and technical specifications.
6. Get Contract Approved: Review the bids and do a service and cost analysis.
Then have a list of who the decision makers are in the project group and pass
the bids on to them for review. This process makes sure that everyone who
needs to oversee the contract approval is involved and can provide input.
7. Make Decision Criteria: You have a workflow, but now you need criteria
by which to decide on which bid to go into contract with. Every person who
reviews the bid should have these criteria at hand to measure their response.
128
Chapter 7: Project Scheduling and Procurement Management
For a project of a particular kind the degree of rigor with which the software procedure
is applied may vary significantly. The degree of rigor is function of several project
characteristics. For an example non-business, small, critical projects can commonly
be addressed with somewhat less rigor which is large complex baseline critical
applications. It should be noted however, in which all projects must be conducted
in a manner which results in timely high quality deliverables.
5.5.1 Four various degrees of rigor
Four various degrees of rigor can be defined that are:
3. Strict: - The full process will apply for this project with a degree of discipline
which will ensure high quality. Robust documentation will be produced and
all umbrella activities will be applied.
4. Quick Reaction: Framework of process will be applied for this project but
because of an emergency condition only those tasks essential to maintaining
good quality will be applied Back-filling example for developing a complete
set of documentation conducting additional reviews will be accomplished
after the application or product is delivered to the customer.
The project manager must have to develop a systematic approach for selecting
the degree of rigor which is appropriate for a special project. To accomplish
this project adaptation criteria are describe and a task set selector value is
computed.
5.5.2 Defining a Task Set for the Software Project
Task set - collection of software engineering work tasks, milestones, and deliverables
that must be accomplished to complete a particular project.
129
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Task sets are designed to accommodate different types of projects and different
degrees of rigor.
• determine type of project
• assess the degree of rigor required
• identify adaptation criteria
Select appropriate software engineering tasks
Five Most software organizations encounter the following projects:
1. Concept development projects - initiated to explore some new business
concept or application of some new technology.
2. New application development projects - undertaken as a consequence of a
specific customer request.
3. Application enhancement projects - occur when existing software
undergoes major modifications to function, performance, or interfaces that
are observable by the end-user.
4. Application maintenance projects - correct, adapt, or extend existing
software in ways that may not be immediately obvious to the end-user.
5. Reengineering projects - undertaken with the intent of rebuilding an existing
(legacy) system in whole or in part.
Critical Path Method (CPM) is a project schedule modeling technique. Mr. Morgan
R. Walker and James E. Kelly developed this technique in the late 1950s.
Project planners use this method to develop schedules for many kinds of projects
including IT, research, and construction.
Critical Path Method is a lengthy and complex concept. Please follow each step
in this blog post and don’t move on until you understand the previous steps. If
you follow this advice and complete the blog post, you won’t have any problems
solving the questions on Critical Path Method.
A network diagram has many paths originating from one point and ending at another
point. Every path has a duration and the one with the longest duration is the critical
path.
130
Chapter 7: Project Scheduling and Procurement Management
The technique for find out the critical path in your project can be derived as follows.
Break Down the Project: List all the tasks needed to complete the project. You
can use a work breakdown structure, which is a hierarchical decomposition of the
project, which includes every deliverable.
Estimate Task Duration: Now comes the tricky part, you want to know how long
each task will take. If possible, get advice from others who have, so you can have
the most accurate estimation of the duration of the various tasks possible.
Determine Task Dependencies: If there are any task dependencies, you want to
note them, too. A task dependency is when one task cannot start until another one
has been finished. It’s a key element of good task management.
Add Milestones: What are the milestones in your project? Having milestones helps
to keep you on track, so you can make sure you’re meeting your baseline schedule.
When you have this data collected, you’re able to calculate the longest path your
planned tasks will take to reach the end of the project, as well as the earliest and
latest that each task can start and finish without impacting the project schedule.
131
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
132
Chapter 7: Project Scheduling and Procurement Management
7.6.4 Examples
1. An example of Critical Path analysis is as below (Figure 7.1).
In the above diagram, the path with longest duration is Start-D-E-F-G-End is the
critical path with duration of 17. The other 2 non-critical paths Start-A-B-C-G-
End has duration of 10 and hence has a slack or float of 7 and other non-critical
path Start-D-H-I-End has a duration of 11 and has a float of 6 days.
Critical Path once identified, the team can further explore if the duration of critical
path can be compressed if the need be. Techniques such as crashing (applying more
resources on critical path) or Fast Tracking (doing tasks in parallel) are applied.
Compressing the critical path helps in compressing the overall project duration,
thereby helping to meet the required deadline.
• Based on the network diagram below (Figure 7.2), identify the total paths,
critical path, and float for each path.
133
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
The above network diagram has five paths. The paths and their durations are as
follows:
1. Start -> A -> B -> C-> End {duration: 31 days.}
2. Start ->D -> E ->F -> End {duration: 18 days.}
3. Start -> D -> B -> C -> End {duration: 26 days.}
4. Start -> G ->H ->I -> End {duration: 13 days.}
5. Start -> G -> E ->F -> End {duration: 16 days.}
Since the duration of the first path is the longest, it is the critical path. The float on
the critical path is zero.
The float for the second path “Start ->D -> E ->F -> End” = duration of the critical
path – duration of the path “Start ->D -> E ->F -> End” = 31 – 18 = 13
Hence, the float for the second path is 13 days.
Using the same process, we can calculate the float for other paths as well.
Float for the third path = 31 – 26 = 5 days.
Float for the fourth path = 31 – 13 = 18 days.
Float for the fifth path = 31 – 16 = 15 days.
Calculate Early Start, Early Finish, Late Start, and Late Finish
We have identified the critical path and the duration of the other paths. Now it’s
time to move on to more advanced calculations: Early Start, Early Finish, Late Start
and Late Finish.
Calculating Early Start (ES) and Early Finish (EF)
To calculate the Early Start and Early Finish dates, we use the forward pass; we will
start from the beginning and proceed to the end.
The Early Start (ES) for the first activity on any path will be 1 because you cannot
start an activity before the first day of your project.
The starting point for any activity is the endpoint of the predecessor activity on the
same path (plus one).
The formula used for calculating Early Start and Early Finish dates:
• Early Start of the activity = Early Finish of predecessor activity + 1
• Early Finish of the activity = Activity duration + Early Start of activity – 1
134
Chapter 7: Project Scheduling and Procurement Management
Early Start and Early Finish Dates for the path Start -> A -> B -> C -> End
(Figure 7.3)
Figure 7.3:
Early Start of activity A = 1 (Since this is the first activity of the path)
Early Finish of activity A = ES of activity A + activity duration – 1= 1 + 10 – 1 = 10
Early Start of activity B = EF of predecessor activity + 1= 10 +1 = 11
Early Finish of activity B = ES of activity B + activity duration – 1= 11 + 12 – 1 = 22
Early Start of activity C = EF of predecessor activity + 1= 22 +1 = 23
Early Finish of activity C = ES of activity C + activity duration – 1= 23 + 9 – 1 = 31
Early Start and Early Finish Dates for the path Start -> D -> E -> F -> End
(Figure 7.4)
Figure 7.4:
135
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Early Start of activity D = 1 (Since this is the first activity of the path)
Early Finish of activity D = 1 + 5 – 1 = 5
Early Start of activity E = EF of predecessor activity + 1
Since activity E has two predecessor activities, which one will you select? The
answer is the activity with the greater Early Finish date. The Early Finish of activity
D is 5, and the Early Finish of activity G is 3 (we will calculate it later).
Therefore, we will select the Early Finish of activity D to find the Early Start of
activity E.
Early Start of activity E = EF of predecessor activity + 1= 5 + 1 = 6
Early Finish of activity E = 6 + 7 – 1 = 12
Early Start of activity F = 12 + 1 = 13
Early Finish of activity F = 13 + 6 -1 = 18
Early Start and Early Finish Dates for the path Start -> G -> H -> I -> End
(Figure 7.5)
Figure 7.5:
Early Start of activity G = 1 (Since this is the first activity of the path)
Early Finish of activity G = 1 + 3 – 1 = 3
Early Start of activity H = 3 + 1 = 4
Early Finish of activity H = 4 + 4 – 1 = 7
Early Start of activity I = 7 +1 = 8
Early Finish of activity I = 8 + 6 – 1 = 13
136
Chapter 7: Project Scheduling and Procurement Management
Calculating Late Start (LS) and Late Finish (LF) We have calculated the Early
Start and Early Finish dates of all activities. Now it is time to calculate the Late
Start and Late Finish dates.
The Late Finish date of the last activity on all paths will be the same because no
activities can continue once the project is completed.
The formula used for Late Start and Late Finish dates:
• Late Start of Activity = Late Finish of activity – activity duration + 1
• Late Finish of Activity = Late Start of successor activity – 1
To calculate the Late Start and Late Finish, we use the backward pass; i.e. we will
start from the last activity and move back towards the first activity.
Late Start and Late Finish Dates for the path Start -> A -> B -> C -> End
(Figure 7.6)
Figure 7.6:
On a critical path, the Late Start, and Late Finish dates will be the same as the Early
Start and Early Finish dates
Late Start and Late Finish Dates for the path Start -> D -> E -> F -> End
(Figure 7.7)
Figure 7.7:
137
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Late Finish of activity F = 31 (because you cannot allow any activity to pass the
project completion date)
Late Start of activity F = LF of activity F – activity duration + 1= 31 – 6 +1 = 26
Late Finish of Activity E = LS of successor activity – 1= LS of Activity F – 1= 26 – 1 = 25
Late Start of Activity E = LF of activity E – activity duration + 1= 25 – 7 + 1 = 19
Late Finish of activity D = LS of successor activity – 1
If you look at the network diagram, you will notice that activity D has two successor
activities, B and E. So, which activity would you select?
You will select the activity with the earlier (least) Late Start date. Here, the Late
Start of activity B is 11, and the Late Start of activity E is 19.
Therefore, you will select activity B, which has the earlier Late Start date.
Hence,
Late Finish of activity D = LS of activity B – 1= 11 – 1 = 10
Late Start of Activity D = LF of activity D – activity duration + 1= 10 – 5 + 1 = 6
Late Start and Late Finish Dates for the path Start -> G -> H -> I -> End
(Figure 7.8)
Figure 7.8:
Late Finish of activity I = 31 (because you cannot allow any activity to pass the
project completion date)
Late Start of activity I = 31 – 6 + 1 = 26
Late Finish of activity H = 26 – 1 = 25
Late Start of activity H = 25 – 4 + 1 = 22
138
Chapter 7: Project Scheduling and Procurement Management
Late Finish of Activity G = 19 – 1= 18 (we will choose the late start of activity E,
not activity H because the Late Start of activity E is earlier than the Late Start of
activity H).
Late Start of activity G = 18 – 3 + 1= 16
7.7 Summary
This Chapter includes scheduling principals and relationship between people and
efforts. It describes tracking of project schedule with earned value analysis. This
chapter covered the process of procurement management with some plans. After
this various Degree of rigor are listed. The main part of critical path method is
explained step by step with numerical.
7.8 Questions
• Explain Project scheduling with the relationship between people and efforts?
• State the Project Effort Distribution
• Describe the Tracking Project Schedules
• Explain the process of project procurement Management
• What is degree of rigor?
• State the Technique for CPM with example.
vvv
139
UNIT 5
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
8
PROJECT PROCUREMENT
MANAGEMENT
Unit Structure
8.0 Objective
8.1 Introduction
8.2 Basic Planning Purchases and Acquisitions
8.2.1 Evaluating the Market Conditions
8.2.2 Referring to the Scope Baseline
8.2.3 Relying on the Project Management Plan
8.2.4 Teaming with other organizations
8.2.5 Planning for the Project Requirements
8.3 Completing procurement Planning
8.3.1 Determining to Make or Buy
8.3.2 Using Expert Judgment
8.4 Determining the Contract Type
8.4.1 Fixed –Price Contracts
8.4.1.1 Firm fixed price contract
8.4.1.2 Fixed –price incentive fee contract
8.4.1.3 Fixed price with economic price adjustment contract
8.4.2 Cost- Reimbursable Contracts
8.4.2.1 Cost plus fixed fee
8.4.2.2 Cost plus incentive fee
8.4.2.3 Cost plus award fee
8.4.2.4 Cost plus percentage of costs
8.4.3 Time and Materials Contracts
8.5 Planning Contracting (Preparing for Contracting)
140
Chapter 8: Project Procurement Management
8.8 Summary
8.0 Objective
8.1 Introduction
141
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
key input to many of the processes that occur within the project. The contract, more
than anything else, specifies the rules and agreements for the project.
Here’s neat twist: When the seller is completing their obligations to supply a
product, PMI treats those obligations as a project itself. In other words, if ABC
Electricians were wiring a building for your company, ABC Electricians would be
performing organization completing its own project. Your company becomes the
customer of their project – and is, of course, a stakeholder in their project.
When the vendor is completing work for a portion of your project, the close contract
activities don’t wait until the end of the project- they happen as needed.
In the scenarios described in this chapter, the seller will be outside of the performing
organization. The buyer will be managing a project and procuring resources from a
vendor. However, all of the details in this in this chapter can be applied to internal
work orders, formal agreements, and contracts between organizational units within
a single entity.
For the PMI examination, you’ll need to be familiar with four processes dealing
with project procurement management. First, like all of the project management
knowledge areas, is the associated planning. Once the procurement management
plan has been created, you’ll actually do the procurement. You’ll control the
procurement process to ensure that all parties are meeting the terms of the agreement.
Finally, you’ll close out the procurement process.
Procurement planning is the process of identifying which part of the project should
be procured from resources outside of the organization. Generally, procurement
decisions are made early on in the planning processes. Procurement planning
centres on the four elements:
• Whether procurement is needed
• What to procure
• How much to procure
• When to procure
When the project manager begins the procurement process, she’ll rely on the usual
enterprise environmental factors and organizational process assets. For example,
the project manager has to consider the marketplace conditions, the availability of
142
Chapter 8: Project Procurement Management
the needed items or services in the marketplace, and how the procurement process
works within the performing organization. If the project manager’s organization has
forms, policies, and management guidelines that direct the procurement process,
she must follow those established processes.
Often, an organization will have resources for managing the procurement process,
including contracting and negotiating on behalf of the project. If, however, the
performing organization has no such resources for the project manager to rely upon,
it is up to the project manager to supply the procurement management resources,
including capabilities for negotiating and for obtaining in a fiscally responsible way
the right products or serices for fair price on behalf of the performing organization.
8.2.1 Evaluating the Market Conditions
Part of procurement management involves determining what sources are available
to provide the required products or services for the project. An evaluation of the
marketplace is needed to determine what products and services are available and
from whom and on what terms and conditions they are available.
Although in most free-market enterprise societies multiple vendors offer
comparable products, there may be times when your choices of vendors are limited.
The following are three specific terms to know for the PMP exam that you may
encounter:
● Oligopoly There are very few sellers, and the actions of one seller will have
a direct effect on the other sellers’ prices and the overall market condition.
8.2.2 Referring to the Scope Baseline
The project’s scope statement, work breakdown structure (WBS), and WBS
dictionary all sere as input in making procurement decisions, although the PMBOK
lumps these into the project management plan. Because the project scope baseline
defines the project work, and only the required work, to complete the project, it
also defines the limitations of the project. Knowing the limits of what the project
includes can help the project manager, the contract specialists, and other procurement
professionals determine what needs to be purchased and what does not.
The WBS and the WBS dictionary define the details and requirements for acceptance
143
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
of the project. This information also serves valuable input regarding what needs to
be procured and what does not. The WBS defines what the end result of the project
will be. When dealing with vendors to procure a portion of the project, you must
ensure that the work to be procured must support the requirements of the project
customer.
A statement of work (SOW) may define the work to be accomplished within
the project, but it generally does not define the product description as a whole.
However, when an entire projects is to procured from a vendor, the SOW, you may
need to reference the requirements documentation to ensure that the procurement
planning process defines exactly what’s needed and adheres to any relevant laws,
regulations, and standards.
8.2.3 Relying on the Project Management Plan
The project management plan is also needed during the procurement planning
processes because it will guide how the project should progress, and each subsidiary
plan may need to be referenced for procurement guidelines. For example, the cost
management plan, the scope management plan, quality management plan, and the
staffing management plan may all be needed for effective procurement planning.
One of the biggest things you’ll need to consider during procurement management
is the reliance on the risk response transference. Recall that transference is the
contractors for dangerous work are two common examples of transference. The
risk register will help identify the costs associated with the identified risks, and
the contractual agreements for transference will be reference as part of the project
costs.
The project management plan also includes the project schedule-and the project
manager needs to consider procurement leads, fulfilment time for vendors, and
when resources are needed to keep the project moving along. Couple the project
schedule with the activity cost estimate and the cost performance baseline, and
the project manager can do cash flow forecasting, communicate with management
about upcoming expenses, and ensure that vendors are paid on time.
8.2.4 Teaming with other organizations
If your organization and another organization partner on an opportunity, it’s called a
teaming agreement. It’s a legally binding venture between two or more organizations
that plan to complete a defined set of work or to seize an opportunity or some
other venture that the parties involved couldn’t complete necessarily on their own.
Teaming agreements end when the venture ends. You might have heard these
144
Chapter 8: Project Procurement Management
Procurement planning should occur early in the planning processes, with certain
exceptions. As needs arise, as project conditions change, or as other circumstances
demand, procurement planning may be required throughout the project. Whenever
procurement planning happens early in the project, as preferred, or later in the
project, as needed, a logical approach to securing the proper resources is necessitated.
8.3.1 Determining to Make or Buy
145
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
146
Chapter 8: Project Procurement Management
to purchase, but the development company requires a maintenance plan for each
software program installed, which will cost your company $2700 per month. The
initial difference between making the software and buying the software is $8000.
The difference between supporting the software the organization has made and
allowing the external company to support their software the organization has made
and allowing the external company to support their software is only $200 per month.
The $200 per month is divided into the difference between creating the software
internally and buying the software—which is $8000 divided by $200 –which
equates to 40 months. If the software is to replace within 40 months, the company
should buy the software. If the software will not be replaces within 40 months, it
should build the software.
An organization may choose to make or buy for multiple reasons. The following
table shows some common examples or reasons for making and buying:
Reasons to Make Reasons to Buy
Less costly Less costly
Use in-house skills In-house skills aren’t available or don’t
exist
Control of work Small volume of work
Control of intellectual property More efficient
Learn new skills Transfer risks
Available staff Available vendor
Focus on core project work Allows project team to focus on other
work items
147
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
There are multiple types of contracts when it comes to procurement. The project
work, the market, and the nature of the purchase determine the contract type. The
following are some general rules that PMP exam candidates, and project managers,
should know:
• A contract is a formal agreement between the buyer and the seller .Contracts
can be oral or written – though written is preferred.
• The United States and most developed countries back all contracts through
the court system.
• Contracts should clearly state all requirements for product acceptance.
• Any changes to the contract must be formally approved, controlled, and
documented.
• A contract is not fulfilled until all of the requirements of the contract are met.
• Contracts can be used as a risk mitigation tool, as in transferring the risk. All
contracts have some level of risk; depending on the contract type, the risk
can be transferred to the seller. If a risk response strategy is to transferred
to the seller. If a risk response strategy is to transfer, risks associated with
procurement are considered secondary risks and must go through the risk
management process.
• Legal requirements govern contracts .In order for a contract to be valid, it
must
● Contain an offer
● Have been accepted
● Provide for a consideration (payment)
● Be executed by someone with capacity and authority
● Be for a legal purpose
• The terms and conditions of the contract should define breaches, copyrights,
intellectual rights, and force majeure.
Force majeure is French for superior force- sometimes called “acts of God”. You
might know these as tornados, earthquakes, and hurricanes.
8.4.1 Fixed –Price Contracts
Fixed –price contracts (also known as firm fixed- price and lump sum contracts)
148
Chapter 8: Project Procurement Management
are agreements that define a total price for the product the seller is to provide.
These contracts must clearly define the requirements the vendor is to provide.
These contracts may also provide incentives for meeting or exceeding contract
requirements such as meeting deadlines – and require the seller to assume the risk
of cost overruns, as figure 8.2 demonstrate
You should know three types of fixed- priced contracts:
8.4.1.1 Firm fixed price contract
This contract type defines the exact amount for the goods or services provided by the
vendor. It’s the most common and most preferred contract type for organizations, as
the risk for the buyer is relatively low.
For the seller, however, the risk is that if their cost of material, doing business, or
completing the work defined in the contract increases, they cannot pass on the cost
to the customer. A firm fixed- price contract is also known as a lump- sum contract.
8.4.1.2 Fixed –price incentive fee contract
This contract type is similar to the firm fixed-price contract in that a lump sum
amount is agreed upon between the buyer and seller for the work to be performed.
However, this contract type allows the contract to include incentives for the project,
such as bonus for completing the project work early, savings costs in the project, or
other performance objectives. This contract can also have penalties for the vendor
if they’re late on project work or their performance is less than it should be.
149
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
150
Chapter 8: Project Procurement Management
seller. Usually, the seller receives 20 percent of the cost savings in what’s called an
“80/20 split”.
8.4.2.3 Cost plus award fee
This contract requires the buyer to pay for all the project costs and gives the seller
an award fee based on the project performance, certain project criteria, or other
goals established by the buyer.
The award fee can be tied to any factor the buyer determines, and the factor doesn’t
have to be exact.
For example, the buyer can set an award fee off up to $100,000 for a $1 million
project based on the technical ingenuity of the project solution, the quality of the
work, or the actual cost savings the solution creates for the organization.
8.4.2.4 Cost plus percentage of costs
This contract type is the absolute pits for the buyer, and most organizations won’t
participate in these contracts. In this case, the buyer has to pay for all of the costs of
the materials. The obvious risk is that the vendor can waste materials and buyer will
have to buy new materials and pay the percentage of costs for the material again.
It’s easy for the vendor to run up the total project costs just by wasting materials.
The only time is might be appropriate, and I stress the word might, to use a cost plus
percentage of costs contract is when the vendor is working with a highly specialized
material and type of work.
For example, imagine an artist who’s sculpting a marble statue for the lobby of a
building or a scientist who’s working with a highly complex chemical. The nature
of this type of work is so specialized that the artist and the scientist are unlikely to
waste materials on purpose just to crank up their project costs. Having said that,
I doubt you will see this on the PMP exam. As a general rule, avoid the cost plus
percentage of costs contract.
8.4.3 Time and Materials Contracts
Time and materials (T&M) contracts are sometimes called unit price contracts.
They are ideal when an organization contracts out a small project when smaller
amounts of work within a larger project are to be completed by a vendor. T&M
contracts, however, can grow dangerously out of control as more work is assigned
to the seller. T& M contracts should have a not to extend clause (NTE clause) to
put a ceiling on the procured work. Figure 8.3 shows an example of how T&M
contracts can pose a risk for the buyer.
151
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
• The Procurement Management plan: This subsidiary plan sets out the
methodologies and expectations of procurement within the performing
organization.
The contracts SOW provides detailed information about what the seller will
be providing for the performing organization. Recall that this document
allows the seller to determine whether it can provide the product and meet
the requirements of the project team.
Other details within the project plan, such as the schedules, estimates,
constraints, and assumptions, are referenced, since their values may have a
direct influence on the contracting process.
152
Chapter 8: Project Procurement Management
153
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
154
Chapter 8: Project Procurement Management
Requesting seller response is the process of inviting sellers to acquire the business
of the performing organization. Three primary tools are needed to complete this
process:
● Bidder conferences
● Advertising
155
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
A standard of procurement is that bids and quotes are looking for sellers to
provide a price. Proposals are asking the sellers to provide solutions.
8.6.1 Examining the Results of Contracting
The end result of contracting, as expected, is a collection of proposals, bids , and
quotations. These documents indicate the seller’s ability and preparedness to
complete the project work. The proposals should be in alignment with the buyer’s
stated expectations, and they may be presented orally, electronically, or in hard-
copy format.. Of course, the relationship between the buyer and the seller- and the
type of information being shared- will determine which modality is the best choice
for communication.
Once the seller have presented their proposals, bids,or quotes (depending on what
the buyer requested of them), their documents are examined so that the project
manager can select which seller are the best choice for the project work. In many
instances, price may be the predominant factor for choosing a particular seller-but
not always. Factors other than price may also be taken into consideration:
● The cost of an item may not reflect the true cost to the performing organization
if the item cannot be delivered in a timely manner. If a seller promises to
have a product on site by a specific date and fails to do so, the project can be
delayed, costing the organization thousands-_ or more—in losses.
156
Chapter 8: Project Procurement Management
● Proposals The proposals, bids, and quotations provided by the sellers are key
inputs. These are the documents the performing organization will evaluate to
determine which seller is the best provider for the project.
157
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
158
Chapter 8: Project Procurement Management
price for the work the seller is to complete. The performing organization and
the seller must be in agreement on the expectations, requirements, authorities,
terms technical and business management approaches, price, and any other
pertinent factors covered within, and by, the contract prior to signing it.
● Seller rating systems How the vendor has performed in the past may guide
current and future project procurement decisions. Consider a vendor that has
offered poor performance in quality, delivery, and contractual compliance
versus a vendor that has scored high marks in quality, delivery, and contract
compliance ; which should the project manager choose? That’s the goal
of the seller rating system: to collect and disseminate information on the
performance of sellers in order to guide project decisions.
● Expert Judgement: - Often, the project manager and the project team may
not be knowledgeable in the discipline the vendor is offering and that the
project requires. In these instances , the project manager can rely on expert
judgement to help make the best decisions regarding the project’s welfare.
159
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
8.8 Summary
Project procurement management involves acquiring goods and services for a project
from outside the performing organization. Procurement purchasing or outsourcing
is acquiring goods or services from outsides sources. Organizations outsource to
reduce costs, focus on their core business access skills and technologies, provide
flexibility and increase accountability. In this chapter we could discuss the various
steps involved in the procurement management process needed for a project.
Processes include:
• Planning purchases and acquisitions
• Planning contracting
• Requesting seller responses
• Selecting sellers
Questions:
2. Explain the make or buy decision process and describe how to perform the
financial calculations involved in the lease or buy example.
Reference:
vvv
160
UNIT 5 Chapter 9: Out Sourcing
9
OUT SOURCING
Unit Structure
9.0 Objective
9.1 Introduction
9.2 Outsourcing
9.7 Summary
9.0 Objective
9.1 Introduction
Physical items are not the only things a project may acquire from external sources.
Often, services and components of the project scope are subcontracted to another
firm. More specifically, the project’s scope can be broken up into a number of
subprojects. This idea is not new, since construction contractors often subcontract
specific components of a building to other subcontractors such as framers,
electricians, or plumbers. Today, however, the term “subcontracting” has been
often substituted with the term “outsourcing”.
161
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
9.2 Outsourcing
In 1989, the Eastman Kodak Company in Rochester, New York was a leader in the
Photography industry. With annual revenues of $18.4 billion, Kodak was doing well
as a company. However, Kodak was spending $250 million a year on information
technology, and management questioned why so much was being spent on IT when
the company’s mission was to be a leader in photography.
162
Chapter 9: Out Sourcing
Kodak explored other options and eventually signed a 10-year, $250-million deal
to outsource its entire IT function to IBM Corp., Digital Equipment Corporation
(DEC), and Business land, Inc. As part of the arrangement, DEC took over
telecommunications, and Business landhandled all PC purchases and maintenance.
IBM received the biggest share of the deal and assumed responsibility for data
center operations. As part of the arrangement, 300 Kodak employees transferred
to IBM, and 400 transferred to DEC and Business land. Within the first year of the
deal, Kodak’s capital costs decreased almost 95 percent, while PC support costs
dropped to about 5 to 10 percent. Mainframe costs also were reduced by 10 to 15
percent.
Kodak was not the first, or the largest, organization to turn to outsourcing, but it
was the first well known and successful company to outsource an entire IT function.
As a result, the perception that an organization had to provide its own IT support
changed. Senior management began to talk about core competencies, cost saving
and strategic partnerships with IT vendors (Field 1999).
By the year 2000, the field of IT had come to a critical crossroads, when more than
54 percent of IT services purchased in north America were outsourced. Even today,
the momentum for outsourcing has grown and it appears that Europe now exceeds
the United States in terms of the value of major outsourcing deals ( Pruitt 2005b).
163
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
For a project, this would mean that the project team is responsible for all the
project’s processes and scope. On the other hand, a full-outsourcing approach
would be followed if an organization or project acquires all products or services
from external sources. In this case, we would have a virtual organization or project.
However, the best approach for organizations and projects probably would be
selective outsourcing. More specifically, selective outsourcing provides greater
flexibility to choose which project process deliverables should be outsourced and
which should be kept internal. Although low cost is one advantage for outsourcing
and offshoring, the objective should be to increase flexibility and quality (Lacity,
Willcocks, &Feeny 1995).
Before the Kodakdeal, outsourcing did not have many negative connotations,
especially by IT professionals. Afterward, however, a minority understood the
virtues of outsourcing, while a vocal minority despised it (Field 1999). Today this
debate continues, as many organizations view offshore outsourcing as an important
organizational or project strategy.
The controversy over outsourcing, especially offshoring, centers on the perception
that jobs within one country are replaced by lower-wage jobs in another.
Subsequently, domestic unemployment increases and thereby creates a negative
impact on the nation’s economy.
Although some people lose their jobs because of outsourcing, many new higher-
paying jobs are often created. For example, Delta Airlines had over 6,000
representatives in 20 call centers worldwide. The agents in these call centers
interacted with customers through voice, fax, and e-mail. Delta made the decision
to offshore many of these activities and so 1,000 call center jobs were outsourced
164
Chapter 9: Out Sourcing
to India. This resulted in $2s million in saving that allowed Delta to add 1,200
reservation and sales positions in the United States (Robinson and Kalakota 2004).
Moreover, the McKinsey Global Institute estimates that the United states reaps
between $1.12 and $1.14 for every dollar spent on outsourcing to India. In addition,
Drezner also reports
That although 70,000 computer programmers lost their jobs between 1999 and
2003, more than 115000 software engineers found higher-paying jobs (Drezner
2004).
Organizational change management plays an important role for outsourcing
successfully. A poll conducted in Europe examined the opinions of 200 employees
in large organizations before and after their position were outsourced. Although
this change can be unwelcome, the study found that, if done right, people may find
that they have more opportunity to advance their careers and hone their skill (Pruit
2005a). However if the outsourcing decision is not handled properly, the remaining
survivors can feel outrage or guilt, thus affecting the remaining employee’s morale
and motivation (Hamblen 2004). On the other hand, as peter F. Drucker (2002) points
out, developing people is the most important task in business. The trend toward
outsourcing and relying on nontraditional employees can reduce an organization’s
ability to gain competitive advantage in a knowledge economy.
165
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
have remained in-house because these activities were important to its core business.
A loss of control and the risk of the vendor going out of business can have grave
consequences for the company.
Selecting the wrong vendor-Although selecting a good vendor seems like common
sense, vendors can be selected for the wrong reasons. It is important to note that
not all organizations outsource to reduce costs. Some outsource because a vendor
can do something better or faster. An organization looking to outsource should
verify a prospective vendor’s qualifications as well as their experience and financial
strength. There should also be a good fit between the two organizations’ cultures,
as well as a commitment to continuous improvement, flexibility, and a long-term
relationship.
Writing a poor contract-A good contract must be in place to establish a balance
of power between client and vendor. Time must be invested to carefully negotiate
the terms of the contract because this not only sets expectations, but also creates
a safety net in case the relationship breaks down. A well-written contract should
be precise, be complete, provide incentives for the right behavior, be balanced so
that it does not become one-sided or in favor of one party, and be flexible so that
changes in business conditions can allow for changes in the contract.
Overlooking personnel issues-Outsourcing, or even a rumor that an organization is
contemplating Outsourcing, can have a negative impact on employee loyalty and
sense of job security. In turn, this may lead to reduced productivity, dysfunctional
behaviors, or a mass exodus of employees before the Outsourcing decision is
even made. Organizations must retain and motivate key employees since not all
employees will be let go or transferred to the vendor. On the other hand, employees
who will be transferred to the vendor to the vendor. On the other hand, employees
who will be transferred to the vendor may have concerns about their job security,
pay, and benefits. Therefore, the retention of organizational-specific knowledge is
important for those employees who will be retained and for those who will be
transferred.
Losing control over the Outsourced activity-An organization that outsources an
activity can lose control if it does not manage the vendor actively. Often managers
are tempted to Outsource an activity that is performing poorly or is not well
understood. Outsourcing does not mean full abdication of that activity. Even when
an activity is Outsourced, an individual or small group must still manage the vendor.
A good contract is important, but good governance is essential.
166
Chapter 9: Out Sourcing
Overlooking the hidden costs of outsourcing-Clients must take into account a number
of hidden costs before they can be confident that an Outsourced activity results
in a cost savings. The main types of hidden costs include searching for vendors,
negotiating and writing the contract, and managing the vendor relationship. These
costs are an important consideration since they can turn a potentially attractive
Outsourcing arrangement into one that challenges the rationale for Outsourcing.
Failing to plan an exit strategy-Some Outsourcing relationships should be short
term and others more long term. All Outsourcing relationship should include an exit
strategy that allows the client organization a means to switch vendors or reintegrate
the Outsourced activity later on. If an Outsourced activity with a particular vendor
is working, then the contract can be resigned with little renegotiation. However, an
organization that Outsources selectively should have options in the contract to buy
premises and equipment, or hire employees back from the vendor.
9.7 Summary
Outsourcing has received a great deal of attention since the late 1980s, and the growth
of outsourcing is expected to continue. Outsourcing is defined as the procurement
of products or services from an external vendor, supplier, or manufacturer and thus
is analogous to procurement management. However, outsourcing has more of a
strategic focus, while project procurement management may be viewed as a more
tactical – level approach.
Business process outsourcing occurs when an organization turns over processes of
functions such as IT, accounting, human resources, and so forth.
Offshoring is a type of outsourcing when an organization takes advantage of lower
wages in another country. Outsourcing decisions can be made at an organizational
level, such as the outsourcing of a business process or function. In addition, an
organization could make a decision to outsource the development of an application
system or the implementation of a software package .In turn, a project manager
could outsource specific project components such as programming, testing, or
training as well. Subsequently, an organization or project could follow different
approaches to outsourcing, such as full insourcing, full outsourcing, or something
in between called selective outsourcing. Selective outsourcing may allow the most
flexibility since some activities would remain in –house while others would be
outsourced or subcontracted to external parties.
167
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Reference Books :
7. Software Engineering, 5th and 7th edition, by Roger S Pressman, McGraw Hill
publication.
8. Managing Information Technology Project 6thedition, by Kathy Schwalbe,
Cengage Learning publication.
9. Software Engineering 3rd edition by KK Agarwal, Yogesh Singh, New Age
International publication.
10. Information Technology Project Management by Jack T Marchewka Wiley
India publication.
vvv
168
UNIT 6 Chapter 10: Software and System Quality Management
10
SOFTWARE AND SYSTEM QUALITY
MANAGEMENT
Unit Structure
10.0 Introduction
10.1 Overview of ISO 9001
10.2 SEI Capability Maturity Model
10.3 McCalls Quality Model
10.4 Six Sigma
10.5 Formal Technical Reviews
10.6 Tools and Techniques for Quality Control
10.6.1 Pareto Analysis
10.6.2 Statistical Sampling
10.6.3 Quality Control Charts
10.6.4 The Seven Run Rule
10.0 Introduction
Definition by ISTQB,
Quality: The degree to which a component, system or process meets specified
requirements and/or user/customer needs and expectations.
software quality: The totality of functionality and features of a software product
that bear on its ability to satisfy stated or implied needs.
Software quality management (SQM) is a management process that aims to
develop and manage the quality of software in such a way so as the best ensure the
product meets the quality standards expected by the customer while also meeting
any necessary regulatory and developer requirements, if any.
169
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
● Both ISO 9001 and ISO 9000-3 are reviewed and updated once every 5–8
years, with each treated separately.
● At the time of writing, the 2000 edition of ISO 9001 (ISO, 2000a) has been
issued, but only the final just-completed draft of ISO 9000-3 (ISO/IEC, 2001)
is awaiting approval.
● From the 1997 edition on, the ISO 9000-3 will represent the stand-alone ISO
standard for the software industry.
● The 2000 edition of ISO 9001 as well as the new edition of ISO 9000-3 are
supported by two additional conceptual standards:
1. ISO 9000 (ISO, 2000b), which deals with fundamental concepts and
terminology, and
2. ISO 9004 (ISO, 2000c), which provides guidelines for performance
improvement.
ISO 9001 — application to software: the TickIT initiative :
TickIT was launched in the late 1980s by the UK software industry in cooperation
with the UK Department for Trade and Industry to promote development of
a methodology for adapting ISO 9001 to the characteristics of the software
industry known as the TickIT initiative. TickIT is currently authorized to accredit
other organizations as certification bodies for the software industry in the UK
(Figure 10.1).
TickIT activities include:
■ Publication of the TickIT Guide, that supports the software industry’s efforts
to spread ISO 9001 certification. The current guide (edition 5.0, TickIT,
2001), which includes references to ISO/IEC 12207 and ISO/IEC 15504, is
distributed to all TickIT customers.
170
Chapter 10: Software and System Quality Management
Figure 10.1:
171
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Carnegie Mellon University’s Software Engineering Institute (SEI) took the initial
steps toward development of what is termed a capability maturity model (CMM)
in 1986.
The initial version of the CMM was released in 1992, mainly for receipt of feedback
from the software community.
The first version for public use was released in 1993 (Paulk et al., 1993, 1995;
Felschow, 1999).
The principles of CMM
Following are the concepts and principles of CMM assessment:
● Application of more elaborate management methods based on quantitative
approaches increases the organization’s capability to control the quality and
improve the productivity of the software development process.
● The vehicle for enhancement of software development is composed of the
five-level capability maturity model. The model enables an organization to
evaluate its achievements and determine the efforts needed to reach the next
capability level by locating the process areas requiring improvement.
● Process areas are generic; they define the “what”, not the “how”. This
approach enables the model to be applied to a wide range of implementation
organizations because:
■ It allows use of any life cycle model
■ It allows use of any design methodology, software development tool
and programming language
■ It does not specify any particular documentation standard.
The CMM and its key process areas (KPAs) are presented in following
(Figure 10.2)
Variety of specialized capability maturity models are as following:
● System Engineering CMM (SE-CMM)
■ It focuses on system engineering practices related to product-oriented
customer requirements.
■ It deals with product development: analysis of requirements, design of
product systems, management and coordination of the product systems
and their integration.
■ In addition, it deals with the production of the developed product:
planning production lines and their operation.
172
Chapter 10: Software and System Quality Management
Figure 10.2: The CMM and its key process areas (KPAs)
173
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
174
Chapter 10: Software and System Quality Management
1 Correctness:
These requirements deal with the correctness of the output of the software system.
They include −
● Output mission
● The required accuracy of output that can be negatively affected by
inaccurate data or inaccurate calculations.
● The completeness of the output information, which can be affected by
incomplete data.
● The up-to-dateness of the information defined as the time between the
event and the response by the software system.
● The availability of the information.
● The standards for coding and documenting the software system.
2 Reliability:
Reliability requirements deal with service failure. They determine the maximum
allowed failure rate of the software system, and can refer to the entire system or
to one or more of its separate functions.
3 Efficiency:
It deals with the hardware resources needed to perform the different functions
of the software system. It includes processing capabilities (given in MHz), its
storage capacity (given in MB or GB) and the data communication capability
(given in MBPS or GBPS).
It also deals with the time between recharging of the system’s portable units, such
as, information system units located in portable computers, or meteorological
units placed outdoors.
4 Integrity:
This factor deals with the software system security, that is, to prevent access to
unauthorized persons, also to distinguish between the group of people to be given
read as well as write permit.
5 Usability:
Usability requirements deal with the staff resources needed to train a new
employee and to operate the software system.
6 Maintainability:
This factor considers the efforts that will be needed by users and maintenance
personnel to identify the reasons for software failures, to correct the failures, and
to verify the success of the corrections.
175
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
7 Flexibility:
This factor deals with the capabilities and efforts required to support adaptive
maintenance activities of the software.
These include adapting the current software to additional circumstances and
customers without changing the software.
This factor’s requirements also support perfective maintenance activities, such as
changes and additions to the software in order to improve its service and to adapt
it to changes in the firm’s technical or commercial environment.
8 Testability:
Testability requirements deal with the testing of the software system as well as
with its operation.
It includes predefined intermediate results, log files, and also the automatic
diagnostics performed by the software system prior to starting the system, to find
out whether all components of the system are in working order and to obtain a
report about the detected faults.
Another type of these requirements deals with automatic diagnostic checks
applied by the maintenance technicians to detect the causes of software failures.
9 Portability:
Portability requirements tend to the adaptation of a software system to other
environments consisting of different hardware, different operating systems, and
so forth.
The software should be possible to continue using the same basic software in
diverse situations.
10 Reusability:
This factor deals with the use of software modules originally designed for one
project in a new software project currently being developed.
They may also enable future projects to make use of a given module or a group of
modules of the currently developed software.
The reuse of software is expected to save development resources, shorten the
development period, and provide higher quality modules.
11 Interoperability:
Interoperability requirements focus on creating interfaces with other software
systems or with other equipment firmware.
For example, the firmware of the production machinery and testing equipment
interfaces with the production control software.
176
Chapter 10: Software and System Quality Management
● The process of producing high and improved quality output is known as Six
Sigma.
● This can be done in two phases – identification and elimination.
● The cause of defects is identified and appropriate elimination is done which
reduces variation in whole processes.
● Six Sigma's aim is to eliminate waste and inefficiency and increase customer
satisfaction by delivering what the customer is expecting.
● It follows a structured methodology, and has defined roles for the participants.
● It is a data driven methodology, and requires accurate data collection for the
processes being analyzed.
● It is about putting results on Financial Statements.
Following are few characteristics of Six Sigma:
The Characteristics of Six Sigma are as follows:
■ Statistical Quality Control:
Six Sigma denotes Standard Deviation in statistics. Standard Deviation
is used for measuring the quality of output.
■ Methodical Approach:
The Six Sigma is a systematic approach of application in DMAIC(Design-
Measure- Analyze-Improve-Control) and DMADV(Design-Measure-
Analyze-Design-Verify) which can be used to improve the quality of
production.
■ Fact and Data-Based Approach: The statistical and methodical
method shows the scientific basis of the technique.
■ Project and Objective-Based Focus:
The Six Sigma process is implemented to focus on the requirements
and conditions.
■ Customer Focus:
The customer focus is fundamental to the Six Sigma approach. The
quality improvement and control standards are based on specific
customer requirements.
■ Teamwork Approach to Quality Management:
The Six Sigma process requires organizations to get organized for
improving quality.
177
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
“A formal review produces a report that identifies the material, the reviewers, and
the review team’s judgment as to whether the product is acceptable. The principal
deliverable is a summary of the defects found and the issues raised. The members
of a formal review team share responsibility for the quality of the review, although
authors are ultimately responsible for the quality of the products they create
(Freedman and Weinberg 1990).”
● The purpose of an Formal Technical Review (FTR) is to identify errors in
function,logic and implementation of software.
● It is used to verify that the software under review meets its requirements.
● It ensures that the software has been represented according to predefined
standards.
● It also helps to achieve software that is developed in a uniform manner and to
make projects more manageable.
The FTR is actually a class of reviews that includes walkthroughs and inspections.
178
Chapter 10: Software and System Quality Management
179
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Ishikawa’s seven basic tools are also referred to as the 7QC tools.
Cause and Effect Diagrams (Figure 10.3)
□ Cause-and-effect diagrams, or Ishikawa diagrams, were developed by
Kaoru Ishikawa to illustrate and help determine how various factors
relate to potential problems.
□ Also called fishbone diagrams because they resemble the skeleton of a
fish.
□ The head of the fish is the effect and each bone of the fish is a cause that
leads to that effect.
□ The bones can branch off into smaller bones as you determine the
lowerlevel cause-effect relationships.
□ When all the bones are filled in, the diagram lets you look at all the
possible causes (individual or combinations) of the effect (or problem)
so that you can develop a solution to mitigate that effect.
□ The diagram allows organized thought and encourages orderly
consideration of the factors that result in a certain outcome.
Figure 10.3: The CMM and its key process areas (KPAs)
180
Chapter 10: Software and System Quality Management
Flowcharts
□ Flowcharts show the logical steps in a process and how various elements
within a system are related.
□ They can be used to determine and analyze potential problems in quality
planning and quality control.
□ Flowchart outlines the logical steps to complete a process.
□ By documenting these logical steps, the team can identify where quality
problems might occur and then develop approaches to proactively
manage them.
□ Flowcharting also helps create a process that is repeatable (Figure 10.4).
Check Sheets
□ Check sheets are used to organize information in order to facilitate data
gathering.
□ Check sheets are particularly effective for doing inspections, enabling
focus on the particular attributes that may be contributing to potential
or identified quality problems.
181
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Pareto Diagrams
□ A Pareto chart or diagram, is a specific type of histogram that is based
on Pareto’s principle, which states that a large number of defects or
problems are caused by a small number of causes.
□ Pareto’s principle, frequently referred to as the 80/20 rule or 80/20
principle.
□ Which means that eighty percent of the cost of defects are caused by
twenty percent of the problems.
□ A Pareto diagram is an ordered bar graph showing the number of defects
and their causes ranked by frequency.
□ The bars on the diagram graphically show the number and percentage
of causes individually and the line shows the cumulative value.
□ Pareto charts help focus attention on the most critical issues to get the
most benefit.
182
Chapter 10: Software and System Quality Management
Histograms
□ A histogram is a vertical bar graph that represents the frequency of each
measured category (known as bins) of variable.
□ The histogram is particularly useful for identifying common causes.
□ The histogram can be ordered, similar to a Pareto chart, or unordered.
Control Charts
183
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
□ Rule of Seven, or Seven Run Rule: Seven data points in a row are above
or below the mean.
□ Rule of One: Any single data point is outside of the control limits (upper
or lower).
Scatter Diagrams
□ Scatter diagrams plot two variables, the independent variable and the
dependent variable, to graphically show the relationship between them.
□ Tightness: The closer the cluster is to a diagonal line drawn through the
graph, the more the two variables are likely to be linearly correlated.
High correlation between the characteristics means that a change in one
characteristic will be accompanied by a change in the other.
184
Chapter 10: Software and System Quality Management
185
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
vvv
186
UNIT 6 Chapter 11: Modern Quality Management
11
MODERN QUALITY MANAGEMENT
Unit Structure
11.0 Modern Quality Management
11.1 Juran
11.2 the importance of Top management
11.3 Commitment to Quality
11.4 Crosby and Striving for Zero defects
11.5 Ishikawa and the Fishbone Diagram
187
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Besides Deming, Joseph Juran settled the basics of benchmarking with his
contribution to modern quality management. Joseph M. Juran has brought significant
input in regards to productivity issues. In 1984, he wrote the first edition of the
“Quality Control Handbook,” which stresses the importance, for management, to
be engaged in the continuous development of products.
He developed 10 steps for quality improvement:
1. Assess needs and improvement opportunities;
2. Set goals for improvement;
3. Become an organization focused on achieving goals (establishment of a Quality
Council, identification of problems, selection of projects, establishment of
teams, facilitators);
4. Facilitate trainings;
5. Initiate projects to solve issues;
6. Report progress;
7. Recognize merits;
8. Communicate results;
9. Track scores;
10. Focus on annual improvements so that they become usual processes within
the organization.
Many quality assurance managerial tasks are shared by managers of the same level
or of more than one level.
Each manager takes on the responsibilities suitable to his or her level of authority
and expertise.
Following are the responsibilities of the top management in ensuring Software
Quality −
188
Chapter 11: Modern Quality Management
● Ensure that quality objectives are established for the organization’s SQA
system and that its objectives are accomplished
The following steps can be taken by the top management to fulfill its responsibilities
● During certification audits, Auditors should look for evidence that Top
Management has a ‘hands-on’ approach to the management of their QMS
during interviews and auditing other requirements e.g. Context of the
organization, policies and objectives, Management review minutes, Resources
etc.
189
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
190
Chapter 11: Modern Quality Management
● Mr. Philip Crosby introduced the term Zero Defects in his book “Absolutes
of Quality Management”.
● It has emerged as a popular and highly-regarded concept in quality
management,so much so that Six Sigma is adopting it as one of its major
theories.
● It means ensuring the highest quality standards in projects.
● Attaining zero defects is technically not possible in any sizable or complex
manufacturing project.
According to the Six Sigma standard, the definition of zero defects is defined as 3.4
defects per million opportunities (DPMO), allowing for a 1.5-sigma process shift.
The zero defects concept should use for perfection in order to improve quality in
the development or manufacturing process.
True perfection might not be achievable but at least the quest will push quality and
improvements to a point that is acceptable under even the most stringent metrics.
Zero Defects – The Theory and Implementation
3. Anything that is unproductive and does not add value to a project should be
eliminated, called the process of elimination of waste.
5. Common with the zero defects theory is the concept of “doing it right the
first time” to avoid costly and time-consuming fixes later in the project
management process.
191
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
1. A zero defects goal could lead to a scenario where a team is striving for a
perfect process that cannot realistically be met.
2. The time and resources dedicated to reaching zero defects may negatively
impact performance and put a strain on employee morale and satisfaction.
3. There can also be negative implications when you consider the full supply
chain with other manufacturers that might have a different definition of zero
defects.
This cause analysis tool is considered one of the seven basic quality tools.
The fishbone diagram identifies many possible causes for an effect or problem.
It can be used to structure a brainstorming session.
It immediately sorts ideas into useful categories.
We can use this when we need to identify possible causes for a problem and a
team’s thinking tends to fall into ruts.
192
Chapter 11: Modern Quality Management
193
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
● Ask “Why does this happen?” As each idea is given, the facilitator writes it
as a branch from the appropriate category.
● When the group runs out of ideas, focus attention on places on the chart
where ideas are few.
vvv
194
UNIT 7 Chapter 12: Human Resource Management
12
HUMAN RESOURCE
MANAGEMENT
Unit Structure
12.0 Objectives
12.1 Introduction
12.9 Summary
195
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
12.0 Objectives
When you have completed this chapter you should be able to:
12.1 Introduction
196
Chapter 12: Human Resource Management
their own surveys. The Minnesota Department of Economic Security Research and
Statistics Office published a report stating that the 1,000 student s graduating each
year from information technology-related post-secondary programs in Minnesota
were not nearly enough to fill the 8,800 positions projected to be open each year
between 1998 and 2006. Coopers & Lybrand conducted a survey in 1997 and found
that 70 percent of CEOs in high-tech firms listed the lack of highly skilled, trained
workers as the number one barrier to growth. More than 80 percent of survey
respondents planned to hire new staff in the coming year, adding a total of 19.8
percent to their total workforce.
These studies highlight what many people consider to be serious national problem.
High-tech firms, which add thousands of high-skilled, high-wage jobs to the U.S.
economy every year, cannot find the workers they need. Many firms have turned
to other countries, such as India, to find information technology workers. Some
companies are offering interest-free loans to people seeking education and training
in information technology. Colleges, universities, and private firms are expanding
course offerings and programs in information technology.
It is crucial for organizations to practice what they preach about human resources.
If people truly are their greatest asset, organizations must work to fulfil their human
resource needs of individual people in their companies.
If organizations want to be successful at implementing information technology
projects, they need to understand the importance of project human resource
management and take actions to make effective use of people.
Project human resource management includes the processes required to make the
most effective use of people involved with a project. Human resource management
includes all project stakeholders: sponsors, customers, project team members,
support staff, vendors supporting the project, and so on. The major processes
involved in human resources management includes:
● Organizational Planning, which involves identifying, assigning, and
documenting project roles, responsibilities, and reporting relationships.
Key outputs of this process include roles and responsibilities assignments,
often shown in a matrix form, and an organizational chart for the projects.
● Staff acquisition, which involves getting the needed personnel assigned to
and working on the project. Getting personnel is one of the crucial challenges
of information technology projects.
197
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
198
Chapter 12: Human Resource Management
199
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
200
Chapter 12: Human Resource Management
2. Begin with the end in mind: - Covey asks people to visualize their own
funerals to help them focus on how they really want to be remembered in
their lives.
3. Put first things first: - Project managers need to spend a lot of time working
on important and not urgent activities , such as developing the project plan,
building relationships with major project stakeholders, and mentoring project
team members. They also need to avoid focusing only on important yet urgent
activities.
4. Think win / win: - When you use a win / win paradigm , parties in potential
conflict work together to develop new solutions that make them all winners.
7. Sharpen the saw :- When you practice sharpening the saw , you take time to
renew yourself physically , spiritually, mentally and socially. The practice of
self- renewal helps people avoid burnout.
201
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Before creating an organizational chart for a project, senior management and the
project manager must identify what types of people are really needed to ensure
project success.
If the key to success lies in having the best Java programmers you can find, the
organizational planning should reflect that need. If the real key to success is having
top- notch project manager and team leaders whom people respect in the company,
that need should drive organizational planning.
After identifying important skills and the types of people needed to staff a project
, the project manager should work with senior management and project team
members to create an organizational chart for the project.
The project personnel include a deputy project manager, subproject managers and
teams.
Deputy project managers fill in for project managers in their absence and assist
him or her as needed, similar to the role of a vice president.
Subproject managers are responsible for managing the subprojects into which
large project might be divided.
This structure is typical for large projects, with many people working on a project,
clearly defining and allocating project work is essential. Smaller information
technology projects usually do not have deputy project managers or subproject
managers.
The project manager might have just team leaders reporting directly to them.
202
Chapter 12: Human Resource Management
Figure provides a framework for defining and assigning work. This process consists
of four steps :
1. Finalizing the project requirements
2. Defining how the work will be accomplished
3. Breaking down the work into manageable elements
4. Assigning work responsibilities
The work definition and assignment process is carried out during the proposal and
start up phase of a project.
A Request for Proposal (RFP) or draft contract often provides the basis for defining
and finalizing work requirements, which are then, documented in a final contract
and technical baseline.
If there is not an RFP, then internal project charter and scope statement would
provide the basis for defining and finalizing work requirements.
The project team leaders then decide on a technical approach for how to do the
work.
Once the project team has decided on a technical approach , they develop a work
breakdown structure (WBS) to establish manageable elements of work.
Once the project manager and project team have broken down the work into
manageable elements, the project manager assigns work to organizational units.
203
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
204
Chapter 12: Human Resource Management
WBS activities
OBS 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
Units System En- R RP
gineering
Software De- RP
velopment
Hardware RP
Development
Test Engi- P
neering
Quality As- RP
surance
Configura- RP
tion
Management
Integrated P
Logistics
Support
Training RP
A responsibility assignment matrix (RAM) is a matrix that maps the work of the
project as described in the OBS.
The RAM allocates work to responsible and performing organizations, teams, or
individuals, depending on the desired level of detail.
For smaller projects, it would be best to assign individual people to WBS activities.
For very large projects, it is more effective to assign the work to organizational
units or teams.
In addition to using a RAM to assign detailed activities, you can also use a RAM to
define general roles and responsibilities on projects. This type of RAM can include
the stakeholders in the project.
205
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Stakeholders
Items A B C D E
Unit Test S A I I R
Integration Test S P A I R
System Test S P A I R
User Accep- S P I A R
tance Test
206
Chapter 12: Human Resource Management
During the late 1990s, the information technology job market became extremely
competitive. Job market projections indicate that this highly competitive job market
is likely to continue well into 21st century. Thus, finding qualified information
technology professional – staff acquisition – is critical.
It is important to assign the appropriate type and number of resources to work on
projects at the appropriate times.
Resource loading and levelling is a project human resource management technique
that addresses this issue.
Even if you can find great workers and assign them well, if those professionals
cannot work together as a team, the project will not be successful.
Once professional have been hired to staff a project, team development becomes an
important issue.
12.5.1 Staff Acquisition
After developing a staffing management plan, project managers must work with
other people in their organizations to assign particular personnel to their projects or
to acquire additional human resource needed to staff the project.
Project managers with strong influencing and negotiating skills are often good at
getting internal people to work on their projects.
Organization must ensure that people are assigned to the projects that best fit their
skills and the needs of the organization.
Organizations that do a good job of staff acquisition have good staffing plans. These
plans describe the number and type of people who are currently in the organization
and the number and type of people anticipated to be needed for the project based on
current and upcoming activities.
An important component of staffing plans is maintaining a complete and accurate
inventory of employees’ skills.
If there is a mismatch between the current mix of people’s skills and needs of
organization, it is the project manager’ s job to work with senior management ,
human resource managers, and other people in the organization to address staffing
and training needs.
207
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
It is also important to have good procedures in place for hiring subcontractors and
recruiting new employees. Since the Human Resources Department is normally
responsible for hiring people, project managers, must work with their human
resources managers to address any problems recruiting appropriate people.
It is also priority to address retention issues, especially for information technology
professionals.
For example, several consulting companies give their employees one dollar for
every hour a new person hey helped hire works. It provides an incentive for current
employees to help attract new people and to keep both them and the person they
recruited working at that company.
Another approach that several companies are taking to attract and retain information
technology professionals is to provide benefits based on their personal needs.
For example, some people might want to work only four days a week or have the
option of working a couple of days a week from home.
208
Chapter 12: Human Resource Management
209
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Even if you have successfully recruited enough skilled people to work on a project,
you must ensure that people can work together as a team to achieve project, goals.
Many information technology projects have had very talented individuals working
on them. However, it takes teamwork to successfully complete most projects. The
main goal of team development is to help people work together more effectively
to improve project performance. There is an extensive body of literature on team
development. This section will highlight a few important tools and techniques
for team development including training, teambuilding activities, and reward and
recognition systems. It will also provide general advice on the effective use of
teams.
12.7.1 Training
Project managers often recommend that people take specific training course to
improve individual and team development. For example, Sarah from the opening
case had gone through training in dealing with difficult people. She was familiar
with the mirroring technique and felt comfortable using that approach with Ben.
Many other people would not have reacted so quickly and effectively in the same
situation. If Ben and Sarah did reach agreement on what actions they could take to
resolve the F-44 program’s information technology problems, it might result in a
new project to develop and deliver a new system for Ben’s group. If Sarah became
the project manager for this new project, she would understand the need for special
training in interpersonal skill for specific people in her and Ben’s departments.
Individuals could take special training classes to improve their personal skills. If
Sarah thought the whole project team could benefit from taking training together to
learn to work as a team, she could arrange for a special team-building session for
the entire project team and key stakeholders.
12.7.2 Team Building Activities
Many companies provide in-house team-building training activities, and many
also use specialized services provided by external companies that specialize in this
area. Two common approaches to team building activities include using physical
challenges and psychological preference indicator tools.
Several organizations have teams of people go through certain physically
challenging activities to be help them develop as a team. Military certain basic
training or boot camps provide one example. Men and women who wish to join
the military must first make it through basic training, which often involves several
210
Chapter 12: Human Resource Management
strenuous physical activities such as rappelling off towers, running and marching
in full military gear, going through obstacle courses, obstacle courses, passing
marksmanship training, and mastering survival training. Many companies use a
similar approach by sending teams of people to special locations where they work
as a team to navigate white water rapids, climb mountains or rocks, participate in
paintball exercises, and so on.
211
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
In a project setting, project managers can recognize and reward people who
willingly work overtime to meet an aggressive schedule objective or go out of their
way to help a teammate.
Project managers should not reward people who work overtime just to get extra pay
or as a result of their own poor work planning.
Effective project managers must be good team builders. Suggestions for ensuring
that teams are productive include the following:
• Be patient and kind with your team, and assume the best about people. Do not
assume that your team members are lazy and careless.
• Fix the problem instead of blaming people. Help people work out problems
by focusing on behaviours.
• Establish regular, effective meetings. Focus on meeting projects objectives
and producing positive results.
• Limit the size of work team to three to seven members.
• Plan some social activities to help project team members and other stake-
holders get to known each other better. Make the social eents fun and not
mandatory.
• Stress team identity. Create traditions that team members enjoy.
• Nurture team members and encourage them to help each other. Identify and
provide training that will help individuals and the team as a whole become
more effective.
• Acknowledge individual and group accomplishments.
212
Chapter 12: Human Resource Management
• Keep track of the where abouts of resources through stored information and
reports on resource assignments.
• Identify underutilized resources and reassign them, which may enable you to
shorten a project’s schedule and possibly reduce costs.
12.9 Summary
213
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
One of the most important skills of a good project manager is team development.
Teamwork helps people work more effectively to achieve project goals. Project
managers can recommend individual training to improve skills related to teamwork,
organize team-building activities for the entire project team and key stakeholders,
and provide reward and recognition systems that encourage teamwork.
Sample Questions
5. How could you use resource loading and resource levelling to ensure that a
project runs smoothly?
Reference Books:
vvv
214
UNIT 7Chapter 13: Managing Change, Resistance, and Conflict
13
MANAGING CHANGE,
RESISTANCE, AND CONFLICT
Unit Structure
13.0 Objective
13.1 Introduction
13.2 Developing The Core Team
13.3 The Nature Of Change
13.3.1 Change Has an Impact
13.3.2 Change Is a Process
13.3.3 Change Can Be Emotional
13.4 The Change Management Plan
13.4.1 Assess Willingness, Readiness and Ability to Change
13.5 Dealing With Resistance And Conflict
13.5.1 Resistance
13.5.2 Conflict
13.6 Ethics And Leadership
13.6.1 Ethics
13.6.2 Leadership
13.7 Ethical Leadership
13.8 Making Sound Ethical Decisions
13.9 Summary
215
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
13.0 Objective
• Describe how change can be viewed as process and identify the emotional
responses people might have when faced with change.
• Apply the concepts and idea in order to develop a change management plan.
• Discuss the nature of resistance and conflict and apply several techniques for
dealing with conflict and resistance in an efficient and effective way.
13.1 Introduction
216
Chapter 13: Managing Change, Resistance, and Conflict
underestimate this impact and given human nature, downplay the response people
will have. Manager and technical people may be given to false beliefs:
• We see the need for helping our people adjust, but we had to cut something.
• They have two choices: They can change or they can leave.
These statements reflect the view that it is easier to gain compliance than it is to
gain acceptance. This supposition is faulty because it assumes that everyone will
comply and that compliance will be long lasting .This results may be quite different:
• People will comply for a time and then do things to get around the change.
Peeter knew that he had to work well with people on his management team and
that they, in turn, had to work well with other project stakeholders. Peeter had
several strategy meetings with Arvid Lee, the head of the Information Services
people on the ResNet project , and Kathy (Krammer ) Christenson , the head of
software application development for the ResNet interface. They worked together
to determine how to motivate different people involved in the project . Kathy
came from marketing area, and she knew that the sales agents and other people in
marketing were very excited by themes , office decorations, gifts, contents, and so
on.
217
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Arvid knew that he and most other members of the Information services Department
would think those types of things were silly , but he fully supported the approach.
Arvid motivated the information services staff by providing them with challenging
work and keeping them informed of project progress.
Peeter was a hands- on manager and he felt that every single person involved in
ResNet was important. He gave a lot of responsibility to Arvid and Kathy, keeping
in constant communication with them and relying heavily on their judgements.
Peeter kept their project sponsor, Fay Beauchine, well informed of project’s
progress. He went out to talk to lower-level people Involved IN ResNet. He wanted
to know what everyone was doing and how h or she thought things were going.
Peeter had an excellent memory and made a point of having focused discussions
with all ResNet stakeholders.
Peeter provided resources to people as they were needed. In addition to hiring
professional actors to help his team run better meetings , he sent people to technical
training classes. He shared his experience and advice with others, and more
importantly, he worked with them to develop critical thinking skills. Peeter knew
that a key part of his job was supporting and developing his staff.
218
Chapter 13: Managing Change, Resistance, and Conflict
your new job, the company, and its people. Moving to a new city is relatively
easy compared to the transition. The move itself is a change that will occur fairly
quickly; the transition required to adjust to the change takes longer.
Assimilation is a process of adapting to change and determines our ability to handle
current and future change. Problems occur when we cannot assimilate change fast
enough. When an individual passes a certain threshold, he or she become stressed
out and exhibit dysfunctional behaviours. Therefore, it is important to manage the
assimilation of change to keep things below the change threshold.
Organizations are made up of people and these people have any number of
personal changes going on in their lives. Changes proposed by an organization
will certainly affect the way people work and the relationships that have become
established. Although these organizational changes will have to be assimilated by
each person, the organization must assimilate change similar to an individual. After
all, organizations are made up of people. Therefore, each change adopted by an
organization must be assimilated and managed within the change threshold. Just
like people, organizations can exhibit dysfunctional behaviours.
Change within an organization can affect different things in different ways. Leavitt’s
model, suggests that changes in people, technology, task, or organizational structure
can influence or impact the other areas.
These four components are interdependent, where a change in one can result in
a change in the others. For example, a change in the organization’s technology
(e.g., implementing a new information system) can impact the people within the
organization (e.g. new roles, responsibilities) as well as the tasks the individual’s
perform (i.e. the work they perform ), and the organization’s structure (i.e. , formal
or informal).
219
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
People do not necessarily resist change; they resist losses and endings. Unfreezing,
or moving from the current state, means letting go of something. Therefore, viewing
change from Lewin’s model suggests that beginning a change starts with an ending
of the present state.
220
Chapter 13: Managing Change, Resistance, and Conflict
Transition through the neutral zone also means a loss of equilibrium until an
individual or organization moves to the desired state. Once there, it is important
that the attitudes, behaviours, and perceptions be refrozen so that the desired state
becomes the new status quo and equilibrium for the individuals involved.
13.3.3 Change Can Be Emotional
An individual may have an emotional response to a change when the change is
perceived as a significant loss or upsets a familiar or well- established equilibrium.
It still provides some valuable insight for understanding how people may react to
significant changes that affect their lives. The five stages include:
Denial – The first stage is characterized by shock and denial. It is a common reaction
when a person is given first notice of a change that will have significant impact.
The initial news, however, provides a beginning for understanding the full impact
of change that is about to take place.
Anger – Once a person gets over the initial shock of the announcement, he or she
may become angry toward others, or even the messenger. The reaction is to blame
whoever is responsible for creating the change. Although anger is more active
emotional response, it can be a cathartic expression when people are allowed to
vent their emotions. Keep in mind that there is a difference feeling anger and acting
out in anger. While having feelings is always acceptable, the latter never is.
Bargaining – In the third stage, the person is no longer angry. In fact, he or she may
be quite cooperative and may try to make deals to avoid the change. For example,
the person who lost her job may begin making promises that she will “double my
productivity” or “take a cut in pay” in order to avoid being let go. A person may
look for ways to extend the status quo, or the present equilibrium, by trying to
“work things out.”
Depression- Once a person admits that the change is inevitable, he or she may
understand the full impact of the change and may enter the fourth stage – depression.
This stage generally occurs when there is an overwhelming sense of the loss of the
status quo. Although losing a job involves losing income , most people become
depressed because they also lose the identity associated with their job.
Acceptance – The last stage is when a person comes to grips with the change. A
person does not have to like the change in order to accept it. This fifth stage has
more to do with one’s resolve that the change is inevitable and must be dealt with.
Acceptance is an important part of ending the status quo and getting on with a new
state.
221
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
The key to any organizational change is to plan for and manage the change and the
associated transition effectively. Depending on the size and impact of the change
initiative, the change management plan can be an informal or formal document;
however, the project team and sponsor should address and be clear on several
important areas.
13.4.1 Assess Willingness, Readiness and Ability to Change
The first step to developing a change management plan is to assess the organization’s
willingness, readiness, and ability to change.
Conner defines several roles or players involved in a change initiative : sponsor
,change agent s , and targets.
Sponsor: - The sponsor can be an individual or group that has the willingness and
power, in terms of authority and making resources available, to support the project.
Although this person or group is often the project sponsor, an initiating sponsor
may hand off the project to a sustaining sponsor. More specifically, after making
the decision to fund and support the project, the initiating sponsor may become
completely removed from the project. Without the support of a sustaining sponsor,
the project will eventually lose steam and direction. Therefore, the sustaining
sponsor must become the primary sponsor for the project.
222
Chapter 13: Managing Change, Resistance, and Conflict
A major portion of the organization’s ability and willingness to support the change
rests with the sponsor’s commitment to the project and the associated change
that will impact the organization. This commitment may be in terms of how they
communicate with the rest of the organization, how they deal with challenges
and issues, and the amount and quality of resources made available. In addition,
sponsors must effective leaders. If the project fails because the organization cannot
adopt to change, the project’s envisioned value to the organization is lost and the
sponsor’s credibility is diminished.
Change Agents – In the most basic terms, the change agents will be the project
manager and team; however, others from inside or outside the organization may be
involved as well. An agent may be individual or group responsible for making the
change happen in order to achieve the project’s goal and objectives. Change agents
report directly to the sponsor and must be able to diagnose problems, plan to deal
with these issues and challenges effectively, and act as a conduit of communication
between sponsor and the targets of change. The ability to sustain the change
associated with the IT project rests largely with the change agents. They must be
ready and properly prepared to meet the challenges they face.
Targets - The target is individual or group that must change. In general, these may
be the users of the new system or those who will use or be directly involved with
the final product of the change effort and who play a critical role in the ultimate
success of the project.
Although the project sponsors and change agents play important roles in supporting
and carrying out the change effort, the dynamics associated with the targets of
change become the most critical. Therefore, the willingness, ability and readiness
to change also rest largely with the change targets.
It may require:
1) Clarifying the real impacts of the change
2) Understanding the breadth of change
3) Defining what’s over and what’s not and
4) Determining whether the rules for success have changed.
The project team and sponsor often do not think about how the planned change
and transition will really affect people within the organization. Change often brings
about endings and a sense of loss of control. The project team and sponsor should
take time to think about what various individuals or group stand to lose.
For example, perceptions of loss may include power, relationships with other
people, stability, or even control. As a result, people may become confused and
disoriented.
223
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
13.5.1 Resistance:-
Resistance should be anticipated from the outset of the project. Rumours and gossip
will add fuel to the fire, and the change effort can run out of steam if those affected
by the change begin to resist. Resistance can be either overt, in the form of memos,
meetings, and so on , or covert, in the form of sabotage, foot dragging, politicking
etc. Once the change is compromised, management and the project team will lose
credibility, and the organization may become resistant to all future changes.
Resistance can arise for many valid reasons. For example, someone may resist
an information system because the response time is slow or because it does not
provide the features or functionality that were originally specified as part of the
requirements.
On the other hand, resistance due to cultural or behavioural reasons is harder to
rationalize, but still can keep a project from reaching its intended goal. People may
resist change even though they understand that the change will be beneficial.
For example:
• Some people perceive the change as requiring more time and energy than
they are willing to invest.
• Sometimes, people feel that a change will mean giving up something that is
familiar, comfortable, and predictable.
• People may be annoyed with the disruption caused by change , even if they
know that it will be beneficial n long run.
• People may believe that the change is being imposed on them externally, and
their egos will not tolerate being told what to do.
• In addition, people may resist because of the way the decision to change was
announced or because it was forced on them.
Resistance is human nature and a natural part of any change process. Understanding
what an individual or group perceives a loss is the first step to dealing with resistance
effectively.
Because the project team and sponsor are agents of change, the project team and
sponsor have had the luxury of knowing about the change early and, therefore,
have had a time to become used to it. The rest of the organization, however, may
224
Chapter 13: Managing Change, Resistance, and Conflict
learn about the change much later and , therefore , may not be at the same place for
digesting the change,
Subsequently, it is important that the project team and sponsor listen to what the rest
of the organization is saying. Instead of arguing and trying to reason, it is better to
allow people to vent their anger and frustration. Again, having defined a boundary
of what is and what is not part of the change can help deal with stressful conflict
situations. Keep in mind that empathizing or sympathizing with an individual is not
same as agreeing with them.
13.5.2 Conflict
Closely associated with resistance is the concept of conflict. Conflicts arise when
people perceive that their interests and values are challenged or not met. Conflict
management focuses on preventing, managing, or resolving conflicts. Therefore, it
is important to identify potential conflicts as early as possible so that the conflict
can be addressed. Although conflict can be positive and help form new ideas and
establish commitment , negative conflict left unresolved can lead to damaged
relationships, mistrust, unresolved issues, continued stress, dysfunctional behaviour
, and low productivity and morale.
There are three different views of conflict
Traditional view – It considers conflict in a negative light and feels that conflict
should be avoided. Conflict, according to this view, leads to poor performance,
aggression, and devastation if left to escalate. Therefore, it is important to manage
conflict by suppressing it before it occurs or eliminating it as soon as possible.
Harmony can be achieved through authoritarian means, but root causes of the
conflict may not be adequately addressed.
Contemporary view - The contemporary view, on the other hand, suggests that
conflict is inevitable and natural. Depending on how conflict is handled, conflict
can be either positive or negative.
Positive conflict among people can stimulate ideas and creativity; however, negative
conflict can have damaging effects if left unresolved. Therefore, positive conflict
should be encouraged while keeping negative conflict in check.
Interactionist view - It holds that conflict is an important and necessary ingredient
for performance. Although the contemporary view accepts conflict, if too
harmonious or tranquil. Subsequently, the project manager should occasionally stir
the pot in order to encourage conflict to an appropriate level so that people engage
in positive conflict. This may, however, be a fine line to walk for many project
225
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
managers. Although someone who plays the role of the devil’s advocate can be
effective in many situations, people may become annoyed when it is used in every
situation, or used ineffectively.
To better understand the nature of conflict, projects can fit one, or a combination,
of three categories:
• Conflicts associated with the goals, objectives, or specifications of the project.
• Conflicts associated with the administration, management structures, or
underlying philosophies of the project.
• Conflicts associated with the interpersonal relationships among people based
on work ethics, styles, egos, or personalities.
Avoidance- Avoiding conflict focuses on retaining, withdrawing, or ignoring
conflict. Sometimes, a cooling –off period may be a wise choice, especially when
emotions and tempers are high. Avoidance may be appropriate when you can’t win,
the stakes are low, or gaining time is important. However, it may not be useful when
the immediate, successful resolution of an issue is required.
Accommodation - Accommodation, or smoothing, is an approach for appeasing
the various parties in conflict. This approach may be useful when trying to reach
an overall goal when the goal is more important than the personal interests of the
parties’ involved. Smoothing may also be effective when dealing with an issue that
has low risk and low return or when in a no-win situation. Because accommodation
tends to work only in the short run, conflict may reappear in another form later on.
Forcing – When using this approach, a person uses his or her dominant authority to
resolve the conflict. This approach often results in a one-sided or win- lose situation
in which one party gains at the other’s expense. This approach may be effective
when no common ground exists, or when time is of the essence. Forcing resolution
may, however, cause the conflict to redevelop later because people dislike having a
decision or someone else’s views imposed on them.
Compromise – Compromise includes aspects of both forcing and accommodation;
it gives up more than forcing and less than accommodation. Compromise is
essentially bargaining – one person or group gives up something n exchange for
gaining something else. In this case, no party actually wins and none actually loses,
so that some satisfaction is gained from resolution of the conflict. This approach
may be useful when the risks and rewards are moderately high. Unfortunately,
important aspects of a project may be compromised as a means of achieving short-
term results- for example, quality standards may be compromised in order to meet
226
Chapter 13: Managing Change, Resistance, and Conflict
227
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Inspire a shared vision – An exemplary leader has an exciting vision or dream that
acts as a force for inventing the future. In turn, vision should inspire people so they
become committed to a purpose. A leader must engage in dialogue, not monologue,
to understand the hopes and dreams of others and gain their support.
Challenge the process - Exemplary leaders do not rely on fate or luck. They
venture out and accept challenges. Leaders are pioneers who challenge the status
quo by seeking out new opportunities to innovate, grow, and improve. However,
most leaders do not create, develop, or come up with new products, services
or processes. Leaders accept risk and failure, they minimize it by taking and
encouraging others to make incremental steps. They strive for small wins to boost
confidence, commitment, and learning.
Enable others to act - Leaders provide an environment that makes it possible for
others to do good work. People should feel empowered and motivated to do their
best, feel a sense of ownership, and take pride in what they do. A leader enables
others to act by giving power away , not hanging onto it .People should be made
to feel strong and capable; otherwise , they will not give their best or stay around
very long.
Encourage the hearts – Exemplary leaders rally others to carry on by encouraging
the heart. It can be simple gesture such as a thank –you note or something
more dramatic like a marching band , the leader should show appreciation for
people’s contributions and create a culture of celebration that recognizes those
accomplishments.
An ethical leader is someone who makes it clear that bottom-line results are
important, but only if they can be achieved in an ethical manner. Moreover, research
suggests that when a culture is viewed as being ethical , employees tend to engage
in fewer unethical behaviours, are more committed to the organization, and more
willing to report problems to management.
Some of common ethical situations are
Human resource situations - Project leaders must ensure that qualified team
members are recruited and retained. Issues that can lead to ethical situations include
discrimination, privacy, sexual, or other types of harassment, as well as appraisals,
discipline, hiring, firing, and layoff policies and decisions.
228
Chapter 13: Managing Change, Resistance, and Conflict
• Define the ethical issue- A number of related and interwoven issues may
complicate things once we begin to realize them.
229
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
• Check your gut- Empathy should not be discarded over logic because it can
raise a warning flag that someone might be harmed. Making a decision based
solely on emotion is probably not a good idea either. Cheking your gut should
be a final stage of process that provides confidence in action or decision.
13.9 Summary
230
Chapter 13: Managing Change, Resistance, and Conflict
Sample Questions
Reference Books:
vvv
231
UNIT 8
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
14
SOFTWARE RISK MANAGEMENT
Unit Structure
14.0 Objective
14.1 Introduction
14.10 Summary
232
Chapter 14: Software Risk Management
14.0 Objectives
• Define risk identification and causes , effects , and nature off project risks.
• Apply several analysis techniques that can be used to prioritize and analyze
various project risks.
• Describe the various risk strategies
• Describe the risk monitoring and control
• Describe risk evaluation in terms of how the entire risk management process
should be evaluated in order to identify best practices.
14.1 Introduction
Project risk management provides an early warning system for problems that need
to be addressed or resolved .Although risk has a certain negative connotation ,
project stakeholders should be vigilant in identifying opportunities. Although
many associate uncertainty with threats, it is important to keep in mind that there is
uncertainty when pursuing opportunities, as well.
Plan risk management determines how to approach and plan the project risk
management activities.an output of this process is the development of arisk
management plan.
Deciding which risks impact the project. Risk identification generally includes
many of the project stakeholders and requires an understanding of the project’s goal
, as well as the project’s scope ,schedule,budget , and quality objectives.
Developing procedures and techniques to reduce the threats of risks, while enhancing
the likelihood of opportunities.
Risk analysis and management are series of steps that help a software team to
understand and mange uncertainty.
Many problems can plague a software project .A risk is a potential problem –it
might happen it might not.
14.2.1 Steps of Risk Analysis and Management
1. Recognizing what can go wrong is the first step , called “risk identification.”
2. Each risk is analyzed to determine the likelihood that it will occur and the
damage that it will do if it does occur.
233
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
4. Finally, a plan is developed to manage those risks with high probability and
high impact.
In short, the four steps are
• Risk Identification
• Risk Projection
• Risk Assessment
• Risk Management
Risk always involves two characteristics a set of risk information sheets is produced.
• Uncertainty - the risk may or may not happen; that is, there are no 100 %
probable risks.
234
Chapter 14: Software Risk Management
• Known risks are those that can be uncovered after careful evaluation of the
project plan.
• Unpredictable risks – are the joker in the deck. They can do occur, but they
are extremely difficult to identify in advance.
• Product size – risks associated with overall size of the software to be built or
modified.
235
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
• Process definition - risks associated with the degree to which the software
process has been defined and is followed by the development organization.
• Staff size and experience - risks associated with the overall technical and
project experience of the software engineers who will do the work.
14.5.1 Assessing Overall Project Risk
Is the software project we are working on at serious risk?
The questions are ordered by their relative importance to success of a project.
1. Have top software and customer managers formally committed to support the
project?
2. Are end –users enthusiastically committed to the project and the system/
product to be built?
3. Are requirements fully understood by the software engineering team and their
customers?
4. Have customers been involved fully in the definition of requirements?
5. Do end –users have realistic expectations?
6. Is the project scope stable?
7. Does the software engineering team have the right mix of skills?
8. Are project requirements stable?
9. Does the project team have experience with the technology to be implemented?
10. Is the number of people on the project team adequate to do the job?
11. Do all customer/ user constituencies agree on the importance of the project
and on the requirements for the system/ product to be built?
236
Chapter 14: Software Risk Management
• Performance risk- the degree of uncertainty that the product will meet its
requirements and fit for its intended use.
• Cost risk - the degree of uncertainty that the project budget will be maintained.
• Support risk – the degree of uncertainty that the resultant software will be
easy to correct, adapt, and enhance.
• Schedule risk- the degree of uncertainty that the project schedule will be
maintained and that the product will be delivered on time.
The impact of each risk driver on the risk component is divided into one of four
impact categories– negligible, marginal, critical, or catastrophic.
Components Performance Support Cost Schedule
Category
237
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Risk projection , also called risk estimation, attempts to rate each risk in two ways
– the likelihood or probability that the risk is real and the consequences of the
problems associated with the risk , should it occur.
The project planner, along with other managers and technical staff , performs four
risk projection activities.
3. Estimating the impact of the risk of the project and the product.
4. Noting the overall accuracy of the risk projection so that there will be no
misunderstandings.
238
Chapter 14: Software Risk Management
i) A risk table provides a project manager with a simple technique for risk
projection.
ii) A sample risk table is illustrated in Figure. The risk table is sorted by
probability and impact to rank risks.
iii) A project team begins by listing all risks in the first column of the table. This
can be accomplished with the help of risk item checklists referenced. Each
risk is categorized in the second column (e.g. PS implies a project size risk,
BU implies business risk).
iv) The probability of occurrence of each risk is entered in the next column of the
table. The probability value for each risk can be estimated by team members
individually. Individual team members are polled in round –robin fashion
until their assessment of risk probability begins to converge.
vi) The categories for each of four risk components – performance, support, cost,
and schedule- are averaged to determine an overall impact value.
239
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
vii) Once the first four columns of the risk table have been completed , the table
is sorted by probability and by impact. High –probability, high –impact risks
percolate to the top of the table, and low –probability risks drops drop to
bottom.
viii) This accomplishes first- order risk prioritization. The project manager studies
the resultant sorted table and defines a cutoff line. The cutoff line implies that
only risks that lie above the line will be given further attention.
ix) Risks that fall below the line are re- evaluated to accomplish second- order
prioritization.
x) A risk factor that has a high impact but a very low probability of occurrence
should not absorb a significant amount of management time.
xi) All risks that lie above the cut off line must be managed.
xii) The column labeled RMMM contains a pointer into a Risk Mitigation,
Monitoring and Management Plan or alternatively, a collection of risk
information sheets developed for all risks that lie above the cutoff.
How do we assess the consequences of a risk?
The following steps are recommended to determine the overall consequences of a
risk.
i) Determine the average probability of occurrence value for each risk
component.
ii) Using figure determine the impact for each component based on criteria
shown.
iii) Complete the risk table and analyze the results as described in the preceding
sections.
The overall risk exposure RE, is determined using the following relationship
RE = P * C
Where P is probability of occurrence for a risk, and C is cost to the project should
the risk occur.
240
Chapter 14: Software Risk Management
At this point in the risk analysis process we have established a set of triples of the
form:
[ ri ,li ,xi ]
Where ri is risk, li is the likelihood (probability) of the risk, and xi is the impact of
the risk.
During risk assessment, we further examine the accuracy of the estimates that were
made during risk projection, attempt to rank the risks that have been uncovered,
and begin thinking about ways to control and / or avert risks that are likely to occur.
• High staff turnover in any organization will have a critical impact on project
cost and schedule.
• To mitigate the risk, project management must develop a strategy for reducing
turnover.
Among the possible steps to be taken are
n Meet with current staff to determine causes for turnover * Mitigate
those causes that are under our control before the project starts.
241
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
n Once the project commences, assume turnover will occur and develop
techniques to ensure continuity when people leave.
2. The RMMM plan documents all work performed as part of risk analysis and
is used by the project manager as part of the overall project plan
4. Once RMMM has been documented and the project has begun, risk mitigation
and monitoring steps commence.
Risk monitoring is a project tracking activity with three primary objectives:
2) To ensure that risk aversion steps defined for the risk are being properly
applied
3) To collect information that can be used for future risk analysis. In many cases,
the problems that occur during a project.
242
Chapter 14: Software Risk Management
14.10 Summary
Risk identification should include identifying both threats and opportunities. Since
most risks are interrelated and can affect the project in different ways, the project
stakeholders should take a broad view of project risks.
Risk assessment allows the project stakeholders to determine what risks require a
response. The goal of project risk management is not to avoid each and every risk
at all costs, but to make well- informed decisions as to which risks are worth taking
243
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
and which risks require a response. A well informed decision requires an analysis
of the probability of a particular risk occurring and its likely impact.
Risk strategies define how the project stakeholders will respond to risk. It include
(1) accepting or ignoring the risk (2) avoiding the risk (3) mitigating or reducing the
likelihood and / or impact of the risks , and (4) transferring the risk to someone else.
Once the risk response plan has been completed and the project is underway, the
various risks identified must be monitored and controlled. This process should
include vigilance on the identified and unidentified threats and or opportunities. As
these risks present themselves, project risk owners should make resources available
and respond to risk in an appropriate manner, as outlined in the risk response plan.
Risk evaluation provides a key to learning and identifying best practices. A formal
and documented evaluation of a risk response or episode can help an organization
evaluate its entire risk management approach and provide insight for future project
teams that may have to deal with a similar risk in the future.
Sample Questions:
1) What is project risk?
2) What is project risk management?
3) What is the purpose of risk analysis and assessment?
4) What is risk monitoring and control?
5) Why can identifying IT project risks be difficult?
6) Discuss the risk strategies?
Reference Books:
11. Software Engineering, 5th and 7th edition, by Roger S Pressman, McGraw Hill
publication.
12. Managing Information Technology Project 6thedition , by Kathy Schwalbe ,
Cengage Learning publication.
13. Software Engineering 3rd edition by KK Agarwal , Yogesh Singh , New Age
International publication.
14. Information Technology Project Management by Jack T Marchewka Wiley
India publication.
15. Software Engineering for students: A Programming Approach by Douglas
Bell, Pearson publication.
16. Software Engineering Project Management by Richard H. Thayer Wiley
India Publication.
vvv
244
UNIT
UNIT8 8 Chapter 15: Software Reliability Issues
15
SOFTWARE RELIABILITY ISSUES
Unit Structure
15.0 Objective
15.1 Introduction
15.2 A Framework For Technical Software Metrics
15.3 The Attributes Of Effectives Software Metrics
15.4 Metrics For The Analysis Model
15.5 Metrics For The Design Model
15.6 Component-Level Design Metrics
15.7 Metrics For Source Code
15.8 Metrics For Testing
15.9 Metrics For Maintenance
15.10 Summary
15.0 Objective
● A software engineer needs objective criteria to help guide the design of data,
architecture, interfaces, and components.
● Technical metrics provide a basis from which analysis, design, coding, and
testing can be conducted more objectively and assessed more quantitatively.
245
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
15.1 Introduction
The first step in the measurement process is to derive the software measures and
metrics that are appropriate for the representation of the software that is being
considered. Data required to derive the formulated metrics are collected. Once
computed, appropriate metrics are analyzed based on pre- established guidelines
and fast data. The results of the analysis are interpreted to gain insight into the
quality of the software, and the results of the interpretation lead to modification of
the work products arising out of analysis, design, and code or test.
Software quality factors focus on three important aspects of a software product :its
operational characteristics ,its ability to undergo change, and its adaptability tonew
environments.
Reliability refers to extent to which a program can be expected to perform its
intended function with required precision.
Correctness refers to extent to which a program satisfies its specification and fulfils
the customer’s mission. Efforts are required to locate and fix an error in a program
and modify an operational program and to test a program to ensure that it performs
its intended functions.
246
Chapter 15: Software Reliability Issues
The principles that can be associated with the formulation of technical metrics are
● Metrics should be derived based on a theory that is valid for the domain of
application (e.g., metrics for design should draw upon basic design concepts
and principles and attempt to provide an indication of the presence of an
attribute that is deemed desirable).
247
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
• Consistent and objective. The metric should always yield results that are
unambiguous. An independent third party should be able to drive the same
metric value using the same information about the software.
Technical work in software engineering begins with the creation of the analysis
model. It is at this stage that requirements are derived and that a foundation for
design is established. Therefore, technical metrics that provide insight into the
quality of the analysis model are desirable.
248
Chapter 15: Software Reliability Issues
249
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
We examine some of the more common design metrics for computer software.
Each can provide the designer with improved insight and all can help design to
evolve to a higher level of quality.
Architectural Design Metrics
Architectural design metrics focus on characteristics of the program architecture
with an emphasis on the architectural structure and the effectiveness of modules.
These metrics are black box in the sense that they do not require any knowledge of
the inner working of a particular software component.
The U.S. Air Force uses information obtained from data and architectural design to
derive a design structure quality index (DSQI) that ranges from 0 to1. The following
values must be ascertained to compute the DSQI:
250
Chapter 15: Software Reliability Issues
1. Cohesion metrics
Bieman and ott define a collection of metrics that provide an indication of the
cohesiveness of a module. The metrics are defined in terms of five concepts
and measures:Data slice. Stated simply, a data slice is a backward walk
through a module that looks for data values that affect the module location
at which the walk began. It should be noted that both program slices (which
focus on statements and conditions) and data slices can be defined.
Data tokens. This variables defined for a module can be defined as data
tokens for the module.
Glue tokens. This set of data tokens lies on one more data slice.
Superglue tokens. These data tokens are common to every data slice in a
module.
251
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
2. Coupling metrics.
Module coupling provides an indication of the “connectedness” of a module
to other modules, global data, and the outside environment.
For data and control flow coupling,
di = number of input data parameters
ci = number of input control parameters
do = number of output data parameters
co = number of output control parameters
For global coupling,
gd= number of global variables used as data
gc=number of global variables used as control
For environmental coupling,
W= number of modules called (fan-out)
r = number of modules calling the module coupling indicator, mc, is defined in the
following way:
mc=k / M
where k=1, a proportionality constant 8 and
M=di + (a_ci) + do+ (b_co)+ gd+ (c_gc)+ w+ r
Where a=b=c=2.
The higher the value of mc, the lower is the overall module coupling.
3. Complexity metrics
Complexity metrics can be used to predict critical information about reliability
and maintainability of software systems from automatic analysis of source
code [or procedural design information]. Complexity metrics also provide
feedback during the software project to help control the [design activity].
During testing and maintenance, they provide detailed information about
software modules to help pinpoint area of potential instability.
The most widely used (and debated) complexity metric for computer software
is cyclomatic complexity, originally developed by Thomas Mc Cabe and
discussed earlier.
252
Chapter 15: Software Reliability Issues
For a specific layout (i.e., a specific GUI design), cost can be assigned to each
sequence of actions according to the following relationship:
Cost = [frequency of transition (k)*cost of transition (k)]
Where, k is a specific transition from one layout entity to the next as a specific
task is accomplished. The summation occurs across all transitions for a particular
task or set of tasks required to accomplish some application function. Cost may
be characterized in terms of time, processing delay, or any other reasonable value,
such as the distance that a mouse must travel between layout entities. Layout
appropriateness is defined as
LA=100*[(cost of LA-optimal layout)/(cost of proposed layout)]
Where LA= 100 for an optimal layout.
253
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
Function-based metrics can be used as a predictor for overall testing effort. Various
project-level characteristics (e.g., testing effort. Various project-level characteristics
(e.g., testing effort and time, errors uncovered, number of test cases produced) for
past projects can be collected and correlated with the number of FP produced by a
project team. The team can then project “excepted values” of these characteristics
for the current project.
The number of functional primitives (FuP), data elements (DE), objects (OB),
relationships (RE), states (ST), and transition (TR), can be used to project the
number and type of black-box and white-box tests for the software.
For example, the number of tests associated with the human/computer interface can
be estimated by
Examining the number of transitions (TR) contained in the state transition
representation of the HCI and evaluating the test required to exercise each transition;
Examining the number of data objects (OB) that move across the interface, and
The number of data elements that are input or output.
Architectural design metrics provide information on the ease or difficulty associated
with integration testing (Chapter 18) and the need for specialized testing software
(e.g., stubs and drivers). Cyclomatic complexity (a component –level design
metric) lies at the core of basis path testing. In addition, cyclomatic complexity can
254
Chapter 15: Software Reliability Issues
be used to target modules as candidates for extensive unit testing. Modules with
high cyclomatic complexity are more likely to be error prone than modules whose
cyclomatic complexity is lower. For this reason, the tester should expend above
average effort to uncover errors in such modules before they are integrated in a
system.Testing effort to uncover errors in such modules before they are integrated
in a system. Testing effort can also be estimated using metrics
Derived from the definitions for program volume, V, and program level, PL,
software science effort, e, can be computed as
PL=1/[(n1/2) (N2/n2)]
e=V/PL
The percentage of overall testing effort to be allocated to a module k can be estimated
using the following relationship:
Percentage of testing effort (k)=e(k)/ ∑ e(i)
Where e(k) is computed for module k and the summation in the denominator of
Equation is the sum of software science effort across all modules of the system.
All of the software metrics introduced in this chapter can be used for the
development of new software and the maintenance of existing software. However,
metrics designed explicitly for maintenance activities have been proposed.
IEEE Std. suggests a software maturity index (SMI) that provides an indication of
the stability of a software product (based on changes that occur for each release of
the product).
The following information is determined:
MT=the number of modules in the current release
Fc= the number of modules in the current release that have been changed
Fa=the number of modules in the current release that have been added
Fd= the number of modules from the preceding release that were deleted in the
current release
The software maturity index is computed in the following manner:
SMI = [MT-(fa + Fc + Fd)]/MT
As SMI approach 1.0, the product begins to stabilize. SMI may also be used as
metric for planning software maintenance activities.
255
SOFTWARE ENGINEERING AND PROJECT MANAGEMENT
15.10 Summary
The first step in the measurement process is to derive the software measures and
metrics that are appropriate for the representation of the software that is being
considered. Data required to derive the formulated metrics are collected. Once
computed, appropriate metrics are analyzed based on pre- established guidelines
and fast data.
Reliability refers to extent to which a program can be expected to perform its
intended function with required precision.
The objectives of measurement should be established before data collection begins.
Each technical metric should be defined in an unambiguous manner. Metrics should
be derived based on a theory that is valid for the domain of application (e.g., metrics
for design should draw upon basic design concepts and principles and attempt to
provide an indication of the presence of an attribute that is deemed desirable).
Technical work in software engineering begins with the creation of the analysis
model. It is at this stage that requirements are derived and that a foundation for
design is established. Therefore, technical metrics that provide insight into the
quality of the analysis model are desirable.
Characteristics that can be used to asses the quality of the analysis model and
the corresponding requirements specification: specificity (lack of ambiguity),
completeness, correctness, understandability, verifiability, internal and external
consistency, achievability, concision, traceability, modifiability, precision and
reusability.
Architectural design metrics focus on characteristics of the program architecture
with an emphasis on the architectural structure and the effectiveness of modules.
Components-level design metrics focus on internal characteristics of a software
engineer to judge the quality of a component-level design.
256
Chapter 15: Software Reliability Issues
Sample Questions:
1. Explain framework for technical software metrics?
2. What are the attributes of effective’s software metrics?
3. Explain metrics for the analysis model
4. What are metrics for the design model?
5. Explain component-level design metrics?
6. What are metrics for source code?
7. Explain metrics for testing?
8. What are metrics for maintenance?
Reference Books:
7. Software Engineering, 5th and 7th edition, by Roger S Pressman ,McGraw Hill
publication.
8. Software Engineering 3rd edition by KK Agarwal, Yogesh Singh,New Age
International publication.
9. Software Engineering for students : A Programming by Douglas Bell, Pearson
publication.
10. Information Technology Project Management by Jack T Marchewka Wiley
India publication.
11. Managing Information Technology Project 6th edition , by Kathy Schwalbe,
Cengage Learning publication.
12. Software Engineering Project Management by Richard H.Thayer Wiley India
Publication.
vvv
257