Saturday, September 17, 2011

Software Development Life Cycle [SDLC]

    A software development process, also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle. 

    There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. Some people consider a lifecycle model a more general term and a software development process a more specific term. 


  PLANNING STAGE
The planning stage establishes a bird's eye view of the intended software product and uses this to establish the basic project structure, evaluate feasibility and risks associated with the project, and describe appropriate management and technical approaches.  
  
The most critical section of the project plan is a listing of high-level product requirements, also referred to as goals. All of the software product requirements to be developed during the requirements definition stage flow from one or more of these goals. The minimum information for each goal consists of a title and textual description, although additional information and references to external documents may be included.  The outputs of the project planning stage are this SDLC description, the Software Configuration Management Plan (SCMP), the Software Quality Assurance Plan (SQAP), the Software Project Management Plan(SPMP) and the associated project or component schedule.




REQUIREMENTS DEFINITION STAGE  

The requirements gathering process takes as its input the goals identified in the high-level requirements section of the project plan or component iteration plan, as applicable. Each goal is refined into a set of requirements.  These requirements define the major functions of the intended application (generally termed operational data areas and reference data areas) and define the initial data entities. Major functions include critical processes to be managed, as well as mission critical inputs, outputs and reports. A user class hierarchy is developed and associated with these major functions, data areas, and data entities.  Each of these definitions is termed a Requirement. Requirements are identified by unique requirement identifiers and, at minimum, contain a requirement title and textual description.   

 
 

DESIGN STAGE

The design stage takes as its initial input the requirements identified in the approved SRD and LDD. For each requirement, a set of one or more design elements are produced as a result of interviews, workshops, and/or prototype efforts.  Design elements describe the desired software features in detail. The Software Design Document (SDD) contains the functional or dynamic design elements, such as functional hierarchy diagrams, screen layout diagrams, business rules, business process diagrams, and pseudocode.  The Physical Database Description (PDD) contains the static or structural design elements such as the entity- relationship diagram, the access control matrix, and the 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.  



When the SDD and PDD are finalized and accepted, the RTM is updated to show that each design element is formally associated with a specific requirement. The outputs of the design stage are the SDD, the PDD, an updated RTM, and an updated CIP or SPMP.


DEVELOPMENT STAGE
The development stage takes as its inputs the design elements described in the approved SDD and PDD.  For each design element, a set of one or more software artifacts are produced.  Software artifacts include but are not limited to menus, dialogs, data entry forms, data reporting formats, and specialized procedures and functions.  Appropriate test cases are developed for each set of functionally related software artifacts and an online help system is developed to guide users in their interactions with the software. 

 


INTEGRATION & TEST STAGE

During the integration and test stage, the software artifacts, online help, and test data are migrated from the development environment to a separate test environment.  At this point, all test cases are run to verify the correctness and completeness of the software.  Successful execution of the test suite confirms a robust and complete migration capability.  During this stage, reference data is finalized for production use and production users are identified and linked to their appropriate roles. The final reference data (or links to reference data source files) and production user list are compiled into the Deployment Plan (DP).  
  
 
INSTALLATION & ACCEPTANCE STAGE
During the installation and acceptance stage, the software artifacts, online help, and initial production data are loaded onto the production server as specified by the deployment plan. At this point, acceptance test cases are run to verify the correctness and completeness of the software. Successful execution of the test suite is a prerequisite to acceptance of the software by the customer.  After customer personnel have verified that the initial production data load is correct and the test suite has been executed with satisfactory results, the customer formally accepts the delivery of the software.  


 =====================================================================

Videos on Software Development Life Cycle

SDLC






Waterfall Model & V Shaped Model



Spiral Model 






0 comments:

Post a Comment