Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC)
Spread the love

SDLC is Software Development Life Cycle. It is also referred as System Development Life Cycle. SDLC describes how to create and maintain software product. It is a process for Requirement Gathering, Planning, Designing, Coding, Testing, Implementation and Maintenance.

  • Every software product starts with a request for the product by the customer 
  • The software life cycle can be considered as the business process for software development and therefore is often referred to as a Software process. (SLCM-Software Life Cycle Model). 
  • Process models – It describes models in more detailed and precise life cycle activities. 
  • Different Stages in a Life cycle model
    • Feasibility study stage 
    • Requirements analysis and specification. 
    • Planning
    • Design 
    • Coding 
    • Testing 
    • Deployment and Maintenance. 
  • A SDLC is a series of identifiable stages that a software product undergoes during its lifetime. 
  • A SDLC is a descriptive and diagrammatic representation of the software life cycle. 
  • A life cycle model maps the different activities performed on a software product from its beginning to retirement into a set of life cycle phases. 

 7 Phases of  Software Development Life Cycle (SDLC)

# Feasibility study:

Feasibility study is going to assess the project plan or method. This is done by using various techniques like analyzing technical, economic, legal, operational, schedule, Market and time feasibility factors. It is conducted mostly by Business Analysist, Project Manager, Architects, Accountants, Legal Teams and Marketing Analyst based on the factors.

The Feasibility study is going to specify whether to continue, modify or abandon the project.

Also Read: Document Management System (DMS): The Complete Guide

# Requirement Analysis and Specification:

Collection of Requirements from the Client. It includes Design documents typically include functional hierarchy diagrams, screen layouts, business rules, process diagrams, pseudo-code, and a complete data model with a data dictionary. gathering information from the client, internal and external experts, and managers to understand their needs, objectives and expectations for the project. After collection of requirements need to analyze based on scope of the project. It is mostly conducted by Business Analyst, System Analyst, Product Owner and Product Managers.

# Documents prepared include 

BRS (Business Requirement Specification) -Business objectives and Stakeholder Requirements.

FRS (Functional Requirement Specification) -Functional requirements.

SRS (Software Requirement Specification) -Functional requirements and nonfunctional requirements.

User Stories -simple description in perspective of End user.

Requirement documents are used in understanding the project scope and requirements. It helps to ensure the satisfaction of all the parties involved in the project.

# Planning:

Planning is crucial for organizing and managing the project effectively in Software development. After gathering and documenting the requirements, the next phase typically involves project planning. It defines scope, objectives, timelines, resources, and budget. The project planning phase is the most challenging phase for a project manager. Project Plan mostly includes Project Scope, Resource Allocation, Estimation Cost, Schedules, Risk Management and Communication Plan.

Documents prepared include:

Project Plan -Scope of the whole project.

# Design:

Software requirements gathered in the Requirement analysis phase are transformed into a structured document. It plays a crucial role in developing Blueprint of the system. Design documents typically include functional hierarchy diagrams, screen layouts, business rules, process diagrams, database, security and performance designs. It is done by System Architect, UI/UX Designer and Developers.

Documents prepared include: 

High level Design (HLD) -Design related to entire system. It concentrates on Flow charts, Decision tables, Flow Diagrams, Decision Trees etc.,

Low level Design (LLD) -Design related to Component level. It concentrates on User Interface.

# Coding:

Design specifications are transformed into Actual code. The team is going to build the functionality of the product. Developers write the code based on the design and requirement documents for component, module or feature using programming languages, programming tools like interpreters, compilers, debugger. Performing unit testing, Integration of different modules, reviewing code, debugging of the code are the activities done.

Documents prepared include:

Source Code -Actual code written by developers.

Code Review –Findings from feedback.

Unit test -Validate individual component or feature.

Change Log -Changes made in the code.

# Testing:

After development of the software, the software is deployed in a testing environment. The team starts testing with various methodologies to check whether the software is working according to system requirements or not. If find any deviation send it to the concerned team to fix the issues. It is done till software requirements are fulfilled. Software Testing can be done Manual or Automation. We can have different types of testing to free software from bugs. They are Unit Testing, Integration Testing, System Testing, Acceptance, Regression, Performance, Security, Usability Testing, Compatibility Testing and many more.

Documents prepared include

Test Plan -Scope and Approach.

Test Design -Test Scenarios and Test Cases.

Test Script -Automation.

Test Execution – Identify, detect and log the defects.

Test Closure – Summarizes the testing activities, results, and defects.

Also Read: Verification and Validation: Building the Right Product Correctly

# Deployment and Maintenance:

Deployment is done when the software meets the customer requirement. Sometimes software may go for UAT (User Acceptance Testing) before going for deployment based on the needs of the customer. If UAT is successful, then software goes for release in the live working environment. Automation deployment, Version Control, Rollback, Release Notes are mostly done during Deployment.

Documents prepared include:

Deployment plan -Detailed scope and approach of the plan.

Rollback plan -Steps to reverse if any failures.

Deployment Checklist -Checklist of task before, during and after Deployment.

Release Notes -Describes New features, improvements and known issues.

Installation guide -How to install software.

User Manual -How to use it.

Maintenance – After the software is successfully released. If a user finds any findings while using the software, then the findings are fixed as early as possible without effecting other parts of the software. If an enhancement that must be made. Some of the activities include Monitoring and supporting, Issue fixing, Updates, Security, Performance, Feedback and Support. In maintenance we need to take care of software from time to time.

SDLC models are selected based on the software objectives. To fulfill these objectives various development models are available. Picking the right model is very important.

Different software models or methodologies

1. Waterfall

2. Agile

3. Scrum

4. Kanban

4. Extreme programming

5.DevOps

6. Spiral model

7. V model

8. RAD model

9. Iterative

10. Big Bang