About Software Development Life Cycle (SDLC)

Today we are going to learn about SDLC (Sftware Development Life Cycle) it means, the steps a software engineer needs to follow to produce good software separated in 5 different steps:

 

Requirements Gathering/Analysis

(Analyse user requirements)

This part is the pilar of the software development, is were the needs of the client are analyzed by the team and the expectations of the client are stablished in goals. To help the client and the team understand what is going to be developed a prototype can be made and presented in this phase of the SDLC.

Both client and team stablishes what, where and how things are going to be done, according the first statements of the project (The Idea and the first analysis).

Design

https://www.linkedin.com/pulse/idea-design-code-action-adeel-mannan
Obtained from: https://www.linkedin.com/pulse/idea-design-code-action-adeel-mannan

(Design the program)

In this phase the team needs to develop the technical details of the project.

The Business Requirements are used to define how the application will be written.

Some of the activities involved in this phase are:

Risk analysis

The code and the development needs to be analyzed to found vulnerabilities, also privacy and security areas are covered. For example, in a software application were you need to manage database systems related to users bank accounts, a more complex security and access algorithm is needed that in an app that is needed to access phone numbers in your e-mail or something like that.

Each of the areas that are vulnerable of the project needs to be treat as different cases of Risk analysis.

Functional Specifications

Includes a description and important details about the use of the final project, for example what is going to appear after clicking on “I Agree”, or what the updates are changging in the final product.

Non-Functional Specifications

code
debug
of the system/final product, also the quantity of resources the product needs or if it is going to be able to accept extended updates from the future expansions of the system.

Coding

code

(Code the program)

Here is were things get dirty, this is usually the longer part of the development process, taking all the hours developing different segments of the code, to finally have a unique application/product that is the input of the next phase.

 

Testing

debug

(Document and test the system)

In this point some errors may be found and the team needs to return to the previous phases to develop againd and avoid issues. The final part of this phase is the final user approvment. More of the deffects of the product must be cut off in order to have a good product.

 

Implementation/ Deployment

(Operate and maintain the system)

In this phase is analyzed the amount of time/resources to deploy the product, some training or practice needs in order to have the final product working for different users or IT staff.

One of two methods can be followed in a SDLC process.  Waterfall is the more traditional model and has a well structured plan and requirements to be followed.  This method works well for large projects that may take many months to develop.  The Agile Methodology is more flexible in the requirements, design and coding process and is very iterative.  This process works best for smaller projects and expectations of continuous improvement to the application.  Whether you use one over the other will also depend to a large extent on the corporation and skills of the IT dept.

 

Maintain the system

(Keep developing)

A little more explained step in the chain. In this step you need to repeat the coding, testing, and design phases to keep your system/final product working for different areas and different times.

Let´s take the example of systems like Android (registered) which doesn´t stop at one stage or at one area of development. The system is been updated many times to improve according the Testing phase. Also, the Design changes to cover all the user expectations and needs. Finally, a bunch of open source apps and IDE´s are uploaded everyday to let the user contribute in their needs.

 

 

Information about SDCL obtained at: https://airbrake.io/blog/insight/what-is-the-software-development-life-cycle

Thanks @Airbrake!