SDLC Models – Comprehensive Study Notes
Introduction to SDLC
- Definition: The Software Development Life Cycle (SDLC) is a structured process that governs every activity from initial planning to final deployment & maintenance of software.
- Guides planning, creation, testing, deployment, and maintenance.
- Purpose of Using SDLC Models:
- Provide organized frameworks → assure quality, efficiency, and goal alignment.
- Facilitate communication among stakeholders.
Difference Between “SDLC” & “SDLC Models”
- SDLC (Generic Framework)
- Describes what must happen (the stages).
- Typical phases: 1. Planning 2. Analysis 3. Design 4. Implementation 5. Testing 6. Deployment 7. Maintenance.
- SDLC Models (Specific Methodologies)
- Describe how each phase is executed (e.g.
- Waterfall, Agile, Spiral, V-Model, RAD, Iterative).
- Vary in flexibility, speed, user involvement, risk-handling.
- Analogy
- SDLC = blueprint for building a house.
- SDLC Model = actual construction method (some fast, some thorough, some iterative).
Overview of Popular SDLC Models
- Waterfall – Linear & sequential.
- Iterative – Cyclical, repeated improvements.
- Spiral – Risk-driven, combines iterative + Waterfall rigor.
- V-Model – Verification & Validation focused.
- Agile – Adaptive, collaborative, incremental.
- RAD (Rapid Application Development) – Fast-paced, prototype-centric.
Waterfall Model
- Key Ideas
- First widely adopted SDLC model.
- Step-by-step linear flow; each phase must finish completely before the next begins.
- Output of one phase → input to the next.
- Canonical Phases
- Requirement Analysis → System Design → Implementation → Testing → Deployment → Maintenance.
- Advantages
- Simple & easy to understand (great for beginners).
- Clear structure; each phase has specific goals.
- Produces extensive documentation (valuable for future reference).
- Limitations
- Difficult to revisit earlier phases once completed.
- Testing occurs late → defects found at the end.
- No early working software for stakeholders.
Iterative Model
- Concept
- Start with a simple implementation of a subset of requirements.
- Repeated cycles (iterations) refine & expand the product until complete.
- Each iteration passes through Planning → Design & Development → Testing → Implementation.
- Visualization Example
- Build 1, Build 2, Build 3 … each build is an improved working version.
- Advantages
- Early delivery of functional software.
- Frequent feedback from users after every iteration.
- Better risk management; problems surface early.
- Highly flexible to requirement changes.
- Limitations
- Potentially higher cost & timeline because of multiple iterations.
- Requires disciplined planning to juggle versions & feedback.
- Early architecture/design might need overhaul later.
Spiral Model
- Essence
- Combines iterative development with Waterfall-like systematic control.
- Visualized as a spiral with multiple loops; each loop = one phase.
- Loop Activities
- Planning.
- Risk Analysis.
- Engineering (Development & Testing).
- Evaluation & Feedback.
- Each loop results in product refinement while proactively mitigating risks.
- Advantages
- Superior risk management—ideal for high-stakes systems (e.g.
aerospace, medical). - Extremely flexible; supports evolving requirements.
- Continuous improvement with every spiral.
- Strong user involvement.
- Disadvantages
- Complex to manage; constant planning & risk analysis required.
- Demands skilled personnel in risk assessment.
- Higher cost overhead; not economical for small projects.
V-Model (Verification & Validation)
- Definition
- Extension of Waterfall; pairs every development phase with a corresponding test phase.
- Forms a “V”: left = verification (development), bottom = coding, right = validation (testing).
- Phase Pairings
- Requirement Analysis ↔ Acceptance Test Design.
- System Design ↔ System Test Design.
- Architecture Design ↔ Integration Test Design.
- Module Design ↔ Unit Test Design.
- Coding at the bottom ties both sides.
- Advantages
- High reliability → defects caught early by associated tests.
- Well-structured & traceable.
- Emphasizes testing throughout, not just at the end.
- Limitations
- Rigid; adapting to changes mid-process is tough.
- No early working software for users.
- Heavy documentation burden upfront.
Agile Model
- Definition & Mind-Set
- Flexible, iterative, incremental; delivers value in small “sprints” of 1–4 weeks.
- Agrees with the Agile Manifesto values:
- Individuals & Interactions > Processes & Tools.
- Working Software > Comprehensive Documentation.
- Customer Collaboration > Contract Negotiation.
- Responding to Change > Following a Plan.
- Cycle (per Sprint)
- Planning → Requirement Analysis → Designing → Building → Testing → Review.
- Advantages
- Rapid, continuous delivery of working software.
- High customer satisfaction via constant feedback.
- Embedded quality through continuous testing.
- Encourages tight team collaboration.
- Challenges
- Requires experienced, self-managing teams.
- Scope may expand endlessly (scope-creep).
- Documentation can be lighter; might hinder long-term maintenance.
- Less predictability in cost & timeline.
RAD – Rapid Application Development
- Core Idea
- Prioritizes speed via quick prototyping & frequent user feedback rather than exhaustive pre-planning.
- "The act of building software becomes the planning." (Planning is implicit in prototyping.)
- Phases
- Business Modeling – analyze information flow across business functions.
- Data Modeling – map data objects, attributes, relationships.
- Process Modeling – define how data is processed (add, modify, delete, retrieve).
- Application Generation – convert models into working prototypes using tools.
- Testing & Turnover – continuous component testing → full system testing for integration & data flow.
- Advantages
- Very quick development cycle.
- Frequent user feedback shapes product.
- Easy to incorporate changes.
- Early detection of issues through prototypes.
- Limitations
- Difficult to scale to large, complex systems.
- Requires highly engaged end-users.
- May trade quality for speed if rushed.
- Sparse documentation may hurt long-term support.
Laboratory Activity: Exploring SDLC Models
- Objective: Gain hands-on experience applying various SDLC models.
- Materials: Computers with internet, SDLC model descriptions, sample project descriptions, PowerPoint.
- Sample Projects (selection):
- University Course Management, Mobile Restaurant App, Non-Profit Website, E-Commerce for SMBs, Healthcare Appointment Scheduler, Online Learning Platform, Fitness Tracking App, Real Estate Listings, Event Management, Retail Inventory, Travel Booking, Book-lover Social Network, Hospital Management, Online Job Portal, Crowdfunding Platform, Restaurant Inventory & Ordering, CRM System, Smart Home Control, Tech Forum, Art Gallery Manager.
- Instructions
- Groups select a project description.
- Apply the assigned SDLC model, documenting each phase (diagrams, timelines encouraged).
- Prepare a 5–10 minute presentation covering:
- Why the chosen SDLC model fits the project.
- Phase-by-phase plan & artifacts.
- Anticipated challenges & mitigation strategies.
Practical & Ethical Implications Across Models
- Quality vs. Speed Trade-off: Waterfall & V-Model optimize for thoroughness; RAD & Agile for speed.
- Risk Management: Spiral addresses high-risk scenarios explicitly; Agile mitigates via short feedback loops.
- User Involvement: Agile, RAD, Spiral rely heavily on active users; Waterfall offers limited early visibility.
- Documentation Ethics: Adequate documentation ensures maintainability & transparency; lightweight approaches must balance agility with ethical duty to future teams.
- Industry Relevance
- Regulated domains (e.g.
healthcare, aviation) favor models with strong verification (V-Model, Spiral). - Start-ups & dynamic markets lean toward Agile or RAD for rapid pivoting.
Quick Model-Selection Cheat Sheet
- Waterfall: Stable requirements, novice teams, compliance demands.
- Iterative: Unclear requirements but moderate risk.
- Spiral: High-risk, high-cost, mission-critical systems.
- V-Model: Safety-critical, strict testing/quality mandates.
- Agile: Rapidly changing requirements, high customer involvement.
- RAD: Need a prototype fast, testers & users readily available.