Software Development Life Cycle (SDLC)
Definition
The SDLC is a structured sequence of phases that a software project follows from initial conception to final deployment and maintenance, providing a framework for planning and controlling development.
Standard Phases
- Requirement Analysis — gather and document what the system should do
- Design — plan the system architecture, modules, data structures, interfaces
- Implementation (Coding) — translate design into actual code
- Testing — verify and validate the software against requirements
- Deployment — release the software to the production/user environment
- Maintenance — fix bugs, add features, adapt to changes post-release
Requirements → Design → Implementation → Testing → Deployment → Maintenance
Why SDLC Matters
- Provides a common, shared roadmap for the whole team
- Enables planning, estimation, and tracking of progress
- Ensures quality checkpoints at each phase
- Reduces risk of the software crisis symptoms (missed deadlines, poor quality)
SDLC Models (covered as separate topics in this module)
| Model | Nature |
|---|---|
| Code-and-Fix | No formal phases |
| Waterfall | Sequential, phase-gated |
| Evolutionary | Iterative refinement |
| Incremental | Built and delivered in increments |
| Prototyping | Build throwaway model first |
| Spiral | Risk-driven, iterative |
| RUP | Iterative, UML-based |
| RAD | Fast, component-based |
| Agile | Iterative, flexible, customer-collaborative |
Each model organizes these same core phases differently — choice of model depends on project size, requirement clarity, risk, and timeline.
Exam tip: Always draw the 6-phase linear diagram first, then explain that different SDLC "models" are just different arrangements/orderings of these same phases.