SDLC

SDLC (Software Development Life Cycle)
The following phases Describes the Project Development process.
Project Initiation/planning
During this phase generate a high-level view of the intended project and determine the goals of the project.
The feasibility study is sometimes used to present the project to management in an attempt to gain funding / Budget for the project.
Projects are typically evaluated in three areas of feasibility: economical, operational, and technical.
Analysis / Requirement Gathering
During this phase Project Manager / Business Analyst should be responsible to discuss with the Stake Holders (Business users) and find out the requirements for the project
Following are the Different Categories of Requirements
Customer Requirements
Functional Requirements
Non-functional Requirements
Performance Requirements
Design Requirements
Derived Requirements
Allocated Requirements

Design
In systems design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The output of this stage will describe the new system as a collection of modules or subsystems.
The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts. Design elements describe the desired software features in detail, and generally include functional hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams, pseudocode, and a complete entity-relationship diagram with a full data dictionary. These design elements are intended to describe the software in sufficient detail that skilled programmers may develop the software with minimal additional input.
Build or coding
Modular and subsystem programming code will be accomplished during this stage. Unit testing and module testing are done in this stage by the developers. This stage is intermingled with the next in that individual modules will need testing before integration to the main project. Code will be test in every section.
Testing
The code is tested at various levels in software testing. Unit, system and user acceptance testing are often performed. This is a grey area as many different opinions exist as to what the stages of testing are and how much if any iteration occurs. Iteration is not generally part of the waterfall model, but usually some occurs at this stage.
Types of testing:
Data set testing.
Unit testing
System testing
Integration testing
Black box testing
White box testing
Module testing
Regression testing
Automation testing
User acceptance testing
Performance testing
Release and maintenance
The deployment of the system includes changes and enhancements before the decommissioning or sunset of the system. Maintaining the system is an important aspect of SDLC. As key personnel change positions in the organization, new changes will be implemented, which will require system updates.

Comments