Home » Software Engineering

Software Life Cycle Model: The Waterfall Model

In this article, we are going to learn about one of the widely known software life cycle model – The waterfall model.
Submitted by Raunak Goswami, on August 24, 2018

Hello guys, so today we would be looking at one of the widely known and the simplest software life cycle model i.e. waterfall models, as the name suggests the reason for naming this model as a waterfall model is that the sequence of steps that are followed in this model resemble the flow of a waterfall. As the water falls from top to down, in waterfall model you are allowed to move in the direction as that of a waterfall therefore backtracking is not possible in this type of model.

The sequence of steps that are followed in this model are as follows:

  1. Requirement gathering
  2. Designing of the model
  3. Implementation along with unit testing
  4. Integration and system testing
  5. Operation and maintenance process

Flowchart representation of the following sequence of steps is given below:

The waterfall model

Now we will be discussing each step-in detail:

STEP 1: Requirement gathering

The main purpose of this step is to understand the exact requirements of the customer. This task is usually performed with the involvement of the customer. The requirements describe the main functionality of the software and the purpose behind creating such software. This step usually contains huge documentation written in the human understandable language which is often referred to as SRS (software requirement specification).

If the software created does not contain all the functionalities mentioned in the SRS then such software is often considered as a failure in the software industry.

STEP 2: Designing of the model

Now, before we begin the coding phase we need to create a design or a definite structure that is suitable for some programming language. We basically define the full system architecture in this step. Just like SRS was used to define software required by the system in this step we create a documentation for the software design which is referred to as SDD (software design description).

STEP 3: Implementation before unit testing

The real coding begins at this step, this is basically the core step wherein the developers code the software according to the details mentioned in SDD(software design description) that was created in the previous step. A good SDD will mean that the chances that the software created will be efficient is more.

Now after implementing the SDD we come to the unit testing phase, here the code modification and extension take place if required. The whole module is divided into small submodules which are tested in the isolation. Common problems like calling of modules on their own or calling the modules only when required are solved here by writing some overhead codes.

STEP 4: Integration and system testing

Another very important step is the integration and system testing a good testing will create a highly efficient software will least bugs and a better system compatibility. A good testing will also reduce the maintenance phase which is the last step of our waterfall model. However, the cost of testing a software is very high and at times may cost 1/3 or even ½ of the entire cost of creating a software.

We have already discussed that how a large module is divided into small submodules and those modules are then tested independently in the process called unit testing. In system testing the whole system is tested, whereas the software is the part of this system. This type of testing builds up a sense of reliability before handling the software to the user.

STEP 5: Operation and maintenance process

Software maintenance is a very broad activity which includes error detection, enhancement of capabilities and much more. This step is often executed after handling the software to the user, despite highly efficient testing every software company has to come across this step of software maintenance. As the technology advances there Is a change in the system of the user which requires some kind of updates and bug fixes. These bug fixes and updates are the part of the operation and maintenance process step of the waterfall model.

The main aim of this step is to preserve the value of the software over time. This step lasts from 5 years to 50 years.

This classical model is very easy to understand, however, there lie certain disadvantages which are mentioned below:

  1. It is difficult to define all the requirements at the beginning.
  2. This model is not suitable for introducing any changes in the middle.
  3. Real-time projects are generally not sequential.

Hope you are able to understand this model, have a great day ahead.






Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.
Learn PCB Designing: PCB DESIGNING TUTORIAL




Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing » Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.