CHOOSING THE
RIGHT PROJECT
DESIGN
WRITING CHAPTER 3
LEARNING OBJECTIVES
By the end of this lesson, learners should be able to:
1. Understand and explain the different Software Development Life
Cycle (SDLC) models, including their principles, phases, and
applications.
2. Analyze the strengths and limitations of various SDLC models to
determine their suitability for different types of software projects.
3. Evaluate real-world software projects and identify the most
appropriate SDLC model based on project requirements, complexity,
and constraints.
4. Compare traditional (e.g., Waterfall, V-Model) and modern (e.g., Agile,
Scrum, DevOps) SDLC approaches to assess their impact on software
quality, flexibility, and time-to-market.
INTRODUCTION
Software development methodologies define how
projects are structured and executed. Popular
methods like Agile, Waterfall, and DevOps each
have their own strengths, catering to different
project needs. Selecting the right software
development methodology is critical as it directly
influences project success, timelines, and budget.
INTRODUCTION
Selecting the right software development
methodology is essential for the success of any
project. It impacts how teams work, the efficiency of
the process, and the outcome. A suitable
methodology ensures that the project aligns with
business objectives and adapts to changing needs.
Below are the key reasons why it’s critical to make
the right choice.
SOFTWARE DEVELOPMENT
METHODOLOGIES
• Waterfall • Scrum
• Prototype Model • Extreme Programming
• Incremental • Test-driven Development
• Iterative • Feature-driven development
• Spiral • Rational Unified Process
• Rapid Application (RUP)
Development (RAD) • V-model
• Agile • Dual Vee Model
CATEGORIES OF SDLC
SDLC
The Software Development Life
Cycle (SDLC) is a structured
process used to design, develop,
test, and deploy software with
high quality and efficiency. It
provides a systematic approach
to software development,
ensuring that the final product
meets business and technical
requirements.
WATERFALL
The Waterfall Model is a
sequential and linear software
development methodology where
each phase is completed before
moving to the next. It follows a
step-by-step approach, making it
one of the oldest and most
structured SDLC models.
PROTOTYPING
The Prototyping Model
is an iterative software
development approach
where a prototype
(working model) is built,
tested, and refined
before full-scale
development. This model helps developers and
stakeholders visualize the final system
early, ensuring the product meets user
needs.
INCREMENTAL MODEL
The Incremental Model is
a step-by-step software
development approach
where the system is built,
tested, and delivered in
small parts (increments)
instead of developing the
entire system at once.
Each increment adds
functionality until the full
system is completed.
ITERATIVE MODEL
Development approach
where the system is
developed in repeated
cycles (iterations). Each
iteration adds
improvements based on
feedback and testing until
the final system is complete.
Unlike Waterfall, where everything is planned upfront, Iterative
development allows gradual refinements.
SPIRAL MODEL
Risk-driven software development
approach that combines elements
of the Iterative Model and Waterfall
Model. It focuses on repeated
cycles (spirals) of planning, risk
assessment, development, and
evaluation. This model is especially
useful for projects with high
uncertainty and risk.
RAPID APPLICATION DEVELOPMENT
Fast-paced, iterative software development
approach that prioritizes quick prototyping and
user feedback over lengthy planning and
documentation. It is designed for projects that
require rapid delivery with continuous
improvements.
AGILE
Flexible, iterative, and
customer-focused approach to
software development. Unlike
traditional models (e.g.,
Waterfall), Agile breaks the
project into small, incremental
parts (iterations or sprints),
allowing continuous feedback,
adaptation, and improvement.
SCRUM
Lightweight, iterative, and highly
structured framework under the
Agile methodology. It focuses on
delivering working software in
short, fixed-length cycles called
Sprints (usually 2–4 weeks). Scrum
enables teams to adapt quickly to
changes while maintaining a well-
organized workflow.
EXTREME PROGRAMMING
Designed to improve software quality
and responsiveness to changing
requirements. It achieves this by
promoting frequent releases, continuous
collaboration, and best coding practices.
XP is particularly useful for projects that
demand high-quality code, flexibility, and
close customer involvement.
TDD
Tests are written before the actual code. The goal is to
ensure high-quality, bug-free, and maintainable
software through continuous testing.
TDD follows a structured cycle:
1. RED → Write a test first (it fails initially).
2. GREEN → Write just enough code to pass the test.
3. REFACTOR → Optimize the code without
changing its functionality.
4. Repeat the cycle for every new feature or
function.
FDD
Focuses on building and
delivering features in short
iterations. It is designed for large-
scale projects and emphasizes
modular, well-structured code
development. FDD follows a
model-driven approach, ensuring
that the software is developed
based on a detailed design before
coding begins.
RUP
Iterative software development framework developed by
Rational Software (now part of IBM). It provides a structured
approach to software development, focusing on phases, best
practices, and continuous refinement.
Unlike traditional models like Waterfall, RUP is flexible and
iterative, making it a bridge between predictive (Waterfall)
and adaptive (Agile) approaches.
V MODEL
Sequential software development
model that extends the Waterfall
Model by integrating testing at
every stage of development. It is
often referred to as the "Validation
& Verification" model because each
development phase has a
corresponding testing phase. The
model follows a V-shaped structure,
with development progressing
down the left side and testing
moving up the right side.
DUAL VEE MODEL
An extension of the V-Model, designed for
complex systems engineering. It features
two parallel V-shaped structures:
1. System Development Vee - Focuses on
overall system design, integration, and
validation.
2. Component Development Vee - Focuses
on individual subsystems and
components, ensuring they function
correctly before system integration.
HOW WILL I CHOOSE MY
METHODOLOGY?
ASK THESE QUESTIONS:
1. Are the project requirements clear from the
start?
2. Is flexibility needed to accommodate changes?
3. What is the project’s complexity and risk level?
4. What is the timeline and budget?
5. Does the project require fast delivery and
continuous updates?
THANK YOU!
REFERENCES:
• Pressman, R. S., & Maxim, B. R. (2020). Software Engineering: A
Practitioner's Approach (9th ed.). McGraw-Hill.
• Cohn, M. (2005). Agile Estimating and Planning. Prentice Hall.
• Boehm, B., & Turner, R. (2004). Balancing Agility and Discipline: A Guide for
the Perplexed. Addison-Wesley.
• Humphrey, W. S. (1989). Managing the Software Process. Addison-Wesley.
• Beck, K. (2004). Extreme Programming Explained: Embrace Change (2nd
ed.). Addison-Wesley.
• Palmer, S. R., & Felsing, J. M. (2002). A Practical Guide to Feature-Driven
Development. Pearson Education.
• Van Vliet, H. (2008). Software Engineering: Principles and Practice (3rd ed.).
Wiley.