SDLC Waterfall Model: The 6 phases you need to know about

By Amna ZulqadarUpdated on Feb 12, 2019

Software development is a process that involves the creation and maintenance of frameworks, applications and other software elements. This process comprises of activities such as: requirements analysis, defining specifications, designing, constructing, and testing maintenance of the software product. There is a wide range of software designing models available to hand-pick in accordance with the objectives, needs and constraints of the project. In this article, we will be discussing the Waterfall Model, with in-depth focus on logical progression of this development life cycle.

The Waterfall Model, also known as the Linear-Sequential Life-cycle Model, is one of the first process models introduced for software development. As the name implies, this model’s process of downward mechanism is similar to that of a waterfall. The whole process is divided into sequential stages, and it is imperative to complete each phase successfully in order to move onto the next one. According to the International Software Testing Qualifications Board, the Waterfall Model consists of 6 phases:

1. Requirements Analysis

In this phase, all requirements of the project are analysed and documented in a specification document and a feasibility analysis is done to check if these requirements are valid. It is essential to consider any limitations and constraints (e.g. time, budget constraints) which can affect the development process. After thorough analysis, a Requirements Understanding Documents (RUD) is created.

2. System Design

In this phase, the system design is prepared which specifies hardware and system requirements, such as data layers, programming languages, network infrastructure, user interface etc. It helps define the overall system architecture, which is further divided into:

a) High-level design phase

This is the first stage of system design and architecture. It includes a list and functionality of modules, correlation between these modules, architecture diagrams, and database tables. This phase ends with the creation of a  High-level Design document.

b) Low-level design phase

This involves designing actual software components. The High-level Design created in the previous phase is disintegrated into separate modules. The Low-level Design document describes each module (pseudo-code), which enables the programmer to code directly from the document. It also contains interface details, error-message listings, dependency issues, inputs and outputs for each module.

3. Implementation

As the name implies, in this phase the source code is written as per requirements. The physical design specifications are turned into a working code. The system is developed in small programs called units, after which these units are integrated. Sometimes, functionality of each unit is tested before integration, which is called Unit Testing.

4. Testing

The code is then handed over to the testing team. Testers check the program for all possible defects, by running test cases either manually or by automation. The client is involved in the testing phase as well, in order to ensure all requirements are met. All Flaws and bugs detected during this phase are fixed to ensure Quality Assurance.

5. Deployment

In this phase, the software is deployed into a live environment (client’s server) in order to test its performance. Once the software is deployed, it becomes available to end-users. Sometimes, this phase also includes training of real-time users to communicate benefits of the system.

6. Maintenance

After the deployment phase, the next step is to provide support and maintenance for the software, making sure it runs smoothly. If the client and users come across errors/defects/bugs during use, fixing them is the main purpose of this stage.

When to use the Waterfall Model?

Decision making

This model is appropriate for projects with defined goals and requirements. Projects that demand frequent modifications should not be carried out following this approach, as this model lacks flexibility. However, if the project has strict deadlines, the Waterfall Model enables completion of the project, adhering to time constraints, provided that enough resources are available.

Advantages

  1. The requirements, phases and activities are well-defined. Therefore, it is easy for the project managers to plan, schedule, make use of resources and define goals. Each phase has a deliverable, thus making the whole process simple and easy to understand.
  2. It is the go-to approach for small projects.
  3. The whole process is well-documented and well-scripted.
  4. Each phase is separate and completed within a given time-frame; there is less need for reworking.
Pros & Cons

Disadvantages

  1. This model is rigid; it is not possible to make modifications in the requirements once the process begins. Hence, there is no room for reflection and revision.
  2. This model is not favourable for big projects which involve frequent requirement changes.
  3. After developers and clients agree on the requirements early in the cycle, and there is no room for feedback during the development process.
  4. It involves a high amount of risk and uncertainty.
  5. Testing starts after completion of the development phase; this may lead to late detection of bugs and design issues in the development life-cycle.

Conclusion

The Waterfall Model is one of the first models introduced in software development, and it has gained popularity because it clearly defines each step, with logical flow of information. It enables developers to know about the requirements in early stages, which guide them throughout the development process. But it is not without constraints; there is no room for frequent changes which increases inflexibility of the model. These shortcomings have given room to alternative approaches and models, such as the Agile Development Model.

Selection of the right model is mainly dependent on variables like availability of resources and specifications of the project. The Waterfall Model remains one of the most popular software development models to-date, mostly for small-scale projects, regardless of its shortcomings.

To learn more about differences between the two models, read 10 Differences Between Agile and Waterfall Methodology.

By |August 10th, 2018|

About the Author:

Amna has a deep interest and understanding of software and technology. She enjoys exploring new things and writing about them, that accounts for her passion for reading and blogging. She loves music and poetry, as much as she enjoys discussing the future of arts and AI.

Rezaid

Bespoke Software Design and Development.

CONTACT US

  • Manchester Technology Centre, Oxford Road, Manchester. M1 7ED
  • +44 161 327 2955
Img Rezaid Favicon

Privacy Preference Center

Strictly Necessary

_Cfduid: Used to identify individual clients behind a shared IP and apply security settings on a per-client bases. It is necessary for the operation of cloudflare CDN.

gdpr: Necessary for site to function properly

privacy_embeds: This cookie is used by this site only to store your preferences if you choose to allow embedded content from YouTube and Twitter. You can change the settings of this cookie below on this page.

_cfduid, privcay_embeds, gdpr

Google Analytics

_ga, _gid, _gat: Google Analytics, used to distinguish users and store site ID.
permutive-id, permutive-session, IDE: Used for demographics reporting

We have made sure no personally identifiable information (PII) is sent by anonymizing IPs.

_ga, _gid, _gat
permutive-id, permutive-session, IDE

Behaviour Analytics

Set and used by Hotjar. We use Hotjar to analyze user behavior without identifying the user.

_hjClosedSurveyInvites, _hjDonePolls, _hjMinimizedPolls, _hjDoneTestersWidgets, _hjMinimizedTestersWidgets, _hjIncludedInSample