1. Requirements Specification:
The system’s services, constraints and goals are established by consultation with system users. They are then defined in a manner that is understandable by both users and development staff.
This phase can be divided into:
2. System and Software Design:
System design: Partition the requirements to hardware or software systems. Establishes an
overall system architecture
Software design: Represent the software system functions in a form that can be transformed
into one or more executable programs
3. Implementation and Unit Testing:
The software design is realized as a set of programs or program units. (Written specifically, acquired from elsewhere, or modified.)
Individual components are tested against specifications.
4. Integration and System Testing:
The individual program units are:
• integrated and tested as a complete system
• tested against the requirements as specified
• delivered to the client
5. Operation and Maintenance:
Operation: The system is put into practical use.
Maintenance: Errors and problems are identified and fixed.
Evolution: The system evolves over time as requirements change, to add new functions or
adapt the technical environment.
Phase out: The system is withdrawn from service.
Waterfall model strengths and weaknesses:
-Emphasizes completion of one phase before moving on
-Emphasizes early planning, customer input, and design
-Emphasizes testing as an integral part of the life cycle
-Depends on capturing and freezing requirements early in the life cycle
-Each stage in the process reveals new understanding of the previous stages, that
requires the earlier stages to be revised
-Freezing requirements before development starts is unrealistic in innovative projects