Waterfall Model
Waterfall Model
Waterfall Model
Description
The Waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily
downwards (like a waterfall) through the phases of software implementation. This means that
any phase in the development process begins only if the previous phase is complete. The
waterfall approach does not define the process to go back to the previous phase to handle
changes in requirement. The waterfall approach is the earliest approach and most widely known
that was used for software development.
The usage
Projects which not focus on changing the requirements, for example, projects initiated from a
request for proposals (RFPs), the customer has a very clear documented requirements
Advantages and Disadvantages
Advantages Disadvantages
Assumes that the requirements of a system
Easy to explain to the users. be frozen.
Structures approach. Very difficult to go back to any stage after
Stages and activities are well defined. finished.
Helps to plan and schedule the project. A little flexibility and adjusting scope is di
Verification at each stage ensures early detection of and expensive.
errors/misunderstanding. Costly and required more time, in addition
Each phase has specific deliverables. detailed plan.
V-Shaped Model
Description
It is an extension of the waterfall model, Instead of moving down in a linear way, the process
steps are bent upwards after the implementation and coding phase, to form the typical V shape.
The major difference between the V-shaped model and waterfall model is the early test planning
in the V-shaped model.
The usage
Description
It refers to the activity of creating prototypes of software applications, for example, incomplete
versions of the software program being developed. It is an activity that can occur in software
development and It used to visualize some component of the software to limit the gap of
misunderstanding the customer requirements by the development team. This also will reduce the
iterations may occur in the waterfall approach and hard to be implemented due to the inflexibility
of the waterfall approach. So, when the final prototype is developed, the requirement is
considered to be frozen.
Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a part
of the finally delivered software
Evolutionary prototyping: prototypes that evolve into the final system through an iterative
incorporation of user feedback.
Incremental prototyping: The final product is built as separate prototypes. In the end, the
separate prototypes are merged in an overall design.
Extreme prototyping: used in web applications mainly. Basically, it breaks down web
development into three phases, each one based on the preceding one. The first phase is a static
prototype that consists mainly of HTML pages. In the second phase, the screens are
programmed and fully functional using a simulated services layer. In the third phase, the
services are implemented
The usage
This process can be used with any software developing life cycle model. While this shall be
chosen when you are developing a system has user interactions. So, if the system does not
have user interactions, such as a system does some calculations shall not have prototypes.
Advantages and Disadvantages
Advantages Disadvantages
Insufficient analysis. User confusion of
prototype and finished system.
Developer misunderstanding of user
Reduced time and costs, but this can be a disadvantage if the objectives.
developer loses time in developing the prototypes. Excessive development time of the pro
Improved and increased user involvement. It is costly to implement the prototypes
Spiral Model (SDM)
Description
The usage
It is used in the large applications and systems which built-in small phases or segments.
Advantages Disadvantages
High cost and time to reach th
product.
Estimates (i.e. budget, schedule, etc.) become more realistic as work Needs special skills to evaluat
progressed because important issues are discovered earlier. risks and assumptions.
Early involvement of developers. Highly customized limiting re
Manages risks and develops the system into phases. usability
Iterative and Incremental Model
Description
It is developed to overcome the weaknesses of the waterfall model. It starts with an initial
planning and ends with deployment with the cyclic interactions in between. The basic idea
behind this method is to develop a system through repeated cycles (iterative) and in smaller
portions at a time (incremental), allowing software developers to take advantage of what was
learned during the development of earlier parts or versions of the system. It can consist of mini
waterfalls or mini V-Shaped model
The usage
It is used in shrink-wrap application and large system which built-in small phases or segments.
Also, can be used in a system has separated components, for example, ERP system. Which we
can start with the budget module as a first iteration and then we can start with the inventory
module and so forth.
Advantages Disadvantages
Produces business value early in the
development lifecycle.
Better use of scarce resources through
proper increment definition. Requires heavy documentation.
Can accommodate some change requests Follows a defined set of processes.
between increments. Defines increments based on function and feature dependencie
More focused on customer value than the Requires more customer involvement than the linear approach
linear approaches. Partitioning the functions and features might be problematic.
We can detect project issues and changes Integration between the iterations can be an issue if it is not
earlier. considered during the development and project planning.
Agile Model
Description
It is based on iterative and incremental development, where requirements and solutions evolve
through collaboration between cross-functional teams.
Scrum Agile Model
The usage
It can be used with any type of the project, but it needs more engagement from the customer and
to be interactive. Also, we can use it when the customer needs to have some functional
requirement ready in less than three weeks and the requirements are not clear enough. This will
enable more valuable and workable piece for software early which also increase the customer
satisfaction.
Advantages Disadvantages
Scalability.
Decrease the time required to avail some system features. The ability and collaboration of the
Face to face communication and continuous inputs from customer customer to express user needs.
representative leaves no space for guesswork. Documentation is done at later stages
The end result is the high-quality software in the least possible time Reduce the usability of components.
duration and satisfied customer. Needs special skills for the team.
vvv