Software Development Life Cycle (SDLC)
- Software Development Life Cycle (SDLC) is a term used by the software industry to define a process for designing, developing, testing and maintaining a high quality software
product.
- Also known as Software Development Process.
- The goal is to use SDLC defined processes to develop a high quality software product that meets (in fact, exceeds) customer demands.
- ISO/IEC 12207 is an international standard for software life-cycle processes.
Phases of SDLC
Phase#1: Planning and requirements definition
- Planning includes clearly identifying customer and/or market needs, pursuing a feasibility study and arriving at an initial set of requirements.
- Requirements definition includes documenting detailed requirements of various kinds: System-level, functional, software, hardware, quality requirements etc. They get approved by appropriate stakeholders.
- Requirements analysis includes checking and analyzing requirements to ensure that they are consistent, complete and match the feasibility study and market needs.
Typical work products: Requirements documents of various kinds, project plan.
Phase#2: Design and Architecture
- Design identifies all the modules of the software product, details out the internals of each module, the implementation details and a skeleton of the testing details.
- Architecture defines the modules, their connections and other dependencies, the hardware, database and its access etc.
- Design and architecture are hand in glove with each other.
- Usually, validation of the design and architecture is done.
Typical work products: Design and architecture documents or models.
Phase#3: Development