SDLC Models

Coddy5 52 views 6 slides Jul 11, 2023
Slide 1
Slide 1 of 6
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6

About This Presentation

The Software Development Life Cycle (SDLC) is a methodology or framework used in project management to guide the stages involved in developing an information system or software application. It encompasses the entire process from the initial feasibility study to the maintenance of the completed appli...


Slide Content

SDLC Models
The Software Development Life Cycle (SDLC) is a methodology or framework used in
project management to guide the stages involved in developing an information system
or software application. It encompasses the entire process from the initial feasibility
study to the maintenance of the completed application.
There are various software development life cycle models, also known as software
development process models. These models outline the specific phases and activities
to be followed during the software development phase. Each model has its own unique
set of phases to ensure successful software development.
These models provide a structured approach and define the sequence of activities to be
performed, the roles and responsibilities of the team members, and the deliverables
expected at each stage. Some commonly used software development life cycle models
include the Waterfall model, Agile model, Spiral model, and Iterative model.
By following a specific software development life cycle model, project teams can ensure
that the software development process is well-organized, efficient, and effective. The
chosen model helps in managing project risks, meeting project objectives, and
delivering high-quality software solutions.
Here, are some important phases of SDLC life cycle:
The waterfall model is a commonly used software development life cycle model. It
involves dividing the software development process into distinct phases, including
requirements analysis, design, implementation, testing, integration, and maintenance.
Each phase is completed before moving on to the next, and there are defined entry and
exit criteria for each stage.
The RAD (Rapid Application Development) model is an adaptation of the waterfall
model that aims to develop software in a shorter timeframe. It involves gathering
system requirements through focus groups and emphasizes quick development and
testing.
The spiral model is a risk-driven process model that combines elements of different
process models. It starts with identifying objectives, evaluating alternatives, and

developing strategies to address uncertainties and risks. The cycle continues in
iterations, with each iteration building upon the previous one.
The V-Model is a software development model where testing and development
activities are planned in parallel. Verification phases are on one side, and validation
phases are on the other side, with coding being the point of connection.
The incremental model involves dividing requirements into groups and following the
SDLC model for each group. Each cycle adds more functionality, acting as a
maintenance phase for the previous release. It allows for overlapping development
cycles.
The agile model promotes continuous interaction between development and testing
throughout the SDLC process. The project is divided into small incremental builds
delivered in iterations, allowing for flexibility and adaptation to changing requirements.
The iterative model focuses on developing software in smaller increments, with each
increment gaining complexity and features until the final system is complete. It breaks
down the development process into smaller pieces.
The big bang model involves minimal planning and focuses on coding and
development. It works best for small projects with smaller development teams or
academic projects where requirements may be unknown or release dates are not fixed.
The prototype model starts with gathering requirements and creating a quick design. A
prototype is developed and continuously refined based on user feedback until the
customer is satisfied. The final system is then developed based on the approved
prototype.
Each of these models provides a different approach to the software development life
cycle, catering to different project requirements, risks, and team dynamics.

Waterfall model
The Waterfall Model was introduced by Winston Royce in 1970 and is a sequential
software development approach. It consists of five distinct phases that are followed in a
linear manner: requirements analysis and specification, design, implementation and unit
testing, integration and system testing, and operation and maintenance. In this model,
each phase must be completed before moving on to the next, and there is no overlap or
iteration between phases. The model is called the "Waterfall Model" due to its visual
representation, which resembles a cascade of waterfalls flowing downward.
1. Requirements analysis and specification phase:
During the requirements analysis and specification phase, the primary objective is to
comprehensively comprehend the customer's exact requirements and accurately
document them. This phase involves close collaboration between the customer and the
software developer to ensure that all aspects of the software's functions, performance,
and interfaces are thoroughly understood and properly documented. The focus is on
capturing the "what" of the system, rather than the "how." A crucial outcome of this
phase is the creation of a detailed document known as the Software Requirement
Specification (SRS). The SRS provides a comprehensive description of the system's
intended behavior in a language that is easily understood by stakeholders.
2. Design Phase: The design phase focuses on transforming the requirements
documented in the SRS into a suitable form that enables the coding process. It involves
defining the software architecture, as well as creating high-level and detailed designs.
The outcome of this phase is typically documented in a Software Design Document
(SDD) that provides a comprehensive description of the software's structure and design.

