Depending on the source, the SDLC is described as having different phases and using different terms. Even so, there are common aspects. The following attempts to describe notable phases using notable terminology. The phases are somewhat ordered by the natural sequence of development, although they can be overlapping and iterative.
Conceptualization During conceptualization (a.k.a.
conceptual design, system investigation, feasibility), options and priorities are considered. A
feasibility study can determine whether the development effort is worthwhile via activities such as understanding user needs, cost estimation, benefit analysis, and resource analysis. A study should address operational, financial, technical, human factors, and legal/political concerns.
Requirements analysis Requirements analysis (a.k.a. preliminary design) involves understanding the problem and determining what is needed. Often this involves engaging users to define the requirements and recording them in a document known as a requirements specification.
Design During the
design phase (a.k.a. detail design), a solution is planned. The plan can include relatively high-level information such as describing the major components of the system. The plan can include relatively low-level information such as describing functions, screen layout, business rules, and process flow. The design phase is informed by the requirements of the system. The design must satisfy each requirement. The design may be recorded in textual documents as well as functional hierarchy diagrams, example screen images, business rules, process diagrams, pseudo-code, and
data models.
Construction During construction (a.k.a. implementation, production), the system is realized. Based on the design, hardware and software components are created and integrated. This phase includes testing sub-components, components and the integration of some components, but typically does not include testing at the complete system level. This phase may include the development of training materials, including user manuals and help files.
Acceptance The acceptance phase (a.k.a.
system testing) is about
testing the complete system to ensure that it meets customer expectations (requirements).
Deployment The deployment phase (a.k.a. implementation) involves the
logistics of delivery to the customer. Some systems are deployed as a single instance (i.e.
in the cloud), and deployment may be ad hoc and manual. Some systems are built in quantity and are associated with
manufacturing process and commissioning. This phase may include training users to use the system. It may include transitioning future development to support staff.
Maintenance During the maintenance phase (a.k.a. operation, utilization, support) development is largely inactive, although this phase does include
customer support for resolving user
issues and recording suggestions for improvement. Fixes and enhancements are handled by returning to the first phase, conceptualization. For minor changes, the cycle may be significantly abbreviated compared to initial development.
Decommission Decommission (a.k.a. disposition, retirement, phase-out) is when the system is removed from use, i.e., when it reaches
end-of-life. ==Practices==