Skip to main content

SDLC – Software Development Life Cycle

 


Software Development Life Cycle is a process used by software development industry to develop high quality software. This consists of a detailed plan describing how to develop, maintain, replace and enhance specific software.

The following figure is a graphical representation of the stages of a typical SDLC.





Requirement Analysis Phase:

This is the most important and the fundamental stage of the SDLC, performed by the most senior members (Project Manager, Business Analyst, Designer, Test Lead, Subject Matter expert) of the team with inputs from the customers, market surveys and domain experts in the industry.

This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational and technical areas.

Requirement Analysis phase completes when the client signs of the SRS - Software Requirement Specification.

Design Phase:

Based on the requirements specified in SRS design approach for the product architecture is proposed and documented in a DDS - Design Document Specification. DDS clearly defines all the architectural modules of the product along with its communication and data flows between modules, external and third-party modules (if any).

Development Phase:

The actual development starts and product is starting to build based on the Design Document Specification (DDS). Developers of all levels (seniors, juniors) involved in this phase. The outcome of this phase is SCD - Source Code Document and the developed product.

Testing Phase:

This phase is usually a subset of all the phases as in modern SDLC models, the testing activities are mostly involved in all the stages of SDLC. In this phase Testers test the software manually or using automated testing tools as per the process defined in the STLC - Software Testing Life Cycle.

The outcome of this phase is the quality product and the Testing Artifacts (Test Strategy, Test Plan, Test Case, Test Data, Requirement Traceability Matrix, Defect report, Test Closure reports ect.)

The difference between an Use Case and Test Case

Implementation and Maintenance

Once the product is tested and ready to be deployed it us released formally in the appropriate market.

Sometimes product deployment happens in stages as per the business strategy of that organization. The product may first be released in a limited segment and tested in the real business environment where that process identified as UAT- User acceptance testing.

Based on the feedback from the UAT, the product may be released as it is or with suggested enhancements in the target market segment. After the product is released in the market, its maintenance is done for the existing customer base as per a SLA - Service Level Agreement.

Types of Software Development Life Cycle Models

Some of the most important and popular SDLC models followed in the industry are;

  •   Waterfall Model
  •    Iterative Model
  •    V-Model
  •   Spiral Model
  •   Big-Bang Model

Comments

Popular posts from this blog

Defect Management Process

Importance of the defect management process in software development teams Provide developers and other parties with feedback about the problem to enable identification, isolation and correction as necessary; Provide test leaders means of tracking the quality of the system under test and the progress of the testing; Provide ideas for test process improvement Fields in a bug report Bug ID: A bug number or an identification number makes bug reporting and referring to a bug much easier Bug Title: A bug title is read more often than any other part of the bug report. It should say all about what comes in the bug. Also, the bug title should be suggestive enough that the reader can understand it. Priority: Based on the severity of the bug, a priority can be set for it. A bug can be a Blocker, Critical, Major, Minor, Trivial, or a suggestion. A bug priority from P1 to P5 can be given so that the important ones are viewed first. Platform/ Environment: The OS and browser configuration is nece...

End to End Test vs Component Test

E2E Test E2E - End to End Tests help verify high value paths in an application. In other words, they help verify user stories as they often represent in the application. The main purpose of E2E testing is to test from the end user’s experience by simulating the real user scenario and validating the system under test. Basically these tests check the complete end-to-end process flow - The one happy scenario   Below are the E2E test cases we can write for the Graph feature Scenario 1 : User can add a Graph Scenario 2 : User can rename the Graph Scenario 3: User can add data to the Graph Scenario 4: User can remove the data from the Graph Scenario 5: User can manage the time zone Scenario 6: User can delete the Graph As an example, let’s say we need to write E2E test for Rename Graph scenario. Below is the flow we should cover. Log in as an Admin → Navigate to the Data Studio → Click on a Dashboard → Click on the graph ellipsis menu → Click on “Rename Graph” → Ent...