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:

•Requirements capture
•Requirements analysis
•Requirements specification
•Requirements Validation
•Requirements Management

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:

Strengths

-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

Weaknesses

-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