Phases of Waterfall Model

Classical Waterfall Model divides the life cycle into a set of phases. The development process can be considered as a sequential flow in the waterfall. The different sequential phases of the classical waterfall model are follow:

               


                                                     Waterfall Model-Software Engineering




Let us now learn about each of these phases in detail which include further phases.


1. Requirements Analysis and Specification


Requirement Analysis and specification phase aims to understand the exact requirements of the customer and document them properly. This phase consists of two different activities. 

1. Requirement Gathering and Analysis: 


Firstly all the requirements regarding the software are gathered from the customer and then the gathered requirements are analyzed.

The goal of the analysis part is to remove incompleteness (an incomplete requirement is one in which some parts of the actual requirements have been omitted) and inconsistencies (an inconsistent requirement is one in which some part of the requirement contradicts some other part).


2. Requirement Specification: 


These analyzed requirements are documented in a software requirement specification (SRS) document. SRS document serves as a contract between the development team and customers. Any future dispute between the customers and the developers can be settled by examining the SRS document.


2. Design



The goal of this Software Design Phase is to convert the requirements acquired in the SRS into a format that can be coded in a programming language. It includes high-level and detailed design as well as the overall software architecture. A Software Design Document is used to document all of this effort (SDD).
                 
 High-Level Design (HLD)

This phase focuses on outlining the broad structure of the system. It highlights the key components and how they interact with each other, giving a clear overview of the system’s architecture.


Low-Level Design (LLD): 

Once the high-level design is in place, this phase zooms into the details. It breaks down each component into smaller parts and provides specifics about how each part will function, guiding the actual coding process.


3. Development


In the Development Phase software design is translated into source code using any suitable programming language. Thus each designed module is coded. The unit testing phase aims to check whether each module is working properly or not. 

In this phase, developers begin writing the actual source code based on the designs created earlier.

The goal is to transform the design into working code using the most suitable programming languages.

Unit tests are often performed during this phase to make sure that each component functions correctly on its own.


4. Testing and Deployment


1. Testing: Integration of different modules is undertaken soon after they have been coded and unit tested. Integration of various modules is carried out incrementally over several steps. During each integration step, previously planned modules are added to the partially integrated system and the resultant system is tested. Finally, after all the modules have been successfully integrated and tested, the full working system is obtained and system testing is carried out on this. System testing consists of three different kinds of testing activities as described below.

Alpha testing: Alpha testing is the system testing performed by the development team.

Beta testing: Beta testing is the system testing performed by a friendly set of customers.

Acceptance testing: After the software has been delivered, the customer performs acceptance testing to determine whether to accept the delivered software or reject it.


2. Deployment: Once the software has been thoroughly tested, it's time to deploy it to the customer or end-users. This means making the software ready and available for use, often by moving it to a live or staging environment.

During this phase, we also focus on helping users get comfortable with the software by providing training, setting up necessary environments, and ensuring everything is running smoothly. The goal is to make sure the system works as expected in real-world conditions and that users can start using it without any hitches.

5.Maintanance



In Maintenance Phase is the most important phase of a software life cycle. The effort spent on maintenance is 60% of the total effort spent to develop a full software. There are three types of maintenance.

Corrective Maintenance: This type of maintenance is carried out to correct errors that were not discovered during the product development phase.

Perfective Maintenance: This type of maintenance is carried out to enhance the functionalities of the system based on the customer’s request.

Adaptive Maintenance: Adaptive maintenance is usually required for porting the software to work in a new environment such as working on a new computer platform or with a new operating system.








Comments

Popular posts from this blog