Software Development Life Cycle Models and

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

Software Development Life Cycle Models and Methodologies

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.

Types of Software developing life cycles (SDLC)


 Waterfall Model
 V-Shaped Model
 Evolutionary Prototyping Model
 Spiral Method (SDM)
 Iterative and Incremental Method
 Extreme programming (Agile development)

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 and Disadvantages

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

 Software requirements clearly defined and known


 Software development technologies and tools is well-known

Advantages and Disadvantages

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.

It has some types, such as:

 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 and Disadvantages

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

Spiral Method (SDM)


Description

It is combining elements of both design and prototyping-in-stages, in an effort to combine advantages of


top-down and bottom-up concepts. This model of development combines the features of the prototyping
model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects.
This model uses many of the same phases as the waterfall model, in essentially the same order, separated
by planning, risk assessment, and the building of prototypes and simulations.

The usage

It is used in shrink-wrap large applications and systems which built-in small phases or segments.

Advantages and Disadvantages

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.

Iterative and Incremental Method


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 consists of mini waterfalls

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 and Disadvantages

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.

Extreme programming (Agile development)


Description

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 and Disadvantages

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.

You might also like