Waterfall Model (Fixed Model)
When the software industry started the first model which was used is Waterfall Model, A very old model Traditional model also called as Linear Model
The waterfall methodology is a linear project management approach, where stakeholder and customer requirements are gathered at the beginning of the project, and then a sequential project plan is created to accommodate those requirements.
The waterfall model is so named because each phase of the project cascades into the next, following steadily down like a waterfall.
The Phases of the Waterfall Model
- Requirement Analysis
- Design
- Implementation (Development Activity)
- Testing
- Maintenance
The business people collect the information from the client and prepare a document called as SRS (Software Requirement specification).
In waterfall model one phase is going to provide input for the next phase.
It’s going to be step by step process; every phase depends on the previous phase. Only after completing one phase, we can move to another phase.
In waterfall model change in requirements is not possible.
Waterfall model is preferred only for small project where the requirement can freeze.
Advantages
This software Engineering model is very simple to plan and manage. Hence, projects, where requirements are clearly defined and stated beforehand, can be easily tested using a waterfall model.
Disadvantages
In the waterfall model, you can begin with the next phase only once the previous phase is completed. Hence, this model cannot accommodate unplanned events and uncertainty.
Requirement Analysis:
- We have to collect and understand the requirement of the customer. Normally BA’s, Project Managers, and Product Managers are involved in this phase.
- They will talk to the customer, get the requirements, and prepare a certain number of documents (BRS/SRS).
- This stage gives a clearer picture of the scope of the entire project and forecasts issues.
- This helps companies to finalize the necessary timeline to finish the work of that system.
Design:
- This helps to define the overall system architecture.
- In this phase, both system and software design documents are prepared as per the requirement specification document.
- This design phase serves as input for the next phase of the model.
- It contains documents like DDS (Design Document Specification) OR TDD (Technical Design Document).
There are two kinds of design documents developed in this phase:
a. High-Level Design (HLD):
- Brief description and name of each module.
- An outline of the functionality of every module.
- Integration between modules.
- Database tables are identified along with their key elements.
- Complete architecture diagrams along with technical details.
b. Low-Level Design (LLD):
- Actual Functional logic of the modules.
- Complete input and outputs for every module.
- Complete details of the integrations/interfaces.
- Addresses all types of dependency issues.
- List of error messages.
- Database tables, which include type and size.
Coding:
- Once the system design phase is over, the next phase is coding. In this phase, developers start to build the entire system by writing code using the chosen programming language.
- In the coding phase, tasks are divided into units or modules and assigned to the various developers.
- It is the longest phase of the Software Development Life Cycle process.
- In this phase, the developer needs to follow certain predefined coding guidelines.
- They also need to use programming tools like compilers, interpreters, and debuggers to generate and implement the code.
Testing:
- Once the software is complete, it is deployed in the testing environment. The testing team starts testing the functionality of the entire system. This is done to verify that the entire application works according to the customer’s requirements.
- During this phase, QA and testing team may find some bugs/defects which they communicate to developers. Then development team fixes the bug and sends it back to QA for a retest. This process continues until the software is bug-free, stable, and working according to the business needs of that system.
Deployment / Installation:
Once the software testing phase is over and no bugs or errors are left in the system then the final deployment process starts. Based on the feedback given by the project manager, the final software is released and checked for deployment issues if any.
Maintenance:
Once the system is deployed, and customers start using the developed system, the following three activities may occur:
Bug fixing - Bugs are reported because of some scenarios which are not tested at all.
Upgrade - Upgrading the application to the newer versions of the Software.
Enhancement - Adding some new features to the existing software.
0 Comments