2. INTRODUCTION
• A software development process or life cycle is a structure
imposed on the development of a software product.
• There are several models for such processes, each describing
approaches to a variety of tasks or activities that take place
during the process.
3. TYPES OF SOFTWARE DEVELOPMENT
MODELS
• Waterfall model
• V model
• Incremental model
• RAD (Rapid Application Development) model
• Agile model
• Iterative model
• Spiral model
4. WATERFALL MODEL
• Waterfall model is a popular model of the system
development life cycle.
• It is very simple to use and understand.
• In the waterfall model, each phase must be completed before
the next phase can begin and there is no overlapping in the
phases.
6. STEPS IN WATERFALL MODEL
1. Requirements analysis and definition
The system’s services, constraints, and goals are established by consultation
with system users. They are then defined in detail and serve as a system
specification.
2. System and software design
The systems design process allocates the requirements to either hardware or
software systems by establishing an overall system architecture. Software
design involves identifying and describing the fundamental software system
abstractions and their relationships.
3. Implementation and unit testing
During this stage, the software design is realized as a set of programs or
program units. Unit testing involves verifying that each unit meets its
specification.
7. STEPS IN WATERFALL MODEL
4. Integration and system testing
The individual program units or programs are integrated and tested as a
complete system to ensure that the software requirements have been met.
After testing, the software system is delivered to the customer.
5. Operation and maintenance
Normally (although not necessarily), this is the longest life cycle phase. The
system is installed and put into practical use. Maintenance involves
correcting errors which were not discovered in earlier stages of the life cycle,
improving the implementation of system units and enhancing the system’s
services as new requirements are discovered.
8. ADVANTAGES
• This model is simple and easy to understand and use.
• It is easy to manage due to the rigidity of the model – each
phase has a specific deliverables and a review process.
• In this model phases are processed and completed one at a
time.
• Phases do not overlap.
• Waterfall model works well for smaller projects where
requirements are very well understood.
9. DISADVANTAGES
• Once an application is in the testing stage, it is very difficult to go back
and change something that was not well-thought out in the concept
stage.
• No working software is produced until late during the life cycle.
• High amounts of risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to
high risk of changing.
10. USES OF WATERFALL MODEL
• This model is used only when the requirements are very well
known, clear and fixed. Product definition is stable.
• Technology is understood.
• There are no ambiguous requirements.
• Ample resources with required expertise are available freely.
• The project is short.