Software Process Improvement
CS7xx
Dr. Ghulam Ahmad Farrukh
1
Agenda
• Objectives of this course
• What is a process?
• What is a software process? Why we need
them
• Process models
• Process improvement
2
Objectives of This Course 1
• To introduce students to the basics of
software process and process improvement
• To teach students about the activities and
issues software process engineering
• To teach students different software process
improvement approaches
3
Objectives of This Course 2
• To teach students concept of measurements
and how it applies to software processes
• To introduce students advance and potential
research topics in software process
engineering
4
Objectives of This Course 3
• Provide an academic/theoretical
background in the class room about an
interesting area of research and practice
• Let students explore the local industry and
understand their processes and suggest an
improvement strategy
5
Processes
• Processes are part of all aspects of life and
are an essential mechanism for coping with
complexity in the world
• Description of processes are very important
because they allow knowledge to be reused
6
What is a Process?
7
What is a Process?
• Once someone has worked out how to solve
a problem, they can document the way in
which that solution was derived as a process
• This then helps other people faced with
similar problems to get started on their own
solutions
8
Examples of Processes 1
• An instruction manual for a kitchen
dishwasher describes the process of using
that machine to clean dishes
• A cookery book describes a set of processes
to prepare and cook various different types
of meals
9
Examples of Processes 2
• A procedures manual in a bank describes
the ways in which different banking
processes such as agreeing a personal loan,
correcting errors, etc. should be carried out
• A quality manual for software development
describes the processes which should be
used to assure the quality of the software. It
may include descriptions of standards
which are basis for the quality checking 10
Software Process
11
Software Problems
• Technical
– Need a technical solution
– Easy to understand and solve
• Systemic
– Difficult to understand and solve
– Need a process/management solution
12
Solution to Software Problems
• Treat the software task as a process that can
be controlled, measured, and improved
• Relate the required tasks, tools, methods
with skill, training, and motivation of
people involved
13
Software Processes
• Software engineering, as a discipline, has
many processes
• These processes help in performing
different software engineering activities in
an organized manner
14
Software Process
• The software process is the set of tools, methods,
and practices that people use to produce (develop
and maintain) software and associated products ,
e.g., project plans, design documents, code, test
cases, and user manuals
• Where are the people? Aren’t they the most
important part of an organization?
15
Characteristics of Software
Processes
• Requires creativity
• Interactions between a wide range of
different people
• Engineering judgment
• Background knowledge
• Experience
16
Examples of Software Processes
• Software engineering development process
(SDLC)
• Requirements engineering process
• Quality assurance process
• Change management process
• Design process
17
Process Management
Basic Concepts
18
Basic Concepts 1
• The objectives of software process
management are produce products
according to plan while simultaneously
improving the organization’s capability to
produce better products
• The basic principles are those of statistical
process control, which have been used
successfully in many fields
19
Basic Concepts 2
• A process is said to be stable or under
statistical control if its future performance is
predictable within established statistical
limits
• When a process is under statistical control,
repeating the work in roughly the same way
will produce roughly the same result
20
Basic Concepts 3
• To obtain consistently better results, it is
thus necessary to improve the process
• If the process is not under statistical control,
sustained progress is not possible until it is
• The basic principle behind statistical control
is measurement
21
Lord Kelvin Said
• When you can measure what you are speaking
about, and express it in numbers, you know
something about it; but when you cannot
measure it, when you cannot express it in
numbers, your knowledge is of a meager and
unsatisfactory kind; it may be the beginning of
the knowledge, but you have scarcely in your
thoughts advanced to the stage of science
22
Basic Concepts 4
• You cannot just start to use numbers to
control things
• The numbers must properly represent the
process being controlled, and they must be
sufficiently well defined and verified to
provide a reliable basis for action
23
Basic Concepts 5
• While process measurements are essential
for orderly improvement, careful planning
and preparation are required or the results
are likely to be disappointing
• The mere act of measuring human
processes changes them
24
Basic Concepts 6
• Since people’s fears and motivations are
involved, the results must be viewed in a
different light from data on natural
phenomenon. It is thus essential to limit the
measurements to those with predefined use
25