The Waterfall Model
The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow. This means that any phase in the development process begins only if the previous phase is complete. In this waterfall model, the phases do not overlap.
Phases in the Waterfall model:
-
Requirements
-
Design & Architecture
-
Development & Coding
-
Quality Assurance & Software Testing
-
Implementation
-
Maintenance & Support
Requirements
Potential requirements, deadlines, and guidelines for the project are analyzed and placed into a functional specification. This stage handles the defining and planning of the project without mentioning specific processes.
Analysis
The system specifications are analyzed to generate product models and business logic that will guide production. This is also when financial and technical resources are audited for feasibility.
Design & Architecture
A design specification document is created to outline technical design requirements such as programming language, hardware, data sources, architecture, and services.
Development & Coding / Implementation
The source code is developed using the models, logic, and requirements designated in the prior stages. Typically, the system is designed in smaller components, or units, before being implemented together.
Quality Assurance & Software Testing
This is when quality assurance, unit, system and beta tests take place to report issues that may need to be resolved. This may cause a forced repeat of the coding stage for debugging. If the system passes the tests, the waterfall continues forward.
Operations / Deployment
The product or application is deemed fully functional and is deployed to a live environment.
Maintenance: Corrective, adaptive and perfective maintenance is carried out indefinitely to improve, update and enhance the final product. This could include releasing patch updates or releasing new versions.