Software Engineering Principles and Practices / Software Process Models

Software Development Life Cycle (SDLC)

The goal of SDLC is to produce software that meets customer expectations, reaches completion within time and cost estimates, and works effectively in the live environment.

🔄 The 7 Phases of SDLC

Most modern engineering follows these seven steps, regardless of the specific "model" (like Agile or Waterfall) they use.

  1. Planning & Requirement Analysis:

    • The most important stage. Engineers gather requirements from stakeholders (customers, sales, experts).

    • Goal: Define what needs to be built and identify risks.

  2. Defining Requirements (SRS):

    • All requirements are documented in an SRS (Software Requirement Specification) document. This acts as a contract between the developers and the client.

  3. Design (Architecture):

    • Designers and architects create the "Technical Blueprint."

    • High-Level Design (HLD): System architecture, database design.

    • Low-Level Design (LLD): Functional details, class diagrams.

  4. Implementation (Coding):

    • The actual "building" phase. Developers write code based on the design documents using chosen programming languages.

  5. Testing:

    • The software is checked for defects and bugs. We verify if the code meets the requirements defined in Phase 2.

  6. Deployment:

    • The software is released to the production environment (the real world). This might happen in stages (Alpha, Beta, Final).

  7. Maintenance:

    • Once users start using the software, bugs appear or new requirements arise. This phase involves fixing those issues and keeping the system running.


📉 The Cost of Change

The SDLC exists because of one golden rule in engineering: The later a bug is found, the more expensive it is to fix.

  • Requirement Phase: Fixing a misunderstanding costs $1.

  • Design Phase: Changing a diagram costs $10.

  • Coding Phase: Rewriting code costs $100.

  • Testing Phase: Finding a bug before release costs $1,000.

  • Production: Fixing a bug after the software is in the hands of millions of users can cost $10,000+ (or lead to lawsuits/lost reputation).


🚦 Key Deliverables

Each phase of the SDLC should produce a "Deliverable" (a tangible result):

Phase

Deliverable

Planning

Feasibility Study / Project Plan

Requirements

SRS (Software Requirement Specification)

Design

DDS (Design Document Specification)

Coding

Source Code / Built Product

Testing

Test Reports / Bug Logs

Deployment

Live Product / User Manual


💡 Why follow an SDLC?

Without an SDLC, projects suffer from "Scope Creep" (where the project keeps growing forever) and "Technical Debt" (where messy code makes future work impossible). The SDLC provides a clear roadmap and a way to measure progress.