Computer Science (9618)
Topic 10 of 17Cambridge A Levels

Software Development Life Cycle

A structured process for creating high-quality software from concept to deployment and maintenance.

The Software Development Life Cycle (SDLC) is a systematic process used by the software industry to design, develop, and test high-quality software. The aim of the SDLC is to produce software that meets or exceeds customer expectations, reaches completion within times and cost estimates, and is effective and efficient. It provides a well-defined framework for development teams, ensuring a structured and manageable approach to complex projects.


### The Core Stages of the SDLC


The traditional SDLC consists of several distinct phases, each with its own set of activities and deliverables.


  • Analysis (Requirements Gathering & Feasibility Study)
  • This initial stage is the most critical. It involves gathering requirements from stakeholders (clients, users, experts) to understand the problem the software is intended to solve. Key activities include conducting interviews, surveys, and observing existing systems. The requirements are categorized into functional requirements (what the system must do, e.g., 'the user must be able to log in') and non-functional requirements (how the system performs a function, e.g., 'the login process must take less than 2 seconds'). A feasibility study is often conducted to assess the project's viability using criteria like TELOS (Technical, Economic, Legal, Operational, Schedule). The final output of this stage is the Software Requirements Specification (SRS) document, which serves as a blueprint for the project.


  • Design
  • In the design phase, the requirements from the SRS are translated into a detailed plan for the system's architecture. This stage defines *how* the system will be built. It is typically split into:

    * High-Level Design (HLD): Defines the overall system architecture, major components, their relationships, and the technologies to be used.

    * Low-Level Design (LLD): Provides a detailed design for each component, including data structures, algorithms, user interface (UI) layouts, and database schemas. Tools like UML (Unified Modeling Language) diagrams (e.g., Use Case, Class, Sequence diagrams), flowcharts, and pseudocode are heavily used to visualize and document the design.


  • Implementation (Coding)
  • This is the phase where developers write the actual code based on the design documents. The system is built in modules or units using the chosen programming language. Adherence to coding standards and best practices is crucial for creating clean, efficient, and maintainable code.


  • Testing
  • Once the code is written, it must be thoroughly tested to identify and fix defects. Testing is a multi-level process to ensure quality:

    * Unit Testing: Individual components or modules are tested in isolation to verify their functionality.

    * Integration Testing: Tested units are combined and tested as a group to check for errors in their interaction.

    * System Testing: The entire integrated system is tested to ensure it meets all the requirements specified in the SRS.

    * Acceptance Testing: The software is tested by the end-users or clients to confirm it meets their business needs. This can include alpha testing (internal testing) and beta testing (releasing to a limited external audience).

    Testing strategies include white-box testing (testing internal structures or workings of an application) and black-box testing (testing functionality without any knowledge of internal implementation).


  • Deployment (Installation)
  • After successful testing, the software is deployed to a production environment where it can be used by end-users. This may involve installing the software on servers, migrating data from old systems, and training users.


  • Maintenance
  • This is the longest phase of the SDLC. Once the software is operational, it requires ongoing maintenance to handle issues and evolving needs. There are three types of maintenance:

    * Corrective Maintenance: Fixing bugs or defects discovered by users.

    * Adaptive Maintenance: Modifying the software to remain compatible with a changing environment (e.g., a new operating system or hardware).

    * Perfective Maintenance: Improving or enhancing the software by adding new features or improving performance based on user feedback.


    ### SDLC Methodologies


    Different models or methodologies can be used to manage the SDLC stages.


    * Waterfall Model: A traditional, sequential model where each phase must be fully completed before the next begins. It is rigid and best suited for projects with stable, well-understood requirements. It does not easily accommodate changes.

    * Agile Methodology: An iterative and incremental approach that focuses on flexibility and collaboration. Work is broken down into small, time-boxed iterations or sprints. It welcomes changing requirements and emphasizes delivering working software frequently. Scrum is a popular Agile framework.

    * Spiral Model: A risk-driven model that combines elements of the Waterfall model with the iterative nature of Agile. Each loop of the spiral represents a phase, starting with requirement analysis and ending with client review. It is suitable for large, complex, and high-risk projects.

    * Rapid Application Development (RAD): Focuses on developing software quickly through prototyping, user feedback, and the use of reusable components. It prioritizes speed and user involvement over extensive pre-planning.

    Key Points to Remember

    • 1The SDLC is a structured framework for building software, ensuring quality and manageability.
    • 2Core stages are Analysis, Design, Implementation, Testing, Deployment, and Maintenance.
    • 3The Analysis phase defines 'what' the system should do, resulting in a Software Requirements Specification (SRS).
    • 4The Design phase plans 'how' the system will be built, using tools like UML diagrams and pseudocode.
    • 5Testing is a multi-level process (Unit, Integration, System, Acceptance) to identify and fix defects.
    • 6Maintenance is the longest phase and includes corrective, adaptive, and perfective activities.
    • 7Key methodologies include the rigid, sequential Waterfall model and the flexible, iterative Agile model.
    • 8The Spiral model is risk-driven, while RAD focuses on rapid prototyping and user feedback.

    Pakistan Example

    NADRA's Smart CNIC System Development

    The development and continuous upgrading of Pakistan's National Database and Registration Authority (NADRA) system for the Computerised National Identity Card (CNIC) is a prime example of applying an SDLC. A hybrid or Spiral model would be most appropriate. **Analysis:** The government required a secure, centralized biometric database to uniquely identify every citizen, prevent identity fraud, and facilitate e-governance. **Design:** Architects designed a highly secure, distributed system with centers across the country, capable of handling millions of records, biometric data (fingerprints, photo), and secure connections to other government bodies. **Implementation:** Software was coded for data entry terminals, biometric verification algorithms, and the secure production of the physical Smart Cards with a chip. **Testing:** The system underwent extreme testing for security vulnerabilities, data integrity, and performance under nationwide load, especially during election periods. **Deployment:** The system was rolled out incrementally to NADRA centers across Pakistan. **Maintenance:** This is a continuous process. NADRA performs **corrective maintenance** to fix bugs, **adaptive maintenance** to comply with new government security protocols, and **perfective maintenance** by adding new features like online renewal portals and integration with banking systems.

    Quick Revision Infographic

    Computer Science — Quick Revision

    Software Development Life Cycle

    Key Concepts

    1The SDLC is a structured framework for building software, ensuring quality and manageability.
    2Core stages are Analysis, Design, Implementation, Testing, Deployment, and Maintenance.
    3The Analysis phase defines 'what' the system should do, resulting in a Software Requirements Specification (SRS).
    4The Design phase plans 'how' the system will be built, using tools like UML diagrams and pseudocode.
    5Testing is a multi-level process (Unit, Integration, System, Acceptance) to identify and fix defects.
    6Maintenance is the longest phase and includes corrective, adaptive, and perfective activities.
    Pakistan Example

    NADRA's Smart CNIC System Development

    The development and continuous upgrading of Pakistan's National Database and Registration Authority (NADRA) system for the Computerised National Identity Card (CNIC) is a prime example of applying an SDLC. A hybrid or Spiral model would be most appropriate. **Analysis:** The government required a secure, centralized biometric database to uniquely identify every citizen, prevent identity fraud, and facilitate e-governance. **Design:** Architects designed a highly secure, distributed system with centers across the country, capable of handling millions of records, biometric data (fingerprints, photo), and secure connections to other government bodies. **Implementation:** Software was coded for data entry terminals, biometric verification algorithms, and the secure production of the physical Smart Cards with a chip. **Testing:** The system underwent extreme testing for security vulnerabilities, data integrity, and performance under nationwide load, especially during election periods. **Deployment:** The system was rolled out incrementally to NADRA centers across Pakistan. **Maintenance:** This is a continuous process. NADRA performs **corrective maintenance** to fix bugs, **adaptive maintenance** to comply with new government security protocols, and **perfective maintenance** by adding new features like online renewal portals and integration with banking systems.

    SeekhoAsaan.com — Free RevisionSoftware Development Life Cycle Infographic

    Test Your Knowledge!

    5 questions to test your understanding.

    Start Quiz