Process Models Part 1
Process Models Part 1
SDLC
SDLC is a systematic process for building software that ensures the quality and
correctness of the software built. SDLC process aims to produce high-quality
software that meets customer expectations. The system development should be
complete in the pre-defined time frame and cost. SDLC consists of a detailed plan
which explains how to plan, build, and maintain specific software. Every phase of
the SDLC life Cycle has its own process and deliverables that feed into the next
phase. SDLC stands for Software Development Life Cycle and is also referred to
as the Application Development life-cycle.
Why SDLC?
Here, are prime reasons why SDLC is important for developing a software system.
• It offers a basis for project planning, scheduling, and estimating
• Provides a framework for a standard set of activities and deliverables
• It is a mechanism for project tracking and control
• Increases visibility of project planning to all involved stakeholders of the development
process
• Increased and enhance development speed
• Improved client relations
• Helps you to decrease project risk and project management plan overhead
SDLC Phases
The entire SDLC process divided into the following SDLC steps:
SDLC phases
• Phase 1: Requirement collection and analysis
• Phase 2: Feasibility study
• Phase 3: Design
• Phase 4: Coding
• Phase 5: Testing
• Phase 6: Installation/Deployment
• Phase 7: Maintenance
Phase 1: Requirement collection and analysis
The requirement is the first stage in the SDLC process. It is conducted by the senior
team members with inputs from all the stakeholders and domain experts in the
industry. Planning for the quality assurance requirements and recognition of the
risks involved is also done at this stage.
This stage gives a clearer picture of the scope of the entire project and the
anticipated issues, opportunities, and directives which triggered the project.
Phase 2: Feasibility study
Once the requirement analysis phase is completed the next sdlc step is to define
and document software needs. This process conducted with the help of ‘Software
Requirement Specification’ document also known as ‘SRS’ document. It includes
everything which should be designed and developed during the project life cycle.
There are mainly five types of feasibilities checks:
In this third phase, the system and software design documents are prepared as per
the requirement specification document. This helps define overall system
architecture.
This design phase serves as input for the next phase of the model.
There are two kinds of design documents developed in this phase:
High-Level Design (HLD)
Once the system design phase is over, the next phase is coding. In this phase,
developers start build the entire system by writing code using the chosen
programming language. In the coding phase, tasks are divided into units or
modules and assigned to the various developers. It is the longest phase of the
Software Development Life Cycle process.
Phase 5: Testing
Once the software is complete, and it is deployed in the testing environment. The
testing team starts testing the functionality of the entire system. This is done to
verify that the entire application works according to the customer requirement.
Phase 6: Installation/Deployment
Once the software testing phase is over and no bugs or errors left in the system
then the final deployment process starts. Based on the feedback given by the
project manager, the final software is released and checked for deployment issues
if any.
Phase 7: Maintenance
Once the system is deployed, and customers start using the developed system,
following 3 activities occur
• Bug fixing – bugs are reported because of some scenarios which are not tested at
all
• Upgrade – Upgrading the application to the newer versions of the Software
• Enhancement – Adding some new features into the existing software
SDLC Models
Winston Royce introduced the Waterfall Model in 1970.This model has five phases:
Requirements analysis and specification, design, implementation, and unit testing,
integration and system testing, and operation and maintenance. The steps always
follow in this order and do not overlap. The developer must complete every phase
before the next phase begins. This model is named "Waterfall Model", because its
diagrammatic representation resembles a cascade of waterfalls.
Requirements analysis and specification phase:
The aim of this phase is to understand the exact requirements of the customer and to
document them properly. Both the customer and the software developer work
together so as to document all the functions, performance, and interfacing
requirement of the software. It describes the "what" of the system to be produced and
not "how. "In this phase, a large document called Software Requirement
Specification (SRS) document is created which contained a detailed description of
what the system will do in the common language
Design Phase: This phase aims to transform the requirements gathered in the SRS
into a suitable form which permits further coding in a programming language. It
defines the overall software architecture together with high level and detailed design.
All this work is documented as a Software Design Document (SDD).
3. Implementation and unit testing: During this phase, design is implemented. If
the SDD is complete, the implementation or coding phase proceeds smoothly,
because all the information needed by software developers is contained in the SDD.
Integration and System Testing: This phase is highly crucial as the quality of the
end product is determined by the effectiveness of the testing carried out. The better
output will lead to satisfied customers, lower maintenance costs, and accurate results.
Unit testing determines the efficiency of individual modules. However, in this phase,
the modules are tested for their interactions with each other and with the system.
Operation and maintenance phase: Maintenance is the task performed by every
user once the software has been delivered to the customer, installed, and operational.
When to use SDLC Waterfall Model?
Some Circumstances where the use of the Waterfall model is most suited are:
• When the requirements are constant and not changed regularly.
• A project is short
• The situation is calm
• Where the tools and technology used is consistent and is not changing
• When resources are well prepared and are available to use
Advantages of waterfall Model
• This model is simple to implement also the number of resources that are required for
it is minimal.
• The requirements are simple and explicitly declared; they remain unchanged during
the entire project development.
• The start and end points for each phase is fixed, which makes it easy to cover
progress.
• The release date for the complete product, as well as its final cost, can be determined
before development.
• It gives easy to control and clarity for the customer due to a strict reporting system
Disadvantages of waterfall Model
• In this model, the risk factor is higher, so this model is not suitable for more
significant and complex projects.
• This model cannot accept the changes in requirements during development.
• It becomes tough to go back to the phase. For example, if the application has now
shifted to the coding phase, and there is a change in requirement, It becomes tough to
go back and change it.
• Since the testing done at a later stage, it does not allow identifying the challenges
and risks in the earlier phase, so the risk reduction strategy is difficult to prepare.