Generally termed as SDLC. is the conceptual framework which clearly defines what tasks must be performed at each stage and by whom, within scheduled timeframe and at operational cost.
SOFTWARE DEVELOPMENT LIFE CYCLE
WHY IS SOFTWARE DEVELOPMENT LIFE CYCLE NECESSARY?
Software Development Life Cycle Stages
Project Kickoff / Project Initiation
Here two things are mainly focused:
* What is needed?
* What is not needed?
In “What is needed?” part, the requirements are further analyzed to understand what are:
* Functional Requirements
* Non-functional Requirements
Requirements Gathering
Requirements can be gathered using the following tools/techniques:
Analysis or System Analysis
*All the technical details like technologies to use, project constraints, team’s capability, etc goes into the design specification document.
System Design
This stage in simpler terms is where the “real work begins” and we “build what is needed”.
Development
Testing
Deployment
Operation and Maintenance
are the conditions that are required to begin the processing of the current stage.
Entry criteria
are the conditions which sets the stage as completed so that the next stage comes into action.
Exit criteria
Waterfall Model
Waterfall Model is best suitable when:
Pros of Waterfall Model
Cons of Waterfall Model
The main thing to focus here is to prioritize the modules that goes into different iterations. This usually is taken care in the design stage. This model ensures that each iteration undergoes rigorous validation of the developed requirements. Every cycle / iteration here will have the tests to repeat for the previous cycle / iteration and the tests for new modules added.
Iterative Model
Iterative Model is applicable when:
Pros of Iterative Model
Cons of Iterative Model
Spiral Model
Determine Objectives, Alternatives, Constraints
Identify and Resolve Risks
Develop and Test