SDLC in software engineering models outlines the plan for each stage so that each stage of the software development model can perform its task efficiently to deliver the software at a low cost within a given time frame that meets users requirements.
2. Software Development Life Cycle (SDLC)
โข Software development life cycle (SDLC) is a structured process that is
used to design, develop, and test good-quality software.
โข Software development life cycle(SDLC), is a methodology that defines the
entire procedure of software development step-by-step.
โข The goal of the SDLC life cycle model is to deliver high-quality,
maintainable software that meets the userโs requirements.
โข SDLC in software engineering models outlines the plan for each stage so
that each stage of the software development model can perform its task
efficiently to deliver the software at a low cost within a given time frame
that meets users requirements.
3. Software Development Life Cycle (SDLC)
โข SDLC is a process followed for software building within a software
organization. SDLC consists of a precise plan that describes how to develop,
maintain, replace, and enhance specific software.
โข The life cycle defines a method for improving the quality of software and the
all-around development process.
4. Planning and Requirement Analysis
โข Planning is a crucial step in everything, just as in software development.
โข In this same stage, requirement analysis is also performed by the developers
of the organization.
โข This is attained from customer inputs, and sales department/market surveys.
โข 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.
5. Defining Requirements
โข In this stage, all the requirements for the target software are specified. These
requirements get approval from customers, market analysts, and other
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.
6. Defining Requirements
โข 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.
7. Developing Product
โข 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.
8. Developing Product
โข 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.
9. 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.
โข Documentation, Training, and Support: Software documentation is an essential
part of the software development life cycle.
โข A well-written document acts as a tool and means to information repository
necessary to know about software processes, functions, and maintenance.
โข Documentation also provides information about how to use the product.
10. Deployment and Maintenance of Products
โข 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 customers.
11. What are SDLC models?
โข Are frameworks that define the structure, processes, and phases involved in
developing a software product.
โข They provide a systematic approach to ensure the software is developed
efficiently, meets quality standards, and satisfies user requirements.
โข Why Use SDLC Models?
โข Organized Workflow: Ensures the project progresses smoothly through defined
stages.
โข Quality Assurance: Incorporates testing and reviews at every stage.
โข Risk Management: Identifies potential risks early and addresses them.
โข Cost Efficiency: Reduces wastage of resources by detecting issues early.
12. Waterfall Model
โข The waterfall model arranges all the phases sequentially so that each new
phase depends on the outcome of the previous phase.
โข Conceptually, the design flows from one phase down to the next, like that of a
waterfall.
13. Advantages of the Waterfall Model
Simplicity and Structure:
The model is easy to understand and manage due to its linear and structured
approach.
Clear Phases and Milestones:
Each phase has specific deliverables and reviews, making progress measurable.
Well-Documented Process:
Extensive documentation ensures clear communication of requirements and design.
Best for Fixed Requirements:
Ideal for projects with clearly defined and unchanging requirements.
Easy to Manage:
The model is suitable for inexperienced teams due to its straightforward nature.
14. Disadvantages of the Waterfall Model
Inflexibility:
Changes to requirements are difficult to incorporate once a phase is completed.
Late Testing:
Testing is performed only after implementation, making it hard to address issues
discovered late.
High Risk for Changing Requirements:
Not suitable for projects where requirements may evolve during development.
No Overlapping Phases:
Each phase must be completed fully before moving on, which can delay the overall
project.
Customer Involvement is Limited:
Customers are not engaged after the initial requirements gathering phase, which can lead
to misaligned expectations.
15. When to Use the Waterfall Model
โข The Waterfall model is best suited for:
โข Small projects with well-defined and stable requirements.
โข Projects with low uncertainty, where all technical and functional aspects are
well understood.
โข Government and military projects, where thorough documentation and
structured processes are critical.
โข Hardware-related projects, where changes are less frequent compared to
software.
16. Agile SDLC Model
โข The Agile model is a flexible and iterative approach to software development
that focuses on delivering small, working increments of the product frequently.
โข Agile emphasizes collaboration, customer feedback, and adaptability to change.
Instead of completing all phases sequentially, Agile teams work in cycles called
iterations or sprints, where each cycle delivers a functional increment of the
software.
17. Advantages of Agile
Flexibility:
Agile adapts to changing requirements and priorities, even late in the development process.
Customer-Centric:
Continuous customer involvement ensures the product meets user expectations.
Frequent Delivery:
Regular delivery of working increments allows for quicker feedback and deployment.
Reduced Risk:
Regular reviews and incremental development help identify and address risks early.
Team Collaboration:
Agile fosters close communication and collaboration between developers, stakeholders, and
customers.
Focus on Quality:
Continuous testing and integration ensure a higher-quality product.
18. Disadvantages of Agile
Requires Skilled Teams:
Agile requires experienced developers and strong communication skills within the team.
Scope Creep:
Frequent changes in requirements can lead to uncontrolled scope expansion.
Lack of Predictability:
Without fixed requirements, estimating time and cost can be challenging.
Documentation is Minimal:
Agile prioritizes working software over detailed documentation, which can be
problematic for large teams or future maintenance.
Customer Dependency:
Active involvement of the customer is required, which may not always be feasible.
Not Ideal for Small Teams or Projects:
Agile can introduce unnecessary overhead for small, well-defined projects.
19. When to Use the Agile Model
The Agile model is best suited for:
Projects with evolving requirements or where the final product vision is
unclear.
Customer-focused products that require frequent feedback and updates.
Large, dynamic teams with good communication and collaboration practices.
Startups and innovative projects where rapid prototyping and delivery are
needed.
Continuous delivery scenarios where software is updated regularly.
20. Iterative SDLC Model
โข The Iterative model is a software development approach that focuses on
breaking down a project into smaller, manageable parts, called iterations.
โข Each iteration goes through the core development phases (planning, design,
development, and testing) and delivers a functional version of the product.
โข With every iteration, new features are added or existing ones are refined based
on feedback, until the final product is achieved.
21. Advantages of the Iterative Model
โข Early Testing:
Testing is conducted after every iteration, helping to identify and fix issues early in the
development process.
โข Progress Visibility:
Each iteration produces a working version of the product, offering stakeholders tangible
progress throughout the project.
โข Flexibility:
Requirements can evolve over time, allowing for adjustments and refinements after each
iteration.
โข Risk Reduction:
โข Risks are identified and mitigated early since development starts with a small portion of
the system.
โข Customer Feedback:
Regular feedback from stakeholders ensures the product aligns with their expectations.
22. Disadvantages of the Iterative Model
โข Incomplete Requirements:
Initial requirements might not be comprehensive, leading to potential rework during later
iterations.
โข Higher Costs:
Repeated iterations can increase the overall cost of development compared to other models.
โข Complex Management:
Managing multiple iterations, tracking changes, and integrating new functionality can be
challenging.
โข Overlapping Phases:
Since phases are repeated for each iteration, there may be confusion and inefficiencies if not
managed properly.
โข Time-Consuming:
The iterative process may take longer than linear models if too many iterations are required.
23. When to Use the Iterative Model
The Iterative model is best suited for:
โข Projects with evolving requirements, where all requirements are not fully
known at the start.
โข Large and complex systems, which can be developed incrementally.
โข Projects with higher risk, where early prototypes help reduce uncertainties.
โข Customer-focused projects, where frequent feedback is essential.
โข Innovative and experimental projects, where requirements might emerge over
time.
24. Key Difference Between Iterative and Agile
โข While both Iterative and Agile models involve incremental development, Agile
emphasizes collaboration, flexibility, and adaptability to customer feedback at
every stage.
โข The Iterative model, on the other hand, focuses more on refining prototypes
based on feedback but may not require constant customer involvement like
Agile does.