Software Development Life Cycle Models and
Software Development Life Cycle Models and
Software Development Life Cycle Models and
Introduction
The software industry includes many different processes, for example, analysis, development, maintenance
and publication of software. This industry also includes software services, such as training, documentation,
and consulting.
Our focus here about software development life cycle (SDLC). So, due to that different types of projects
have different requirements. Therefore, it may be required to choose the SDLC phases according to the
specific needs of the project. These different requirements and needs give us various software development
approaches to choose from during software implementation.
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 that was used for software development.
The usage
Projects which not focus on changing the requirements, for example, projects initiated from request for
proposals (RFPs)
Advantages Disadvantages
Easy to explain to the users. Assumes that the requirements of a
Structures approach. system can be frozen.
Stages and activities are well defined. Very difficult to go back to any stage after
Helps to plan and schedule the project. it finished.
Verification at each stage ensures early A little flexibility and adjusting scope is
detection of errors / misunderstanding. difficult and expensive.
Each phase has specific deliverables. Costly and required more time, in addition
to the detailed plan.
V-Shaped Model
Description
It is an extension of waterfall model, Instead of moving down in a linear way, the process steps are bent
upwards after the coding phase, to form the typical V shape. The major difference between v-shaped model
and waterfall model is the early test planning in the v-shaped model.
The usage
Advantages Disadvantages
Simple and easy to use Very inflexible, like the waterfall model.
Each phase has specific deliverables. Little flexibility and adjusting scope is
Higher chance of success over the difficult and expensive.
waterfall model due to the development of Software is developed during the
test plans early on during the life cycle. implementation phase, so no early
Works well for where requirements are prototypes of the software are produced.
easily understood. The model doesn’t provide a clear path
Verification and validation of the product for problems found during testing phases.
in early stages of product development. Costly and required more time, in addition
to detailed plan
Prototyping Model
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. 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 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. At the end, the separate
prototypes are merged in an overall design.
Extreme prototyping: used at 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 focused
with systems needs more user interactions. So, the system does not have user interactions, such as, a
system does some calculations shall not have prototypes.
Advantages Disadvantages
Reduced time and costs, but this can be Insufficient analysis· User confusion of
disadvantage if the developer loses time in prototype and finished system.
developing the prototypes. Developer misunderstanding of user
Improved and increased user involvement. objectives.
Excessive development time of the
prototype.
Expense of implementing prototyping
The usage
It is used in shrink-wrap large applications and systems which built-in small phases or segments.
Advantages Disadvantages
Estimates (i.e. budget, schedule, etc.) High cost and time to reach the final
become more realistic as work progressed, product.
because important issues are discovered Needs special skills to evaluate the risks
earlier. and assumptions.
Early involvement of developers. Highly customized limiting re-usability
Manages risks and develops the system
into phases.
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.
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 inventory module and so forth.
Advantages Disadvantages
Produces business value early in the Requires heavy documentation.
development life cycle. Follows a defined set of processes.
Better use of scarce resources through Defines increments based on function and
proper increment definition. feature dependencies.
Can accommodate some change requests Requires more customer involvement than
between increments. the linear approaches.
More focused on customer value than the Partitioning the functions and features
linear approaches. might be problematic.
Problems can be detected earlier. Integration between iteration can be an
issue if this is not considered during the
development.
It is based on iterative and incremental development, where requirements and solutions evolve through
collaboration between cross-functional teams.
The usage
It can be used with any type of the project, but it needs more involvement from the customer and to be
interactive. Also, it can be used when the customer needs to have some functional requirement ready in less
than three weeks.
Advantages Disadvantages
Decrease the time required to avail some Scalability.
system features. The ability of the customer to express user
Face to face communication and needs.
continuous inputs from customer Documentation is done at later stages.
representative leaves no space for Reduce the usability of components.
guesswork. Needs special skills for the team.
The end result is the high-quality software
in the least possible time duration and
satisfied customer.