2. CMC Limited
Objectives
After completion of this chapter you will be able to:
o Waterfall model
o Prototype model
o Iterative enhancement model
o Spiral model
• Understand what is process and its importance
• Explain the purpose of software process
• Understand different software process models
3. CMC Limited
Introduction
The software process is a becoming a big issue for
companies that produce software. As a consequence, the
software process is becoming more and more important for
permanent employees, long-term practitioners, and short-
term consultant in the software industry.
A process may be defined as a method of doing or
producing something. Extending this to the specific case of
software, we can say that a software process is a method of
developing or producing software
4. CMC Limited
The Importance of Process
Introduction contd..
So it is important for each organization to define the
process for a project. At its most basic, this means simply
to write it down. Writing it down specifies the various items
that must be produced and the order in which they should
be produced: from plans to requirements to documentation
to the finished source code. It says where they should be
kept, and how they should be checked, and what to do
with them when the project is over. It may not be much of
a process. However, once you have written it down, it is a
defined process
5. CMC Limited
Purpose of Process
Introduction contd..
Effectiveness
Not to be confused with efficiency. An effective process
must help us produce the right product. It doesn't matter
how elegant and well-written the software, nor how quickly
we have produced it.
Maintainability
However good the programmer, things will still go wrong
with the software. Requirements often change between
versions. In any case, we may want to reuse elements of
the software in other products.
6. CMC Limited
Purpose of Process contd..
Predictability
Any new product development needs to be planned, and those
plans are used as the basis for allocating resources: both time
and people. It is important to predict accurately how long it will
take to develop the product
Repeatability
If a process is discovered to work, it should be replicated in
future projects. Ad-hoc processes are rarely replicable
unless the same team is working on the new project.
Quality
Quality in this case may be defined as the product's fitness
for its purpose. One goal of a defined process is to enable
software engineers to ensure a high quality product.
8. CMC Limited
Software Development Process Models contd..
Uses of Development Process Models
A development process is a set of activities, which are
performed according to specified order to get the desired
output. It is an abstract representation of a development
process.
Following are the important uses of these models:
• As a means to organize, plan, staff, budget & schedule
and manage software projects.
• As a perspective outline of the required set of
documents to be produced.
• As a basis for determining which software engineering
tools and methodologies will be most appropriate.
9. CMC Limited
Process Models
Waterfall Model
This is the simplest software process model. In this model,
the phases are organized in a linear order. The sequence
of activities that Waterfall model contains is feasibility
analysis, requirement analysis and project planning,
system design, detailed design, coding and unit testing,
system integration and testing.
Software Development Process Models contd..
11. CMC Limited
Prototype Model
Sometimes the developer is not sure of the efficiency of an
algorithm, the form of human machine interaction. These and
many other situations are common for a large and complex
system for which there is no manual system exists. To develop
software products for such problems, a prototyping model is
used
Process Models contd..
Prototyping Model
12. CMC Limited
Process Models contd..
Iterative Enhancement Model
The iterative model combines the features of both waterfall
and prototype model. It supports the incremental building of
the new system. This approach results in better testing. This
is because testing in increments is easier than testing the
whole system at once.
Iterative Model
13. CMC Limited
Process Models contd..
Spiral Model
This is a recent model proposed by Boem. This model
combines the best features of both classic life cycle and
prototyping. The activities in this model are organized like a
spiral that has many cycles
Spiral Model