|
|||||
Software
Project Management
(CS615)
Figure
1: Quality
Assurance
LECTURE
# 20
3.
Processes
3.1
Software
Process
When
you build a product or
system, it's important to go
through a series of
predictable
steps a road map that helps
you create a timely,
high-quality result,
The road
map that you follow is
called a 'software process'
.
Software
engineers and their managers adapt
the process to their needs
and then
follow
it. In addition, the people
who have ties defined by the
process requested
the
software play a role in the
software process.
It
provides stability, control, and
organization to an activity that
can, if left
uncontrolled,
become quite chaotic.
At a
detailed level, the process
that you adopt depends on
the software you're
building.
One process might be
appropriate for creating
software for an
aircraft
avionics
system, while an entirely
different process would be
indicated for the
creation
of a web site.
From
the point of view of a
software engineer, the work
products are the
programs,
documents and data produces as a
consequence of the
software
engineering
activities defined by the
process.
A number
of software process assessment mechanisms
enable organizations to
determine
the "maturity" of a software
process. However, the
quality, timeliness
and
long-term viability of the
product you build are
the best indicators of
the
efficacy
of the process that you
use.
A common
process framework is established by
defining a small number
of
framework
activities that are
applicable to all software
projects, regardless of
their
size or
complexity. A number of task
sets-each
a collection of software
engineering
work tasks, project milestones,
work products, and quality
assurance
points
enable the framework activities to be
adapted to the characteristics of
the
software
project and the requirements of
the project team. Finally,
umbrella
activities-such
as software quality assurance,
software configuration
management,
and measurement -
overlay the process model.
Umbrella activities
are
independent
of anyone framework activity and
occur through- out the
process.
128
Software
Project Management
(CS615)
Common
process
Framework
activities
Tasks
Tasks
Milestones,
SQA
points
Figure
1: The
software Process
⇒ Software
Process Vs Software
Engineering
But
what exactly is a software
process from a technical
point of view? A software
process
is a
framework for the tasks
that are required to build
high-quality
software.
Is process
synonymous
with software engineering?
The answer is "yes"
and "no."
A software process defines
the approach that is taken as
software is
engineered.
But software engineering also
encompasses technologies
that
populate
the process-technical methods and
automated tools.
More
important, software engineering is
performed by creative,
knowledgeable
people
who should work within a defined and
mature software process that
is
appropriate
for the products they build, and the
demands of their
marketplace.
⇒ Software
Engineering
Software
engineering is a layered technology.
Referring to Figure 2,
any
engineering
approach (including software engineering)
must rest on an
organizational
commitment to quality. Total
quality management and similar
philosophies
foster a continuous process
improvement culture, and this
culture
ultimately
leads to the development of
increasingly more mature
approaches to
129
Software
Project Management
(CS615)
software
engineering. The bedrock
that supports software
engineering is a quality
focus.
Figure
2: Software
engineering layers
Process
A
quality focus
Tools
Metho
The
foundation for software
engineering is the process
layer. Software
engineering
process is the glue that
holds the technology layers
together and
enables
rational and timely development of
computer software. Process
defines a
framework
for a set of key process
areas that must be established
for effective
delivery
of software engineering
technology.
The
key process areas form
the basis for management
control of software
projects
and
establish the context in
which technical methods are
applied, work
products
(models,
documents, data, reports,
forms, etc.) are produced,
milestones are
established,
quality is ensured, and change is properly
managed.
Software
engineering methods provide
the technical how-to's for
building
software.
Methods encompass a broad array of
tasks that include
requirements
analysis,
design, program construction testing and
support. Software
engineering
methods
rely on a set of basic
principles that govern each
area of the
technology
and
include modeling and other
descriptive techniques.
Software
engineering tools provide
automated or semi-automated support
for the
process
and the methods. When tools
are integrated so that
information created by
one tool
can be used by another, a stem for
the support of software
development
called
computer-aided software engineering, is
established. CASE combines
software,
hardware, and a software engineering
database (a repository
containing
important
information about analysis, design,
program construction and testing)
to
create
software engineering environment
analogous to CAD/CAE
(computer-
aided
design engineering) for
hardware.
130
Software
Project Management
(CS615)
3.2
PM
Process Groups
Project
management processes can be organized
into five groups of one or
more
processes
each:
1.
Initiating processes--authorizing
the project or phase
2.
Planning processes--defining
and refining objectives and selecting
the best
of the
alternative courses of action to
attain the objectives that
the project
was
undertaken to address
3. Executing
processes--coordinating
people and other resources to carry
out
the
plan
4.
Controlling processes--ensuring
that project objectives are
met by
monitoring
and measuring progress regularly to
identify variances from
plan
so that
corrective action can be taken
when necessary
5.
Closing processes--formalizing
acceptance of the project or
phase and
bringing
it to an orderly end
Each
process is described
by:
Inputs
Tools
& Techniques
Outputs
3.3
PM
Process Links
The
process groups are linked by
the results they produce--the result or
out-
come
of one often becomes an input to
another.
Among
the central process groups,
the links are
iterated--planning provides
executing
with a documented project
plan early on, and then
provides documented
updates
to the plan as the project
progresses. These connections are
illustrated in
Figure
3.
The
project management process groups
are not discrete, one-time
events; they
are
overlapping activities that
occur at varying levels of
intensity throughout
each
phase of
the project. These process
groups overlap and vary
within a phase.
Figure
4 illustrates
how the process groups
overlap and vary within a
phase.
3.4
PM
Phase interactions
131
Software
Project Management
(CS615)
Finally,
the process group
interactions also cross phases
such that closing one
phase
provides an input to initiating
the next. For example,
closing a design phase
requires
customer acceptance of the design
document. Simultaneously, the
design
document
defines the product
description for the ensuing
implementation phase.
This
interaction is illustrated in Figure
5.
Repeating the initiation
processes at the
start of
each phase helps to keep
the project focused on the
business need that it
was
undertaken to address. It should also
help ensure that the project
is halted if
the
business need no longer
exists, or if the project is
unlikely to satisfy that
need.
It is
important to note that the
actual inputs and outputs of
the processes depend
upon
the phase in which they
are carried out. Although
Figure
5 is
drawn with
discrete
phases and discrete processes, in an
actual project there will be
many
overlaps.
The planning process, for
example, must not only
provide details of
the
work to
be done to bring the current
phase of the project to
successful completion,
but
must also provide some
preliminary description of work to be
done in later
phases.
This progressive detailing of the
project plan is often called
rolling
wave
planning; indicating
that planning is an iterative and
ongoing process.
Involving
stakeholders in the project phases
generally improves the
probability of
satisfying
customer requirements and realizes
the buy-in
or
shared ownership of
the
project by the stakeholders,
which is often critical to
project
success.
Initiating
Planning
Processes
Processes
Controlling
Executing
Processes
Processes
Closing
Processes
Figure
3: Links
among Process Groups in a
phase
132
Software
Project Management
(CS615)
Executing
Processes
Planning
Processes
Initiating
Closing
Processes
Processes
Controlling
Processes
Phase
Phase
Start
Finish
Figure
4: Overlap
of Process Groups in a
Phase
Design
Phase
Implementation
Phase
Initiating
Planning
Initiating
Planning
Controlling
Controlling
Executing
Executing
Closing
Closing
Figure
5: Interaction
between phases
133
Table of Contents:
|
|||||