Lecture 4
Lecture 4
(CBE-Mwanza)
MANAGEMENT INFORMATION SYSTEMS
SMB 07307
LECTURE FOUR
SDLC MODELS
There are various System Development Life Cycle models defined and designed which are
followed during the software development process. These models are also referred as
"Software Development Process Models". Each process model follows a series of steps
unique to its type to ensure success in the process of software/system development.
Following are the most important and popular SDLC models followed in the industry:
o Waterfall Model
o V-Model
o Iterative Model
o Spiral Model
o Agile Model
o RAD (Rapid Application Development) Model and
o Prototyping Models.
Waterfall Model - The Waterfall Model was the first Process Model to be introduced. It is
also referred to as a linear-sequential life cycle model. It is very simple to understand and
use. In a waterfall model, each phase must be completed before the next phase can begin
and there is no overlapping in the phases. The Waterfall model is the earliest SDLC
approach that was used for system/software development. The waterfall Model illustrates
the software development process in a linear sequential flow. This means that any phase in
the development process begins only if the previous phase is complete. In this waterfall
model, the phases do not overlap.
Under the V-Model, the corresponding testing phase of the development phase is planned in
parallel. So, there are Verification phases on one side of the ‘V’ and Validation phases on the
other side. The Coding Phase joins the two sides of the V-Model.
Fig2. V-Model
Advantages of V Model
Simple and easy to use.
Testing activities like planning, test designing happens well before coding. This saves
a lot of time. Hence higher chance of success over the waterfall model.
Proactive defect tracking – that is defects are found at an early stage.
Avoids the downward flow of the defects.
Works well for small projects where requirements are easily understood.
Disadvantages of V Model
Very rigid and less flexible.
Software is developed during the implementation phase, so no early prototypes of
the software are produced.
Iterative Model - In the Iterative model, iterative process starts with a simple
implementation of a small set of the software requirements and iteratively enhances the
evolving versions until the complete system is implemented and ready to be deployed. An
iterative life cycle model does not attempt to start with a full specification of requirements.
Instead, development begins by specifying and implementing just part of the software,
which is then reviewed to identify further requirements. This process is then repeated,
producing a new version of the software at the end of each iteration of the model.
Spiral Model - The spiral model combines the idea of iterative development with the
systematic, controlled aspects of the waterfall model. This Spiral model is a combination of
iterative development process model and sequential linear development model i.e. the
waterfall model with a very high emphasis on risk analysis. It allows incremental releases of
the product or incremental refinement through each iteration around the spiral.
Agile Model - Agile SDLC model is a combination of iterative and incremental process
models with focus on process adaptability and customer satisfaction by rapid delivery of
working software product. Agile Methods break the product into small incremental builds.
These builds are provided in iterations. Each iteration typically lasts from about one to three
weeks.
Agile model believes that every project needs to be handled differently and the existing
methods need to be tailored to best suit the project requirements. In Agile, the tasks are
divided to time boxes (small time frames) to deliver specific features for a release. Iterative
approach is taken and working software build is delivered after each iteration. Each build is
incremental in terms of features; the final build holds all the features required by the
customer.
Prototype is a working model of software with some limited functionality. The prototype
does not always hold the exact logic used in the actual software application and is an extra
effort to be considered under effort estimation. Prototyping is used to allow the users
evaluate developer proposals and try them out before implementation. It also helps
understand the requirements which are user specific and may not have been considered by
the developer during product design.
RAD Model - The RAD (Rapid Application Development) model is based on prototyping and
iterative development with no specific planning involved. The process of writing the software
itself involves the planning required for developing the product. Rapid Application
Development focuses on gathering customer requirements through workshops or focus
groups, early testing of the prototypes by the customer using iterative concept, reuse of the
existing prototypes (components), continuous integration and rapid delivery.