The Waterfall Model in Software Engineering

Chapter 2
Software Process
Software engineering
By: Lecturer Raoof Talal
2-5 the Waterfall Model
 
The first published model of the software development
process was derived from more general system engineering
processes (
Royce
, 1970). This model is illustrated in Figure
2.5. Because of the cascade from one phase to another, this
model is known as the ‘
waterfall model
’ or 
software life
cycle.
The principal stages of the waterfall model directly reflect
the fundamental development activities:
 
1.
Requirements analysis and definition:
  
The system’s 
services
, 
constraints
, and 
goals
 are
established by consultation with system users. They are then
defined in detail and serve as a system specification
.
2. System and software design:
The systems design process allocates the requirements to
either 
hardware
 or 
software
 systems by establishing an
overall system architecture. Software design involves
identifying and describing the fundamental software system
abstractions and their relationships
.
3. Implementation and unit testing:
During this stage, the software design is realized as a
set of 
programs
 or 
program units
. Unit testing involves
verifying that each unit meets its specification
.
4.
Integration and system testing: 
The individual program units or programs are
integrated and tested as a complete system to ensure
that the software requirements have been met. After
testing, the software system is delivered to the
customer
.
5. Operation and maintenance:
Normally (although not necessarily), this is the 
longest
life cycle phase. The system is installed and put into
practical use
.
 Maintenance involves 
correcting errors
which were not discovered in earlier stages of the life
cycle, 
improving
 
the implementation 
of system units and
enhancing the system’s services
 as new requirements are
discovered.
2-6 the Incremental Model
Incremental development is based on the idea of
developing an initial implementation, exposing this to user
comment and evolving it through 
several versions 
until an
adequate system has been developed. The incremental model
combines elements of the 
linear sequential model 
(applied
repetitively) with the 
iterative philosophy of prototyping
.
Referring to Figure 2.6, the incremental model applies
linear sequences in a staggered fashion as calendar time
progresses. Each linear sequence produces a 
deliverable
“increment” of the software.
For example, word-processing software developed using
the incremental paradigm might deliver basic file
management, editing, and document production functions in
the first increment; more developed editing and document
production capabilities in the second increment; spelling and
grammar checking in the third increment; and advanced page
layout capability in the fourth increment.
It should be noted that the process flow for any
increment can incorporate the prototyping paradigm.
When an incremental model is used, the first increment
is often a 
core product
.
The incremental process model, like prototyping, is
iterative in nature. But unlike prototyping, the
incremental model focuses on the delivery of an
operational product with each increment.
Incremental development is particularly useful when
staffing is unavailable 
for a complete implementation by
the business deadline that has been established for the
project. Early increments can be implemented with fewer
people. If the core product is well received, then additional
staff (if required) can be added to implement the next
increment.
2-7 the Spiral Model
The spiral model was proposed by Boehm
(1988). This is shown in Figure 2.7. Here, the
software process is represented as a spiral, rather
than a sequence of activities with some backtracking
from one activity to another.
It provides the potential for rapid development of
incremental versions of the software. Using the spiral
model, software is developed in a series of incremental
releases. During early iterations, the incremental release
might be a 
paper model 
or 
prototype
. During later
iterations, increasingly more 
complete versions 
of the
engineered system are produced.
A spiral model is divided into a number of
framework activities, also called 
task regions
.
Typically, there are between three and six task
regions. Figure 2.7 depicts a spiral model that
contains six task regions:
Customer communication
 
—tasks required to establish
effective communication between developer and customer.
Planning
 
—tasks required to define resources, timelines,
and other project related information.
Risk analysis
 
—tasks required to assess both technical
and management risks.
Engineering
 
tasks required to build one or more
representations of the application.
Construction and release
 
—tasks required to construct,
test, install, and provide user support (e.g., documentation
and training).
Customer evaluation
 
—tasks required to obtain
customer feedback based on evaluation of the software
representations created during the engineering stage and
implemented during the installation stage.
Slide Note
Embed
Share

The Waterfall Model in software engineering follows a sequential process involving stages like requirements analysis, system design, implementation, integration, and maintenance. Each stage is crucial for successful software development, ensuring that the final product meets the specified requirements and functions as intended.

  • Waterfall Model
  • Software Engineering
  • Development Process
  • System Design
  • Maintenance

Uploaded on Oct 10, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Software engineering Software engineering Chapter 2 Software Process By: Lecturer By: Lecturer Raoof Raoof Talal Talal

  2. 2-5 the Waterfall Model The first published model of the software development process was derived from more general system engineering processes (Royce, 1970). This model is illustrated in Figure 2.5. Because of the cascade from one phase to another, this model is known as the waterfall model or software life cycle.

  3. The principal stages of the waterfall model directly reflect the fundamental development activities: 1.Requirements analysis and definition: The system s services, constraints, and goals are established by consultation with system users. They are then defined in detail and serve as a system specification .

  4. 2. System and software design: The systems design process allocates the requirements to either hardware or software systems by establishing an overall system architecture. Software design involves identifying and describing the fundamental software system abstractions and their relationships.

  5. 3. Implementation and unit testing: During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.

  6. 4.Integration and system testing: The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer.

  7. 5. Operation and maintenance: Normally (although not necessarily), this is the longest life cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered in earlier stages of the life cycle, improving the implementation of system units and enhancing the system s services as new requirements are discovered.

  8. 2-6 the Incremental Model Incremental development is based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed. The incremental model combines elements of the linear sequential model (applied repetitively) with the iterative philosophy of prototyping.

  9. Referring to Figure 2.6, the incremental model applies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable increment of the software.

  10. For example, word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more developed editing and document production capabilities in the second increment; spelling and grammar checking in the third increment; and advanced page layout capability in the fourth increment.

  11. It should be noted that the process flow for any increment can incorporate the prototyping paradigm. When an incremental model is used, the first increment is often a core product. The incremental process model, like prototyping, is iterative in nature. But unlike prototyping, the incremental model focuses on the delivery of an operational product with each increment.

  12. Incremental development is particularly useful when staffing is unavailable for a complete implementation by the business deadline that has been established for the project. Early increments can be implemented with fewer people. If the core product is well received, then additional staff (if required) can be added to implement the next increment.

  13. 2-7 the Spiral Model The spiral model was proposed by Boehm (1988). This is shown in Figure 2.7. Here, the software process is represented as a spiral, rather than a sequence of activities with some backtracking from one activity to another.

  14. It provides the potential for rapid development of incremental versions of the software. Using the spiral model, software is developed in a series of incremental releases. During early iterations, the incremental release might be a paper model or prototype. During later iterations, increasingly more complete versions of the engineered system are produced.

  15. A spiral model is divided into a number of framework activities, also called task regions. Typically, there are between three and six task regions. Figure 2.7 depicts a spiral model that contains six task regions:

  16. Customer communication tasks required to establish effective communication between developer and customer. Planning tasks required to define resources, timelines, and other project related information. Risk analysis tasks required to assess both technical and management risks.

  17. Engineering tasks required to build one or more representations of the application. Construction and release tasks required to construct, test, install, and provide user support (e.g., documentation and training). Customer evaluation tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage.

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#