Page 31 - DCAP405_SOFTWARE_ENGINEERING
P. 31
Software Engineering
Notes Further, restriction on the degrees of freedom for a particular project are specified by the project
plan, which, in itself, is within the boundaries established by the process. In other words, a
project plan cannot include performing an activity that is not there in the process.
It is essentially the process that determines the expected outcomes of a project as each project is
an instance of the process it follows. Due to this, the focus software engineering is heavily on the
process.
Figure 2.2: Software Processes
Software Process
Product Process
Engineering Management
Processes Process
Development Project Software Configuration
Process Management Management Process
Process
2.2.1 What is a Software Process?
A software process is the set of activities and associated results that produce a software product.
Software engineers mostly carry out these activities. There are four fundamental process activities,
which are common to all software processes. These activities are:
1. Software specification: The functionality of the software and constraints on its operation
must be defined.
2. Software development: The software to meet the specification must be produced.
3. Software validation: The software must be validated to ensure that it does what the
customer wants.
4. Software evolution: The software must evolve to meet changing customer needs.
Different software processes organize these activities in different ways and are described at
different levels of detail. The timing of the activities varies as does the results of each activity.
Different organizations may use different processes to produce the same type of product.
However, some processes are more suitable than others for some types of application.
Notes If an inappropriate process is used, this will probably reduce the quality or the
usefulness of the software product to be developed.
The Software Process Model
A software process model is a simplified description of a software process, which is presented
from a particular perspective. Models, by their very nature, are simplifications, so a software
process model is an abstraction of the actual process, which is being described. Process models
may include activities, which are part of the software process, software products and the roles of
people involved in software engineering. Some examples of the types of software process
model that may be produced are:
1. A workflow model: This shows the sequence of activities in the process along with their
inputs, outputs and dependencies. The activities in this model represent human actions.
24 LOVELY PROFESSIONAL UNIVERSITY