Which of the following are phases in the software development lifecycle (SDLC)?
Design is a genuine SDLC phase, translating gathered requirements into architecture, interfaces and data models before implementation. It is a distinct stage in the lifecycle, preceding coding and testing, and is recognised alongside requirements gathering, implementation, testing and maintenance.
Why this answer
Option A (Design) is correct because designing the system architecture, components, interfaces, and data models is a core SDLC phase that translates requirements into a blueprint for implementation. Option B (Testing) is correct because verification and validation activities—unit, integration, system, and acceptance testing—form a recognized SDLC phase ensuring the software meets requirements and is defect-free. Option C (Deployment) is correct because releasing the built software into production or a target environment, including installation, configuration, and rollout, is a standard SDLC phase.
Option D (Requirements gathering) is correct because eliciting, analyzing, documenting, and validating stakeholder needs is the foundational SDLC phase that drives all subsequent work. Option E (Compilation) is not a phase but a build-time activity performed by a compiler within the implementation/build stage, so it does not represent a distinct SDLC phase.
Exam trap
CompTIA often tests the distinction between SDLC phases and technical activities. Candidates may mistakenly select compilation, thinking it is a phase, or incorrectly omit deployment or requirements gathering.