7/29/2019 Software engineering water fall model.docx
1/5
By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 1 of5 TEOFILO KISANJI UNIVERSITY
Question:
Describe the waterfall model of software development. What are three advantages and three
disadvantages? What alternatives exist?
Answer:
The waterfall model of software development is also referred as a linear-sequential life cycle
model. It represents an experience-based refinement of the classical sequential software life-
cycle model. It separates the distinct phases of specification and development in the software
life-cycle. It is quite simple and easy to understand and use. In a waterfall model one
development stage should be completed before the next begins. At the end of each phase, a
review takes place to determine if the project is on the right path and whether or not to continue
or discard the project.
Waterfall model is a sequential design process, often used in software development processes,
in which progress is seen as flowing steadily downwards (like a waterfall) through the phases
of:-
1. Requirements analysis and definition:Software specification is the process of establishing what services are required and the
constraints on the systems operation and development. They are then defined in detail
and served as a system specification. This is also known as feasibility study. In this
phase, the development team visits the customer and studies their system. They
investigate the need for possible software automation in the given system. By the end of
the feasibility study, the team furnishes a document that holds the different specific
recommendations for the candidate system. It also includes the personnel assignments,
costs, project schedule, and target dates.
2. System and software design:In this phase, the software development process the softwares overall structure and its
nuances are defined. In this phase there is the establishment of the overall system
architecture. For example in terms of the client/server technology, the number of tiers
TMI 530Software Engineering TEOFILO KISANJI UNIVERSITY
Assignment Answer by KAHEMELA HAMZA (TEKU/BSC-MIS/101708)
7/29/2019 Software engineering water fall model.docx
2/5
By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 2 of5 TEOFILO KISANJI UNIVERSITY
needed for the package architecture the database design the data structure design etc. are
all defined in this phase.The logical system of the product is developed in this phase.
3. Implementation and unit testing:In this stage the designed parameters are now taken into actions and each individual
component of the system is tested from errors and or bugs. In this phase the design is
realized as a set of programs or program units. The design must be translated into a
machine-readable form. The code generation process is involved in this phase to translate
the designed software into machine (computer) readable form.If the design is performed
in a detailed manner code generation can be accomplished without much complication.
Once the code is generated, the software program testing begins. Different testing
methodologies are available to unravel the bugs that were committed during the previous
phases. The unity testing is the testing of each and every unity making the system or
software before it becomes into system integration and system testing phase.
4. Integration and system testing:In this phase the different individual units are integrated and the overall system is tested.
Integration and testing is performed after the units testing of the components. System
testing is very important before deploying it to customers or the client as the very small
bug in the system will be viewed by the client and customers as the failure of the whole
system.This is also the stage at which product documentation, such as a user manual, is
prepared, reviewed and published.
5. Operation and maintenance:This phase involves preparing the system or product for installation and use at the client
and customer place. Software will definitely undergo change once it is delivered to the
customer. There are many reasons for the change. Change could happen because of some
unexpected input values into the system. In addition, the changes in the system could
directly affect the software operations. The software should be developed to
accommodate changes that could happen during the post implementation period.
7/29/2019 Software engineering water fall model.docx
3/5
By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 3 of5 TEOFILO KISANJI UNIVERSITY
Modifications and other maintenance activities will follow after installation or and
operation process to satisfy customers needs.
The above phases are as illustrated below;
Fig1: Water Fall model life cycle.
Advantages:Following are three of the advantage of the Water Fall Model:
1. Documentation is produced at each phase helping stakeholders (customers and clients)understand what is done or going on about the system being developed. Verification and
Validation is performed before completing each stage.
2. It fits with other engineering process models. Thus it should only be used when therequirements are well understood, well for smaller projects and unlikely to change
radically during system development.
3. Waterfall Model is very simple and easy to use, thus making it easy to manage due to theinflexibility of the model.It is very simple in implementation and maintenance.
Requirements analysis
System and software design:
Im lementation and unit testin :
Integration and system testing:
Operation and maintenance:
7/29/2019 Software engineering water fall model.docx
4/5
By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 4 of5 TEOFILO KISANJI UNIVERSITY
Disadvantages
The following are three of the disadvantages of water-fall model
1. The main drawback of the waterfall model is the difficulty of accommodating changeafter the process is underway. One phase has to be complete before moving onto the next
phase.
2. Commitments must be made at an early stage in the process, which makes it difficult torespond to changing customer requirements.
3. The requirements cannot be changed once completed. It is difficult to respond tochanging customer requirements.
To conclude, software processes based on this approach are still used for software development,
particularly when the software project is part of a lager systems engineering project. Not
appropriate for complex and object-oriented projects.
Alternatives to water- fall model
There other several models apart from water fall model some of them are;
1. Evolutionary development:It is based on the idea of developing an initial implementation, exposing this to user
comment and refining it through many versions until an adequate system has been
developed. Specification, development and validation activities are interleaved rather
than separate, with rapid feedback across activities. The evolutionary model is also
called prototyping or simulation model.
2. Prototyping or iterative model:Iterative process models describe the software process as a cycle of activities of software
processes.The key idea behind this model is to solve problems through the iterations.
On each iteration identify some problems and to solve these problems. The
development in this model begins by specifying and implementing part of the software
instead to start with the full specification of requirements. The process in this model is
repeated and producing a new version of the software for each cycle of the model.
7/29/2019 Software engineering water fall model.docx
5/5
By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 5 of5 TEOFILO KISANJI UNIVERSITY
3. Incremental Model:The incremental model is a perceptive approach to the waterfall model. Multiple
development cycles take place here, making the life cycle a multi-waterfall cycle.
Cycles are divided up into smaller, more easily managed iterations. Each iteration passes
through the requirements, design, implementation and testing phases.
4. Spiral Model:The spiral model is similar to the incremental model, with more emphases placed on risk
analysis. In spiral development Process is represented as a spiral rather than as a
sequence of activities with backtracking and each loop in the spiral represents a phase in
the process there are no fixed phases such as specification or design loops in the spiral
are chosen depending on what is required Risks are explicitly assessed and resolved in
this model.
5. Prototype Model:The prototype model is start by developing a small prototype than and followed by a
mini-waterfall process, primarily to gather requirements. Then, the first prototype is
reviewed in subsequent loops. The project team performs further requirements, design,
implementation and review. The first thing to do before embarking on each new loop is
risk analysis. The maintenance is simply a type of on-going development throughout the
process.
Those are just some of the alternatives as there are many others than those briefly explained.
Bibliography
Sommerville, I; Software Engineering: 8th edition. China
For more reading you can visit the following link(s) (sites)
http://www.buzzle.com/articles/waterfall-model-in-software-engineering.html
http://www.buzzle.com/articles/waterfall-model-in-software-engineering.htmlhttp://www.buzzle.com/articles/waterfall-model-in-software-engineering.htmlhttp://www.buzzle.com/articles/waterfall-model-in-software-engineering.html