SDLC (Software Development Life Cycle) is essentially a process that consist a series of planned activities to develop, alter or manage the software or piece of software. SDLC is a structure to develop a software product that defines the process for planning, implementation, testing, documentation, deployment, and ongoing maintenance and support. The methodology within SDLC process can vary across industry and organization, but the steps or phases remains same.

SDLC simply a process that followed by a software organization to develop high quality software within time and budget. It consists of detailed plan to develop, alter, maintain and replace a software project. It also defines methodology to improve quality and development process of software. This term mainly used in Software Engineering.

Following are the phases of SDLC

  1. Requirement gathering
  2. Analysis
  3. Design
  4. Implementation (Coding)
  5. Testing
  6. Deployment
  7. Maintenance

1. Requirement gathering

This is a fundamental phase of SDLC where User requirements or Business requirements will gather. Requirement will be gathering as an answer of the following question,

  • What is the purpose of developing software?
  • Who is going to use software?
  • How end user will use software?
  • What should be the input for software?
  • What will be the output from software? 
  • Where will the software use?

Requirements are usually consist of natural language and supplemented by diagrams for better understanding. This phase may include Functional and Non functional requirements.

A functional requirement defines a function of a system or its component. A function is described as a set of inputs, the behavior, and outputs.

Non functional Requirements define system attributes such as Performance, Scalability, Capacity, Availability, Reliability, Recoverability, Maintainability, and Serviceability.

2. Analysis

Analysis represents the “What” (What are the actual requirements?) and “How” (How requirements accomplished independently?) phase. After requirement gathering, requirement will be analyzed for validity and fulfillment.

Analysis phase starts with the document delivered by requirement gathering phase and maps it into a full architecture. Detailed information on programming language, environment to accomplish task, team, resources, platforms and algorithms etc established in this phase.

3. Design

In this phase all system and software design will prepare from the specification which come from analysis phase. Design phase clearly defines all modules of system with the help of relational diagrams. Testers will also define their “Test Strategy” (like what to test and how to test) in this phase.

The clear determination of how the system will look and how it will function can be done in detailed manner.

4. Implementation (Coding)

Given architecture document from the design phase and the requirement document from the analysis phase, the team should implement or build exactly what has been requested through programming code. The main focus of the developer is code here. High level programming languages are used for coding (such as C#, JAVA, PHP etc). In this phase system can be ready to deploy in user’s live environment.

5. Testing

Simply everyone knows the quality of system is very important and testing phase helps to create good quality. At this phase whole system is tested to make sure that system is actually fulfill the entire requirement that gathered in requirement phase.

As all know, it is hard to find own mistake and a fresh eye can find it better. So, testing team finds defects, flaws, errors or bugs that can be made by developer and resend it to respective phase to fix it. All the Functional Testing like Unit Testing, Integration Testing, System Testing and Non Functional Testing will do at this phase.

6. Deployment

Once the system is developed and tested properly, it will be ready to deploy means ready to deliver to user. System is not released fully at first place or we can say that release can be done in limited segment first and tested. It is called “Beta Version”. If any bugs found at this stage, will be reported to engineering team and after solving it the final deployment will take place.

7. Maintenance

Once system is delivered to customer maintenance phase starts. While using the system, if user gets any problem will solve in this phase by organizations’ support team. The team at this stage makes sure that the released system could not make any problems to users who are using it.

SDLC Models

There are various Software Development Life Cycle Models has been defined according to different requirement. Each model has its unique series of steps or approaches to successfully accomplish user requirements.

Following are some popular SDLC models,

  • Waterfall Model
  • Iterative Model
  • Spiral Model
  • Agile Model
  • V Model
  • Big Bang Model
  • RAD Model