SDLC Explanation

Introduction

 

Since DevOps is a methodology aimed at improving the quality and speed of software development, let's consider the development process itself and its stages.

The SDLC (Software Development Life Cycle) process aims to provide high-quality software that meets client expectations. The system development ought to be completed within the pre-defined timeframe and cost. An SDLC consists of an in-depth arrangement that explains the way to plan, build, and maintain specific software. Each part of SDLC has its own process and deliverables that feed into consecutive steps.

Phase 1

Plan: Requirement gathering



Requirements gathering is the initial stage of the SDLC process. It's conducted by the senior team members with input from all the stakeholders and domain specialists in the industry. Designing for the standard assurance requirements and recognition of the risks concerned is additionally done at this stage.

This stage offers a clearer image of the scope of the whole project and also the anticipated issues, opportunities, and directives that triggered the project.

Phase 2 

Plan: Analysis



Once the requirement gathering is done, the next step is to define and document the product requirements and get them approved by the customer. This is done through the Software Requirement Specification document (SRS).
Key people involved in this phase are the Project Manager, Business Analyst, and senior members of the team.

The outcome of this phase is a Software Requirement Specification.

Phase 3 

Plan: Design



High-Level Design (HLD): It lays out the architecture of the software product to be developed and is done by architects and senior developers.

Low-Level Design (LLD): It is done by senior developers. It describes how each and every feature in the product should work and how every component should work.

High-Level Design (HLD)

  • A brief description and the name of each module
  • A description of the functionality of each module
  • Interrelationship of the interface and dependencies between modules
  • Database tables defined with their key elements
  • Complete architectural schematics along with technology details

Low-Level Design (LLD)

  • Functional logic in modules
  • Database tables that include type and size
  • Full details of the interface
  • Solve all types of addiction problems
  • List of error messages
  • Full input and output for each module

The outcome from this phase is High-Level and Low-Level Documents

Phase 4

Code/Build



The system design phase is followed by the coding step. At this stage, programmers begin creating the entire system by writing code in the programming language of their choice. Tasks are broken down into units or modules and given to different engineers during the coding phase. It is the stage of the software development life cycle that lasts the longest.

The outcome from this phase is the Source Code Document and the developed product.

Phase 5 

Test/Release



When the software is ready, it is installed in the test environment. The testing team starts by checking the system's overall functionality. This is done to make sure the entire program functions in line with the client's requirements.

The QA and testing team may find any bugs or issues at this phase, which they report to the developers. The bug was fixed by the development team and sent back to QA again for testing. This procedure is repeated until the program is free of bugs, stable, and meets the system's business requirements.

The outcome of this phase is the quality product and the testing artifacts.

Phase 6

Deploy



The final deployment procedure begins after the software testing step is complete and there are no issues or bugs left in the system. The final software is published and examined for deployment difficulties, if any, based on the project manager's feedback.

Phase 7 

Maintenance



Following the system's deployment and the customers' use of the created system, the following 3 activities take place:

  • Bug fixing – bugs are reported because of some scenarios which are not tested at all
  • Upgrade - the process of updating an application to a newer version.
  • Enhancement – adding some new features 

The primary goal of this phase of the SDLC is to make sure that needs continue to be met and that the solution is still operating in accordance with the first phase's specifications.


 

Read also

Terraform State Managing Best Practice

In this article, we will look into Terraform State management. First, we'll define Terraform state and why it's necessary, then dive into some best practices for storing, structuring, and isolating state files. Then, we'll look at how to utilize a data source to reference the remote state, and finally, how to use the terraform state command to change the contents of the state file.

Basics of Containerization Docker Engine

Docker Engine is open-source software, the most popular container management platform, and considering that containerization in the field of software development is now an indispensable thing, this tool is really important and useful for every engineer who implements elements of DevOps methodology. Why? Let's consider this further.