Software Developement Life Cycle (SDLC)

Software Development Life Cycle (SDLC) is the process of developing software through business needs, analysis, design, implementation and maintenance.

1. Information Gathering : In this stage, Business Analyst studies the requirement of the client /customer and they prepare Business Requirement Specification (BRS) documents.

2. Analysis : In this stage, Sr. Analyst prepares Software Requirement Specification (S/w RS) document with respect to corresponding BRS document. This document consists of two sub-documents System Requirement Specification (SRS) & Functional Requirement Specification (FRS). SRS contain details about software & hardware requirement. FRS contains details about the functionality to be used in project.

3. Design : In designing phase, Designers creates two documents High Level Document (HLD) & Low Level Document (LLD). HLD consists of main modules of the project from root to leaf and multiple LLD’s. LLD consists of sub-modules of main module along with Data flow diagrams, ER-Diagrams, etc., are prepared by technical support people or designers called Internal designers.

4. Coding : If you compare it to a business model, coding is the “operations” of the software development plan. Everything is realized during this stage. The colors and the functions are gradually developed at this point. Developers will make use of different kinds of coding techniques in their preferred platforms. They may create different platforms or create a mash-up of different platforms to different programs. Whatever their coding technique is, they will be adhering to the plans set out by the workflow. Once the program is finished, a prototype is set out for the next stage of the process.

5. Testing : Of course the program, on its first run will not perfect or wouldn’t exactly work as planned. It has to go through rigorous testing. In this stage, bugs are found and some irregularities in the software are somehow fixed. If something goes wrong with the program, it could be fixed with a simple change in codes but if the program is not working as planned, it will be returned to the developers for another round of coding. Testing will make sure the customer gets what they want all the time. Nothing is compromised during this stage. Depending on the program’s coding efficiency, testing could last for a very long time.

6. Implementation : Once testing is finished and the software is proven good for implementation, it is released to the public or will be removed from beta version. It’s expected that on first days, developers will face serious challenge of fixing different bugs as they are discovered one by one by different users. The main difference of the implementation stage to the testing is the amount of bugs expected. Since they are implemented to the public or a wider audience, it’s already expected that it should work properly.

7. Maintenance : With the software properly implemented, developers role in this software does not end there.  Instead, they will have to work reactively for this software. Instead of looking for the problems in their created software, developers will only be providing answers to their problems.