Unit - 2
Unit - 2
The Iterative Model is a software development approach where the software is built and
improved through repeated cycles (iterations). Instead of developing the entire system at
once, it is developed in small parts, with each iteration refining and expanding the previous
version.
KEY FEATURES
5. Review & Feedback: Users evaluate the progress, and feedback is incorporated.
6. Iteration: Steps 2–5 are repeated, improving the software each cycle.
ADVANTAGES
DISADVANTAGES
Rational Unified Process (RUP): A structured iterative approach used in large projects.
Iterative models are ideal for projects with evolving requirements and a need for continuous
improvements.
INTRODUCTION
Software development is a complex process that requires careful planning, execution, and
maintenance. To manage this complexity, Software Development Life Cycle (SDLC) models
provide a structured approach to developing software efficiently. These models define the
stages of software development, ensuring quality, reliability, and cost-effectiveness.
A Software Life Cycle Model (SDLC Model) is a structured approach that outlines the
different stages of software development, from the initial idea to the final deployment and
maintenance. It ensures systematic development, reducing risks, errors, and unnecessary
costs.
A structured approach allows for better planning and management of resources, timelines,
and costs. It helps project managers allocate tasks efficiently, estimate deadlines, and
minimize risks.
3. Risk Reduction
Developing software without a clear model increases risks such as cost overruns, missed
deadlines, and poor-quality output. SDLC models help mitigate these risks by introducing
systematic checks and validations at each stage.
Quality is crucial in software development. SDLC models include testing phases to identify
and fix defects early, ensuring the final product meets the required standards and functions
correctly.
5. Cost-Effectiveness
Developing software without a clear plan can lead to rework, delays, and increased costs.
Life cycle models help manage budget constraints by providing a clear roadmap for
development.
6. Customer Satisfaction
Once deployed, software requires updates, bug fixes, and enhancements. A well-defined life
cycle model ensures the software is maintainable and scalable for future improvements.
Life cycle models help allocate human resources, tools, and technologies effectively,
preventing wastage and optimizing productivity.
There are several SDLC models used in software engineering, each catering to different
project requirements:
1. Waterfall Model
A linear, sequential approach where each phase is completed before moving to the next.
2. Agile Model
3. Spiral Model
5. Prototype Model
The Classic Waterfall Model is a traditional software development methodology that follows a
linear and sequential approach. It was introduced by Dr. Winston W. Royce in 1970 and is
one of the earliest models in software engineering. The model is called “Waterfall” because
progress flows downward like a waterfall through different phases, each of which must be
completed before moving to the next.
In this phase, the project's requirements are collected from stakeholders, customers, and
users.
This phase is crucial because any misunderstanding at this stage can lead to serious
problems later.
2. System Design
Based on the requirements from the first phase, the system architecture and design are
created.
This phase includes High-Level Design (HLD) and Low-Level Design (LLD):
3. Implementation (Coding)
The system is divided into smaller modules, and each module is developed separately.
4. Testing
5. Deployment
6. Maintenance
After deployment, software may require updates, bug fixes, and enhancements.
1. Simple and Easy to Understand – The linear structure makes it easy to follow.
4. Good for Small Projects – Works well when requirements are clear and stable.
1. Rigid and Inflexible – Changes cannot be made easily once a phase is completed.
2. Late Testing – Bugs are found late in the process, making them costly to fix.
3. Not Suitable for Complex Projects – Large projects often require flexibility and iterations.
4. High Risk – If requirements are misunderstood, the entire project can fail.
5. No Customer Feedback During Development – Customers only see the product at the
end.
3. Incremental Prototyping – The system is built in small parts (modules), each tested
separately.
DISADVANTAGES
1. Incremental Model
2. Spiral Model
3. Prototyping Model
A working prototype is built quickly.
4. Agile Model
Advantages:
Disadvantages:
The Spiral Model is a software development process that combines iterative development
with risk management. It was introduced by Barry Boehm in 1986 and is often used for large,
complex projects.
Each cycle in the spiral represents a development phase. The process continues until the
final system is complete.
ADVANTAGES
DISADVANTAGES
The Spiral Model is ideal when risk management is crucial and project requirements evolve
frequently.
Software engineering has evolved significantly over the years, with different models being
developed to enhance efficiency and adaptability. One such approach is the Agile Model,
which has transformed the way software is designed, developed, and deployed. Agile
focuses on flexibility, customer satisfaction, and iterative progress, making it a preferred
choice for many software development teams.
This article provides a detailed introduction to the Agile Model, its principles, methodology,
advantages, and challenges.
The Agile Manifesto was created by a group of 17 software developers who wanted to
improve software development efficiency. The manifesto outlines four key values and twelve
principles that define the Agile approach.
Agile emphasizes teamwork and direct communication rather than relying heavily on
documentation and formal tools.
The priority is to deliver functional software rather than spending excessive time on detailed
documentation.
Agile encourages continuous communication with customers to ensure their needs are met,
rather than just following a fixed contract.
Agile embraces change at any stage of development to improve the product, unlike
traditional models that resist modifications once the plan is set.
Twelve Principles of Agile
5. Build projects around motivated individuals and provide them the environment they need.
10. Simplicity—the art of maximizing the amount of work not done—is essential.
These principles serve as the foundation for Agile development and help teams deliver
high-quality software efficiently.
Agile Methodologies
Agile is not a single methodology but a collection of frameworks that follow Agile principles.
The most popular Agile methodologies include:
1. Scrum
Scrum is one of the most widely used Agile frameworks. It divides development into sprints
(short time-boxed iterations, usually 2–4 weeks). Each sprint results in a potentially
deliverable product.
Roles in Scrum:
Scrum Process:
Sprint Retrospective – Evaluate what went well and what needs improvement.
2. Kanban
Kanban is a visual-based Agile approach that focuses on continuous delivery without fixed
iterations. It uses a Kanban board with columns such as To Do, In Progress, and Done to
track work progress.
Key Features:
Key Features:
4. Lean Development
Lean focuses on minimizing waste and maximizing value delivery. It is derived from
manufacturing principles and emphasizes efficiency, customer feedback, and rapid delivery.
Key Features:
FDD is an Agile approach that focuses on developing features in short iterations. It involves
defining a model, building features incrementally, and regularly reviewing progress.
Key Features:
Feature-based planning.
Continuous feedback.
2. Difficult to Predict Costs and Time – Agile’s flexibility makes cost estimation challenging.
3. Not Suitable for All Projects – Large, complex projects with strict regulations may struggle
with Agile.
4. Needs Experienced Teams – Agile requires skilled professionals who can adapt quickly.
Agile is commonly used in software startups, mobile app development, and web
applications, where adaptability is crucial.
Software Development Life Cycle (SDLC) models provide a structured approach to software
development. Various models exist, each with strengths and weaknesses, making them
suitable for different projects. Below is a detailed comparison of the most common SDLC
models:
1. Waterfall Model
The Waterfall Model is the oldest and simplest SDLC model. It follows a linear and
sequential approach where each phase is completed before moving to the next.
Phases:
Advantages:
Simple and easy to manage.
Well-documented process.
Disadvantages:
The V-Model is an extension of the Waterfall Model where each development phase has a
corresponding testing phase.
Phases:
Similar to the Waterfall Model but each stage has an associated testing phase (e.g.,
requirement analysis → system testing).
Advantages:
Disadvantages:
3. Incremental Model
The Incremental Model divides the project into smaller modules that are developed and
delivered in increments.
Phases:
Each increment follows the Waterfall approach but delivers a functional piece of the
software.
Advantages:
Disadvantages:
4. Spiral Model
The Spiral Model combines iterative development with risk assessment. It is best for
high-risk projects.
Advantages:
Disadvantages:
5. Agile Model
The Agile Model is highly flexible and delivers software in iterative cycles, focusing on
customer feedback.
Advantages:
Disadvantages:
Needs skilled developers.
Phases:
Advantages:
Faster development.
Disadvantages: