Software Development Life Cycle
The software development life cycle (SDLC) is the end-to-end sequence of phases through which a software system progresses, from initial conception and requirements through design, construction, testing, deployment, and eventual retirement.
Definition
The software development life cycle is a structured framework that partitions software development into defined phases, each with entry and exit criteria, deliverables, and activities, used to plan, control, and reason about the production and evolution of software.
Scope
This topic covers the canonical SDLC phases of planning, requirements analysis, design, implementation, testing, deployment, and maintenance; the standard models that arrange these phases (waterfall, V-model, incremental, iterative, spiral); the artifacts produced at each phase; and life-cycle process standards such as ISO/IEC/IEEE 12207.
Core questions
- What phases make up the life cycle and what artifacts does each produce?
- How do different life-cycle models arrange and iterate these phases?
- What entry and exit criteria gate the transition between phases?
- How does the life cycle extend beyond delivery into operation, maintenance, and retirement?
Key theories
- Phased life-cycle structure
- Development is decomposed into discrete phases (requirements, design, implementation, testing, deployment, maintenance), each with defined deliverables and review gates, giving a basis for planning, estimation, and control.
- V-model verification mapping
- The V-model pairs each constructive phase with a corresponding test phase (unit, integration, system, acceptance), making verification and validation explicit counterparts of specification and design.
Clinical relevance
A well-defined life cycle improves predictability, traceability, and quality control, supports cost and schedule estimation, and is often mandated by procurement and regulatory regimes that require auditable development processes.
Evidence & guidelines
ISO/IEC/IEEE 12207:2017 is the principal international standard defining software life cycle processes and is widely referenced in contracts and quality systems.
History
The notion of an ordered set of development phases was formalized in the late 1960s and 1970s as projects grew too large for ad hoc construction; subsequent models added iteration and risk management, while standardization efforts produced ISO/IEC 12207 in the 1990s and its later revisions.
Key figures
- Winston W. Royce
- Barry Boehm
Related topics
Seminal works
- royce1970
- iso12207
- sommerville2015
Frequently asked questions
- Is the SDLC the same as the waterfall model?
- No. The SDLC is the general set of phases software passes through; the waterfall model is one particular way of ordering those phases sequentially. Agile, iterative, and spiral models traverse the same fundamental phases in different orders and cadences.
- Does the life cycle end at deployment?
- No. Operation, maintenance, and eventual retirement are integral life-cycle phases; in most systems maintenance and evolution dominate total cost and span the longest period of the life cycle.