1. Waterfall model:
The waterfall
model is a popular version of the systems development life cycle model for
software engineering. Often considered the classic approach to the systems
development life cycle, the waterfall model describes a development method that
is linear and sequential. Waterfall development has distinct goals for each
phase of development. Imagine a waterfall on the cliff of a steep mountain.
Once the water has flowed over the edge of the cliff and has begun its journey
down the side of the mountain, it cannot turn back. It is the same with
waterfall development. Once a phase of development is completed, the
development proceeds to the next phase and there is no turning back.
User Requirement: This is the first and most important phase.
During this phase, requirement are gathered from the end-user by consultation,
these requirement are analyzed and documented in an understandable form.
Finally, a requirement Specification document is created which serves the
purpose of guideline for the next phase of the model.
System requirement; In this phase, business requirement are analyzed for their validity and
the possibility of incorporating the requirement in the system to be
developed is also studied, The
requirement are documented which is called as System Requirement Specification
( SRS) document and this become input to the design phase.
Design; During the
design phase, High level and low level designs are created based on SRS
document. This helps in defining overall system architecture and detailed
implementation of each component. These design specification serve as input for
the next phase of the model.
Coding: During this phase, based on the design document, the
work is divided into modules/units and actual coding is started. Developers
create programs for each module which are integrated into a complete system to
check if all modules/units coordinate between each other and the system as a
whole behaves as per the specification. The output of this phase is software
built according to a pre-defined coding standard and unit tested to satisfy the
system architecture requirements.
Testing: IN this phase, Testers test the
developed software to ensure that the system meets/satisfies the requirements.
If there is any mismatch or deviation, testers report defects. These defects
are analyzed and fixed by the developers. Tester validate the defects fixes and
close the by performing confirmation testing (Regression Testing). After
completion of the testing, the software is released to production/customer.
Maintenance: Release team installs software in customer
environment and ensures correct and complete installation of the system.
Maintenance team processes customer issue based on service agreements. Also, the
maintenance phase is never ending phase or very long phase. Generally, problems
(Which are not found during the development life cycle) with the system come up
once the user star using it. Not all the problems come in picture directly but
they arise time to time and needs to be solved. These are addressed by the
Maintenance team.
Advantages of waterfall model:
- Simple and easy to understand and use.
- Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
- Phases are processed and completed one at a time.
- Works well for smaller projects where requirements are very well understood.
Disadvantages of waterfall
model:
- 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.
No comments:
Post a Comment