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

Software Testing Life Cycle – STLC

  Software Testing Life Cycle defines the various phases in the testing of software. In this, each activity is carried out in a planned and a systematic way. Each phase has different goals and deliverables. Below are the phases of STLC Requirement Analysis Test Planning Test Case Development Test Environment set up Test Execution Test Reporting/ Test Cycle Closure Phases and activities in STLC Phase   Entry Criteria Activities Performed Deliverable Requirement Analysis Software Requirement  Design Document User Acceptance Criteria Brainstorming of requirements Understand the feasibility of the requirements Do automation of feasibility study Testing Feasibility Report Test Planning Updated requirement document Test Feasibility Report Define the scope of the project Identify the risks of the project Determine the test approach, techniques, covera...

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...

Use Cases and Test Cases

  What is a Use Case In Software Development Environment Use Case is identified as the list of actions or steps typically defining the interactions between actors and the system in order to perform a feature of the software. The actor can be a human or an external system.  What is a Test Case A Test Case is a document which consists of a set of conditions or actions which needs to perform on the software in order to verify expected functionality of the feature. When comparing these two terms we can see a few clear differences between these two as below Use Case   Test Case Components - Use Case name, Actors, Pre Conditions, Assumptions, Post Conditions, Business Rules, Normal Process flow, Alternative process flow Components - Test Case ID, Test Case Title, Pre-Conditions, Test Case Description, Expected Results, Actual Results, Priority, Complexity, Bug ID Describes the overview of the software functio...