Software Development Life Cycle Overview

Software industries use SDLC process to design, develop and test high quality software. The aim of SDLC is to produce a high quality software that meets customer expectations, reaches completion within times and cost effective.

  • SDLC is the acronym of Software Development Life Cycle.
  • It is also called as Software development process.
  • The SDLC is a framework defining tasks performed at each step in the software development process.
  • ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to define all the tasks necessary for developing and maintaining software.

SDLC consists of a detailed plan describing how to develop, maintain, replace and modify specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.

Here is the graphical representation of the various stages of a SDLC

Stages of SDLC:

Stage 1: Requirement Gathering

Requirement analysis and gathering is the most important and fundamental stage in SDLC. It is performed based on inputs from the customer, the sales department, market surveys and domain experts in the industry. This forms the base for planning a project approach. This phase also includes planning for quality assurance necessities and finding of risks associated within the project.

Stage 2: Feasibility Study

After doing with the requirement analysis, the next step is to clearly define and document the raw plan of software process and get them approved from the customer. This is done through SRS , Software Requirement Specification document.

Stage 3: Software Design

The next step is to materialize whole knowledge of requirements and analysis and design the software product. Based on the requirements specified in SRS, usually more than one design mode of approach for the product is proposed and documented in a Design Document Specification(DDS). After reviewing the DDS, the best design approach is selected  the product.

Stage 4: Coding

This is called programming phase and the programming code is generated as per the DDS . If a detailed and organized design is performed , code generation can be accomplished without much hassle.

Developers follows the coding guidelines defined by their organization and use programming tools like compilers, interpreters, debuggers etc to generate the code. Different high level programming languages such as C, C++, Pascal, Java, and PHP are used for coding and these languages are chosen as per what the requirement is for the software being developed.

Stage 5: Testing

Software Testing is a sub set of all the stages as in the modern SDLC models. Initially peer testing is done and then a thorough testing is conducted by testing experts at various coding levels such as module testing, program testing, product testing, in-house testing and testing the product at user’s end. Early discovery of errors and their remedy is the key to reliable software.

Stage 6: Deployment and Maintenance

After the product is tested and ready to be deployed it is finally released in the appropriate market. Sometime the product deployment happens in stages as per the organizations. The product is first released in a limited segment and tested in the real business environment (I.e UAT).

Then based on the feedback, the product may be released as it is created or with suggestions for enhancements in the targeting market . After the product is released in the market, its has to be maintained for the existing customer base.

SDLC Models

Various software development life cycle models are designed which are followed during software development . The models are also referred as “Software Development Process Models”. And each process model follows a series of unique steps unique in order to ensure success.

Following are the most important and popular SDLC models followed in the industry:

  • Waterfall Model
  • Iterative Model
  • Spiral Model
  • V-Model
  • Big Bang Model

The other similar methodologies are Agile Model, RAD Model, Rapid Application Development and Prototyping Models.