Understanding SDLC and OOAD Stages
Understanding SDLC and OOAD Stages
Page 1 of 32
Software Development Life Cycle Model SDLC Stages
The SDLC Model involves six phases or stages while developing any software.
The information from this analysis forms the building blocks of a basic project. The
quality of the project is a result of planning. Thus, in this stage, the basic project is
designed with all the available information.
Page 2 of 32
Stage-1 : Planning and Requirement Analysis
In this stage, all the requirements for the target software are specified. These
requirements get approval from customers, market analysts, and stakeholders.
This is fulfilled by utilizing SRS (Software Requirement Specification). This is a sort of
document that specifies all those things that need to be defined and created during
the entire project cycle.
SRS is a reference for software designers to come up with the best architecture for
the software. Hence, with the requirements defined in SRS, multiple designs for the
product architecture are present in the Design Document Specification (DDS).
This DDS is assessed by market analysts and stakeholders. After evaluating all the
possible factors, the most practical and logical design is chosen for development.
Page 3 of 32
Stage 3: Design
At this stage, the fundamental development of the product starts. For this,
developers use a specific programming code as per the design in the DDS. Hence, it
is important for the coders to follow the protocols set by the association.
Conventional programming tools like compilers, interpreters, debuggers, etc. are
also put into use at this stage. Some popular languages like C/C++, Python, Java,
etc. are put into use as per the software regulations.
Stage 4: Development
Page 4 of 32
Stage-5: Product Testing and Integration
After the development of the product, testing of the software is necessary to ensure
its smooth execution. Although, minimal testing is conducted at every stage of
SDLC. Therefore, at this stage, all the probable flaws are tracked, fixed, and
retested. This ensures that the product confronts the quality requirements of SRS.
Stage 5: Testing
After detailed testing, the conclusive product is released in phases as per the
organization’s strategy. Then it is tested in a real industrial environment. It is
important to ensure its smooth performance. If it performs well, the organization
sends out the product as a whole. After retrieving beneficial feedback, the company
releases it as it is or with auxiliary improvements to make it further helpful for the
Page 5 of 32
customers. However, this alone is not enough. Therefore, along with the
deployment, the product's supervision.
To this day, we have more than 50 recognized SDLC models in use. But None of
them is perfect, and each brings its favorable aspects and disadvantages for a
specific software development project or a team.
1. Waterfall Model
It is the fundamental model of the software development life cycle. This is a very
simple model. The waterfall model is not in practice anymore, but it is the basis
for all other SDLC models. Because of its simple structure, the waterfall model is
easier to use and provides a tangible output. In the waterfall model, once a phase
seems to be completed, it cannot be changed, and due to this less flexible nature,
the waterfall model is not in practice anymore.
Page 6 of 32
Classical Waterfall Model divides the life cycle into a set of phases. The
development process can be considered as a sequential flow in the waterfall. The
different sequential phases of the classical waterfall model are follow:
Phases in detail :
2. Design
The goal of this Software Design Phase is to convert the requirements acquired
in the SRS into a format that can be coded in a programming language. It includes
high-level and detailed design as well as the overall software architecture.
A Software Design Document is used to document all of this effort (SDD).
Low-Level Design (LLD): Once the high-level design is in place, this phase
zooms into the details. It breaks down each component into smaller parts and
provides specifics about how each part will function, guiding the actual
coding process.
3. Development
In the Development Phase software design is translated into source code using
any suitable programming language. Thus each designed module is coded. The unit
testing phase aims to check whether each module is working properly or not.
In this phase, developers begin writing the actual source code based on the
designs created earlier.
The goal is to transform the design into working code using the most suitable
programming languages.
Unit tests are often performed during this phase to make sure that each
component functions correctly on its own.
Page 8 of 32
modules are added to the partially integrated system and the resultant system is
tested. Finally, after all the modules have been successfully integrated and tested,
the full working system is obtained and system testing is carried out on this. System
testing consists of three different kinds of testing activities as described below.
Beta testing: Beta testing is the system testing performed by a friendly set
of customers.
Acceptance testing: After the software has been delivered, the customer
performs acceptance testing to determine whether to accept the delivered
software or reject it.
2. Deployment: Once the software has been thoroughly tested, it's time to deploy
it to the customer or end-users. This means making the software ready and
available for use, often by moving it to a live or staging environment.
During this phase, we also focus on helping users get comfortable with the software
by providing training, setting up necessary environments, and ensuring everything
is running smoothly. The goal is to make sure the system works as expected in real-
world conditions and that users can start using it without any hitches.
5. Maintenance
In Maintenance Phase is the most important phase of a software life cycle. The
effort spent on maintenance is 60% of the total effort spent to develop a full
software. There are three types of maintenance.
Page 9 of 32
Example of real-world example of the Waterfall Model.
1. Analysis
This phase will be tasked with gathering all the information available on customer
banking requirements, transactions, security protocols, and devising the different
parameters that’ll be used for determining the core functionalities of the online
banking system, such as account management, fund transfers, bill payments, and
loan applications.
2. Design
In this example of the Waterfall Model, the design phase is all about fine-tuning the
parameters established in the analysis phase. The system’s architecture will be
designed to manage sensitive data securely, avoid transactional errors, and ensure
high performance. This includes database structure, user interface design,
encryption protocols, and multi-factor authentication to protect user accounts.
3. Implementation
This all-important phase involves doing dummy runs of the online banking system
with a provisional set of banking transactions and customer data to see the
accuracy with which the system can handle transactions, balance inquiries, fund
transfers, and bill payments. These results should be matched with results from
banking experts and auditors who ensure compliance with banking regulations and
accuracy in transactions.
4. Testing
As with any example of the Waterfall Model, the testing phase is about ensuring that
all features of the online banking system function smoothly. This includes testing for
security vulnerabilities, transaction accuracy, performance under heavy load, and
user interface responsiveness. Special attention is given to testing secure logins,
Page 10 of 32
data encryption, and ensuring that sensitive data is handled correctly throughout
the system.
5. Maintenance
In the final phase, the online banking system should be checked for any necessary
updates or alterations that may be required, besides the expected inclusion of new
features or changes in banking regulations. Regular updates will also be needed for
security patches, performance improvements, and the addition of new services like
mobile banking, instant loans, or personalized financial advice.
Easy to Understand: The Classical Waterfall Model is very simple and easy
to understand.
Properly Defined: In the classical waterfall model, each stage in the model
is clearly defined.
Clear Milestones: The classical Waterfall model has very clear and well-
understood milestones.
Working: Classical Waterfall Model works well for smaller projects and
projects where requirements are well understood.
Page 11 of 32
The Classical Waterfall Model suffers from various shortcomings we can’t use it in
real projects, but we use other software development lifecycle models which are
based on the classical waterfall model. Below are some major drawbacks of this
model.
Page 12 of 32
Lengthy Development Cycle: The Waterfall Model can result in a lengthy
development cycle, as each phase must be completed before moving on to
the next. This can result in delays and increased costs if requirements change
or new issues arise.
2. Agile Model
The agile model in SDLC was mainly designed to adapt to changing requests quickly.
The main goal of the Agile model is to facilitate quick project completion. The agile
model refers to a group of development processes. These processes have some
Page 13 of 32
similar characteristics but also possess certain subtle differences among
themselves.
The Agile Model is a combination of iterative and incremental process models. The
phases involve in Agile (SDLC) Model are:
1. Requirement Gathering
3. Construction / Iteration
5. Deployment
6. Feedback
1. Requirement Gathering
In this step, the development team must gather the requirements, by interaction
with the customer. development team should plan the time and effort needed to
build the project. Based on this information you can evaluate technical and
economical feasibility.
Meet with the customer to really understand their needs and what they
expect from the software.
Page 14 of 32
Identify the key requirements and business goals to make sure everyone is on
the same page.
Estimate how much time and effort it will take to develop the software.
Assess if the project is technically possible and whether it's worth the
investment from both a technical and economic standpoint.
In this step, the development team will use user-flow-diagram or high-level UML
Diagrams to show the working of the new features and show how they will apply to
the existing software. Wireframing and designing user interfaces are done in this
phase.
Designing the system: Once the requirements are gathered, the next step
is to design the system’s overall architecture based on those needs. This
helps to verify the software is structured in a way that meets the user’s
expectations.
Creating wireframes: Next, wireframes for the user interface (UI) are
created. These are simple blueprints that show how the software will look and
how users will interact with it, ensuring it’s user-friendly and easy to
navigate.
3. Construction / Iteration
In this step, development team members start working on their project, which aims
to deploy a working product. Each cycle typically consist between 1-4 weeks, and
at the end, the team delivers a working version of the software.
Page 15 of 32
Development of Features: The team works on the features identified
during the requirement and design phases.
Testing involves Unit Testing, Integration Testing, and System Testing, Which help in
the agile development models:
Unit Testing: Unit testing is the process of checking small pieces of code to
ensure that the individual parts of a program work properly on their own. Unit
testing is used to test individual blocks (units) of code.
System Testing: Goal is to ensure that the software meets the requirements
of the users and that it works correctly in all possible scenarios.
5. Deployment
In this step, the development team will deploy the working project to end users.
Once an iteration is finished and fully tested, the software is ready to be released to
the end users. In Agile, deployment isn't a one-time event—it's an ongoing process.
Updates and improvements are rolled out regularly, making sure the software keeps
evolving and getting better with each release.
Make the software accessible to users, verifying they can start using it as
expected.
Page 16 of 32
Verify the deployment goes smoothly and fix any issues that come up quickly
6. Feedback
This is the last step of the Agile Model. In this, the team receives feedback about
the product and works on correcting bugs based on feedback provided by the
customer.
Take feedback from customers, users, and stakeholders after each iteration.
Understand how well the product meets user needs and identify areas for
improvement.
Page 17 of 32
The agile model depends highly on customer interactions so if the customer
is not clear, then the development team can be driven in the wrong direction.
Agile development models often involve working in short sprints, which can
make it difficult to plan and forecast project timelines and deliverables. This
can lead to delays in the project and can make it difficult to accurately
estimate the costs and resources needed for the project.
3. Iterative Model
4. Spiral Model
The spiral model in SDLC is one of the most crucial SDLC models that provides
support for risk handling. It has various spirals in its diagrammatic representation;
the number of spirals depends upon the type of project. Each loop in the spiral
structure indicates the Phases of the Spiral model.
Page 18 of 32
The Spiral Model is a risk-driven model, meaning that the focus is on managing risk
through multiple iterations of the software development process. Each phase of
the Spiral Model is divided into four Quadrants:
1. Objectives Defined
In first phase of the spiral model we clarify what the project aims to achieve,
including functional and non-functional requirements.
Requirements are gathered from the customers and the objectives are identified,
elaborated, and analyzed at the start of every phase. Then alternative solutions
possible for the phase are proposed in this quadrant.
In the risk analysis phase, the risks associated with the project are identified and
evaluated.
During the second quadrant, all the possible solutions are evaluated to select the
best possible solution. Then the risks associated with that solution are identified and
the risks are resolved using the best possible strategy. At the end of this quadrant,
the Prototype is built for the best possible solution.
Page 19 of 32
During the third quadrant, the identified features are developed and verified
through testing. At the end of the third quadrant, the next version of the software is
available.
In the fourth quadrant, the Customers evaluate the so-far developed version of the
software. In the end, planning for the next phase is started.
The next iteration of the spiral begins with a new planning phase, based on the
results of the evaluation.
The Spiral Model is often used for complex and large software development
projects, as it allows for a more flexible and adaptable approach to Software
development. It is also well-suited to projects with significant uncertainty or high
levels of risk.
The Radius of the spiral at any point represents the expenses (cost) of the project
so far, and the angular dimension represents the progress made so far in the
current phase.
In this first phase, the team gathers the basic requirements for the e-commerce
website, like product listings, shopping carts, and payment options. They also
identify potential risks, like security issues or scalability concerns.
To get started, they build a simple prototype, like a homepage with a basic product
catalog, to see how users interact with it and spot any initial design problems.
Page 20 of 32
After getting feedback from the first prototype, the team moves to the next phase.
They add more features and address the problems that were found earlier.
This includes verifying secure payment processing and testing how the site handles
more users. They also add a basic shopping cart and user registration system, and
they run tests with dummy transactions to make sure everything is secure.
With more feedback in hand, the team adds advanced features, like order tracking,
customer reviews, and a search function. They also revisit any remaining risks,
especially around scalability making sure the website can handle a growing number
of users.
During this phase, the team tests the site to verify it can handle large orders,
especially during busy times like sales or holidays.
In the last phase, the website is fully implemented, tested properly, and then
launched to the public. Any remaining risks, like potential crashes or user feedback
issues, are closely monitored and dealt with.
This example shows how the Spiral Model allows for continuous improvement, with
feedback and risk assessment at each step to make sure the final product is solid
and reliable.
1. Risk Handling: The projects with many unknown risks that occur as the
development proceeds, in that case, Spiral Model is the best development
model to follow due to the risk analysis and risk handling at every phase.
2. Good for large projects: It is recommended to use the Spiral Model in large
and complex projects.
Page 21 of 32
4. Customer Satisfaction: Customers can see the development of the product
at the early phase of the software development and thus, they habituated
with the system by using it before completion of the total product.
8. Improved Quality: The Spiral Model allows for multiple iterations of the
software development process, which can result in improved software quality
and reliability.
1. Complex: The Spiral Model is much more complex than other SDLC models.
Page 22 of 32
6. Time-Consuming: The Spiral Model can be time-consuming, as it requires
multiple evaluations and reviews.
5. V-Shaped Model
The Big Bang model in SDLC is a term used to describe an informal and
unstructured approach to software development, where there is no specific
planning, documentation, or well-defined phases.
Development: During this stage, development will code. They will create the
web pages and APIs needed to put the feature into practice.
Page 23 of 32
Testing: Comprehensive functional testing will be carried out. They will
guarantee that the banking platform is glitch-free and operating properly.
Choosing the right SDLC (Software Development Life Cycle) model is essential for
project success. Here are the key factors to consider:
1. Project Requirements:
3. Team Expertise:
4. Client Involvement:
Page 24 of 32
Minimal Client Involvement: Use Waterfall or V-Model if client
involvement is low after initial planning.
Flexible Time and Budget: Use Agile or Spiral if you can adjust
time and budget as needed.
6. Risk Management:
High-Risk Projects: Use Spiral for projects with significant risks and
uncertainties.
9. Stakeholder Expectations:
Note:
Page 25 of 32
Waterfall: Best for clear, stable projects with minimal changes.
V-Model: Good for projects with clear requirements and a strong focus on
testing.
UML Diagrams: UML diagrams are used in OOAD to represent the different
components and interactions of a software system.
Use Cases: OOAD uses use cases to help developers understand the
requirements of a system and to design software systems that meet those
requirements.
Object-Oriented Analysis
Page 26 of 32
Object-Oriented Analysis (OOA) is the process of understanding and analyzing the
system requirements by looking at the problem scenario in terms of objects.
During OOA, the goal is to identify the objects, their attributes, behaviors,
and relationships, without focusing on how the system will be implemented.
OOA helps you figure out all the things you need to know about the game
world - the characters, their features, and how they interact.
OOA also helps you understand what your game characters will do. It's like
writing down a script for each character.
Every program has specific tasks or jobs it needs to do. OOA helps you list
and describe these jobs.
In our game, it could be tasks like moving characters or keeping score. It's
like making a to-do list for your software.
OOA is smart about breaking things into different parts. It splits the job into
three categories: things your game knows, things your game does, and how
things in your game behave.
Object-Oriented Design
Page 27 of 32
o OOD involves specifying how data attributes are organized within the
objects.
o This includes determining the types of data each object will hold and
how they relate to one another.
Below diagram shows a design pyramid for object-oriented systems. It is having the
following four layers.
Page 28 of 32
2. The Class and Object Layer: It represents the class hierarchies that enable
the system to develop using generalization and specialization. This layer also
represents each object.
3. The Message Layer: This layer deals with how objects interact with each
other. It includes messages sent between objects, method calls, and the flow
of control within the system.
Software engineers can use the same language and method that OOAD
provides to communicate and work together more successfully in groups.
It can assist developers in creating scalable software systems that can adapt
to changing user needs and business demands over time.
Page 29 of 32
It can be a time-consuming process that involves significant upfront planning
and documentation. This can lead to longer development times and higher
costs.
1. Requirements Gathering
Page 30 of 32
This phase involves gathering and documenting the requirements of the system
from stakeholders, including users, customers, and other relevant parties.
Requirements are typically captured in a document called the Software
Requirements Specification (SRS).
2. Analysis
In this phase, the focus is on understanding the problem domain and identifying the
objects, classes, and their relationships that will be part of the software system.
Requirements gathered in the previous phase are analyzed to identify the key
functionalities and constraints of the system.
3. Design
The design phase focuses on translating the analysis model into a design model.
This includes defining the architecture of the system, designing the individual
classes and their relationships, and specifying how the system will be implemented.
4. Implementation
5. Testing
The testing phase involves verifying that the software functions correctly and meets
the requirements specified in the SRS. Various testing techniques, such as unit
testing, integration testing, and system testing, are used to ensure the quality of
the software.
6. Deployment
Once the software has been tested and approved, it is deployed to the production
environment. This may involve installing the software on users' computers, servers,
or other devices, and ensuring that it operates correctly in the production
environment.
7. Maintenance
Page 31 of 32
The maintenance phase involves updating the software to fix bugs, add new
features, or improve performance. This phase is ongoing throughout the life cycle of
the software.
Page 32 of 32