Chapter 3-SDLC and Methodologies
Chapter 3-SDLC and Methodologies
Methodologies
2. Planning:
In planning major activities like planning for schedule, keeping track of on
the processes and the estimation related to the project are done.
Planning is even used to find the types of risks involved throughout the
projects.
Planning describes how technical tasks are going to take place and what
resources are needed and how to use them.
3. Modelling:
This is one the important phases as the architecture of the system is
designed in this phase.
Analysis is carried out and depending on the analysis a software model is
designed.
Different models for developing software are created depending on the
requirements gathered in the first phase and the planning done in the
second phase.
4. Construction:
The actual coding of the software is done in this phase.
This coding is done on the basis of the model designed in the modelling
phase. So in this phase software is actually developed and tested.
5. Deployment:
In this last phase the product is actually delivered and installed at
customer's end and support is given if required.
A feedback is taken from the customer to ensure the quality of the product.
V-V Model:
V-Model also referred to as the Verification and Validation Model.
This is an extension/variant of the Waterfall model.
In this, each phase of SDLC must complete before the next phase starts.
It follows a sequential design process same as the waterfall model.
Testing of product is planned in parallel with a corresponding phase of
development.
The phases of testing is called as "Validation Phase" and that of development
is called as "Verification Phase".
Therefore for each phase of development there's a corresponding test activity
planned in advance.
Validation Phase
Verification Phase
Phases of V-V Model:
Phases of Verification Phase:
Requirement Analysis: This phase contains detailed communication with the
customer to understand their requirements and expectations. This stage is known as
Requirement Gathering.
System Design: This phase contains the system design and the complete hardware
and communication setup for developing product.
Architectural Design: System design is broken down further into modules taking
up different functionalities.
The data transfer and communication between the internal modules and with the
outside world (other systems) is clearly understood.
Module Design: In this phase the system is broken down into small modules. The
detailed design of modules is specified, also known as Low-Level Design (LLD).
Phases of Validation Phase:
Unit Testing: Unit Test Plans (UTPs) are developed during module design phase.
These Unit Test Plans are executed to eliminate bugs at code or unit level.
Integration testing: After completion of unit testing Integration testing is
performed. In integration testing, the modules are integrated and the system is
tested. Integration testing is performed on the Architecture design phase. This test
verifies the communication of modules among themselves.
System Testing: System testing test the complete application with its functionality,
inter dependency, and communication. It tests the functional and non-functional
requirements of the developed application.
User Acceptance Testing (UAT): UAT is performed in a user environment that
resembles the production environment. UAT verifies that the delivered system meets
user’s requirement and system is ready for use in real world.
When to use V-V Model?
When the requirement is well defined and not ambiguous.
The V-shaped model should be used for small to medium-sized projects where
requirements are clearly defined and fixed.
The V-shaped model should be chosen when sample technical resources are
available with essential technical expertise.
Advantages of V-V Model:
Easy to Understand.
Works well for small plans where requirements are easily understood.
Testing Methods like planning, test designing happens well before coding.
This model avoids the downward flow of the defects.
This saves a lot of time. Hence a higher chance of success over the waterfall
model.
Disadvantages of V-V Model:
Very rigid and least flexible.
Not a good for a complex project.
If any changes happen in the midway, then the test documents along with the
required documents, has to be updated.
Software is developed during the implementation stage, so no early prototypes
of the software are produced.
Incremental Process Model:
Incremental model was developed by Mills Et al. in 1980.
The incremental model is defined as, "a model of software development where the
product is designed, implemented and tested incrementally (module by module) (i.e.
a little more is added each time) until the product is finished."
Working:
In the incremental model the entire requirement is divided into various builds.
In the incremental model multiple independent deliveries (modules) are
identified.
Each increment builds the product and submits it to the customer for any
suggested modifications.
The next increment implements the customer's suggestions and adds
additional requirements in the previous increment.
This process is repeated until the product is finished.
In incremental model, multiple development cycles are there so the software
life cycle is a multi-waterfall. In this model, cycles are divided up into
smaller, more easily managed modules.
The work flow is in a linear (sequential) fashion, Iterative in nature and
Evolutionary.
The incremental model provides a needed set of functionality sooner while
delivering optional components later.
Phases in Incremental Process Model:
Customer communication:
It includes tasks required to establish effective communication between developer
and customer.
Planning:
It includes tasks required to define resources, timelines, and other project related
information.
Risk analysis:
It includes tasks required to assess both technical and management risks.
Engineering:
It includes tasks required to build one or more representations of the application.
Construction and Release:
It includes tasks required to construct, test, install, and provide user support (e.g.,
documentation and training)
Customer evaluation:
It includes tasks required to obtain customer feedback based on evaluation of the
software representations created during the engineering stage and implemented
during the installation stage.
Advantages of Spiral Model:
The spiral model accommodates life-cycle evaluation, growth and
requirement changes.
It focuses on early error detection and design flaws.
It incorporates prototyping as a risk-reduction strategy.
The spiral model incorporates software quality objectives into the product.
Disadvantages of Spiral Model:
Spiral model can be a costly model to use.
It is not suitable for low risk projects.
Risk analysis in this model requires highly specific expertise.
BASIS FOR
WATERFALL MODEL SPIRAL MODEL
COMPARISON
Definition It is a software development process It is an evolutionary method of
model that follows a linear sequential SDLC.
flow.
Testing Testing is performed after the coding Testing is performed in each spiral
phase in the SDLC. after the engineering phase in the
SDLC.
Suitable for It is suitable for small projects with It is suitable for larger, more
clear goals. complicated projects.