Lecture2 ProcessModels
Lecture2 ProcessModels
2
WHAT / WHO / WHY IS PROCESS MODELS?
What: Go through a series of predictable steps--- a road map that helps you create a timely, high-
quality results.
Who: Software engineers and their managers, clients also. People adapt the process to their needs
and follow it.
Why: Provides stability, control, and organization to an activity that can if left uncontrolled, become
quite chaotic. However, modern software engineering approaches must be agile and demand ONLY
those activities, controls and work products that are appropriate.
What Work products: Programs, documents, and data
What are the steps: The process you adopt depends on the software that you are building. One
process might be good for aircraft avionic system, while an entirely different process would be used
for website creation.
How to ensure right: A number of software process assessment mechanisms that enable us to
determine the maturity of the software process. However, the quality, timeliness and long-term
viability of the software are the best indicators of the efficacy of the process you use. 3
DEFINITION OF SOFTWARE PROCESS
A framework for the activities, actions, and tasks that are required to build high-
quality software.
4
A GENERIC PROCESS MODEL
5
As we discussed before, a generic process framework for software engineering defines five framework
activities-communication, planning, modeling, construction, and deployment.
In addition, a set of umbrella activities- project tracking and control, risk management, quality assurance,
configuration management, technical reviews, and others are applied throughout the process.
Next question is: how the framework activities and the actions and tasks that occur within each activity are
organized with respect to sequence and time? See the process flow for answer.
The waterfall model, sometimes called the classic life cycle, suggests a
systematic, sequential approach to software development that begins
with customer specification of requirements and progresses through
planning, modeling, construction, and deployment, culminating in ongoing
support of the completed software.
PROCESS MODELS-THE V-MODEL
A variation in the representation of the waterfall model is called the V-model.
Represented in Figure 2.4, the V-model depicts the relationship of quality assurance
actions to the actions associated with communication, modeling, and early
construction activities.
PROCESS MODELS-THE V-MODEL
As a software team moves down the left side of the V, basic problem requirements
are refined into progressively more detailed and technical representations of the
problem and its solution.
Once code has been generated, the team moves up the right side of the V, essentially
performing a series of tests (quality assurance actions) that validate each of the
models created as the team moved down the left side.
The V-model provides a way of visualizing how verification and validation actions are
applied to earlier engineering work.
The waterfall model is the oldest paradigm for software engineering. However, over the past three
decades, criticism of this process model has caused even ardent supporters to question its efficacy.
Among the problems that are sometimes encountered when the waterfall model is applied are:
1. Real projects rarely follow the sequential flow that the model proposes. Although the linear model
can accommodate iteration, it does so indirectly. As a result, changes can cause confusion as the
project team proceeds.
2. It is often difficult for the customer to state all requirements explicitly. The waterfall model requires
this and has difficulty accommodating the natural uncertainty that exists at the beginning of many
projects.
3. The customer must have patience. A working version of the program(s) will not be available until
late in the project time span. A major blunder, if undetected until the working program is reviewed, can
be disastrous.
PROCESS MODELS- INCREMENTAL PROCESS MODELS
Often, a customer defines a set of general objectives for software, but does not
identify detailed requirements for functions and features.
In other cases, the developer may be unsure of the efficiency of an algorithm, the
adaptability of an operating system, or the form that human-machine interaction
should take.
In these, and many other situations, a prototyping paradigm may offer the best
approach.
EVOLUTIONARY PROCESS MODELS- PROTOTYPING
EVOLUTIONARY PROCESS MODELS- PROTOTYPING
The prototyping paradigm (Figure 2.6) begins with communication. You meet with
other stakeholders to define the overall objectives for the software, identify whatever
requirements are known, and outline areas where further definition is mandatory. A
prototyping iteration is planned quickly, and modeling (in the form of a “quick de-
sign”) occurs. A quick design focuses on a representation of those aspects of the soft-
ware that will be visible to end users (e.g., human interface layout or output display
formats). The quick design leads to the construction of a prototype. The prototype is
deployed and evaluated by stakeholders, who provide feedback that is used to fur-
ther refine requirements. Iteration occurs as the prototype is tuned to satisfy the
needs of various stakeholders, while at the same time enabling you to better under-
stand what needs to be done.
EVOLUTIONARY PROCESS MODELS-THE SPIRAL MODEL