3. Implementation and unit testing: During the implementation and unit testing phase,
the design is translated into code. If the SDD is comprehensive and accurate, the
implementation process can proceed smoothly as developers have all the necessary
information. The code is thoroughly tested, starting with isolated testing of small
modules. Subsequently, the modules are tested together to ensure proper interaction
and flow of intermediate output.
4. Integration and System Testing: The integration and system testing phase is critical,
as it determines the overall quality of the end product. Integration testing focuses on
testing the interaction between different modules and the system as a whole. System
testing verifies that the software meets the specified requirements and performs as
expected in its operational environment.
5. Operation and maintenance phase: T he operation and maintenance phase begins
once the software has been delivered, installed, and is operational. Maintenance
involves tasks performed by users to ensure the software's continued functionality,
stability, and adaptation to changing needs. It may include bug fixes, updates,
enhancements, and support activities.
Overall, these phases in the Waterfall Model follow a sequential order, with each phase
building upon the completion of the previous one. However, it's important to note that in
practice, iterative and agile methodologies have gained popularity over the rigid
sequential approach of the Waterfall Model.
When to use SDLC Waterfall Model?
The Waterfall model is well-suited for certain circumstances, which include:
Stable and Well-Defined Requirements: The Waterfall model is effective when
the requirements for the software system are clear, stable, and unlikely to change
significantly during the development process. It assumes that the requirements
are fixed at the beginning of the project and that any changes will be minimal.
Short and Small-Scale Projects: The Waterfall model can be suitable for projects
with short timelines and relatively small scopes. When the project requirements,
deliverables, and goals are well-defined and limited, the sequential nature of the
Waterfall model can facilitate efficient progress.
Low-Pressure and Predictable Environments: The Waterfall model is often
preferred in calm and low-pressure situations where there is less urgency or

external factors influencing the project. When the project environment is stable,
predictable, and not subject to frequent disruptions or unexpected changes, the
linear and sequential nature of the Waterfall model can be advantageous.
Consistent Tools and Technologies: The Waterfall model assumes the use of
consistent tools, technologies, and methodologies throughout the project. It is
most suitable when there are no significant changes expected in the underlying
technology stack or development practices.
Well-Prepared and Available Resources: The Waterfall model requires
well-prepared and available resources, including skilled personnel, equipment,
and infrastructure. When all necessary resources are in place and readily
accessible, the sequential nature of the Waterfall model allows for efficient
utilization of these resources.
It's important to note that while the Waterfall model can be effective in these
circumstances, it may not be suitable for complex, large-scale projects, or projects
where requirements are likely to change or evolve over time. Agile and iterative
approaches are often preferred in such scenarios to accommodate flexibility,
adaptability, and frequent feedback and changes.
Advantages of Waterfall model
The Waterfall model is known for its simplicity in implementation and its minimal
resource requirements. The model assumes that the requirements are straightforward
and clearly stated, and that they will remain unchanged throughout the entire project
development process.
The fixed start and end points for each phase in the Waterfall model provide a clear
structure, making it easier to track progress and ensure that each phase is completed
before moving on to the next.
One advantage of the Waterfall model is that it allows for the determination of the
release date and final cost of the product before development begins. This can be
beneficial for planning and budgeting purposes.
Additionally, the Waterfall model offers easy control and clarity for the customer. The
strict reporting system allows for clear communication and progress updates, giving the
customer a clear understanding of the project's status.

In summary, the Waterfall model's simplicity, minimal resource requirements, fixed
phases, predictability in terms of release date and cost, and clear reporting system
provide advantages in situations where the requirements are simple and stable, and
where there is a need for clear control and communication with the customer.
Disadvantages of Waterfall model
Indeed, the Waterfall model has certain limitations and challenges associated with it:
Higher Risk Factor: The Waterfall model is known for its higher risk factor
compared to other iterative or agile models. The sequential nature of the model
means that the risks and issues in earlier phases may not be discovered until
later stages, such as during system testing or operation. This can result in higher
project risks, as any issues or challenges may only be identified at a later stage,
making it more difficult to address them effectively.
Limited Flexibility for Requirement Changes: The Waterfall model assumes that
the requirements are fixed and will not change significantly during the
development process. This lack of flexibility makes it challenging to
accommodate changes or new requirements that may arise during the project. If
a change in requirements occurs during a later phase, it can be difficult to go
back and modify earlier phases, leading to potential conflicts and complications.
Difficulty in Revisiting Phases: Due to the sequential nature of the Waterfall
model, once a phase is completed and the project moves on to the next phase, it
becomes challenging to revisit and modify the previous phases. If a change or
issue is identified that requires modifications in a previous phase, it can disrupt
the project flow and potentially introduce delays or additional rework.
Risk Reduction Strategy: As the testing phase is typically conducted towards the
end of the project in the Waterfall model, it becomes difficult to identify and
address challenges and risks in earlier phases. This can hinder the ability to
proactively mitigate risks and develop an effective risk reduction strategy.
Considering these limitations, the Waterfall model is generally considered less suitable
for more significant and complex projects that involve evolving requirements, high levels
of uncertainty, or a need for frequent feedback and adaptation. Agile and iterative
models, such as Scrum or Kanban, are often preferred for such projects, as they offer
more flexibility, continuous feedback loops, and risk mitigation strategies throughout
the development process.