SDLC — Software Development Life Cycle

A comprehensive reference on Software Development Life Cycle for autonomous AI agents and agentic engineering workflows. Based on IEEE Std 830, ISO 9126, CMM, COCOMO, Halstead Metrics


Table of Contents

  1. Introduction to SDLC
  2. Software Process Models
  3. Requirements Engineering
  4. Software Requirements Specification (SRS)
  5. Software Design Principles
  6. Size & Cost Estimation
  7. Software Metrics
  8. Risk Management
  9. Software Testing
  10. Software Quality Models
  11. Software Maintenance & Evolution
  12. Key Tools & Notations

1. Introduction to SDLC

The Software Development Life Cycle (SDLC) is a structured process that guides the development of software systems from initial concept through deployment and maintenance. For agentic engineering — autonomous AI agents that design, build, test, and maintain software — SDLC provides the foundational framework for systematic, repeatable, and high-quality software production.

Key Phases of SDLC

Phase Description
Requirements Analysis Elicit, analyze, and document stakeholder needs
System Design Define architecture, components, interfaces, and data flow
Implementation Write code following design specifications and coding standards
Testing Verify functionality, performance, reliability through structured testing
Deployment Install software on target platforms and make it available to users
Maintenance Continuously improve, fix bugs, adapt to changing requirements

Why SDLC Matters for Agentic Engineering

Software Engineering as a Discipline

Software engineering bridges theory and practice by providing structured methodologies, best practices, and systematic approaches. It emphasizes requirements engineering, design principles, coding standards, rigorous testing, documentation, project management, and risk mitigation.


2. Software Process Models

Software process models define the stages, activities, and tasks involved in developing software. The choice of model depends on project size, complexity, requirement stability, and team structure.

Waterfall Model

A linear, sequential approach where each phase must complete before the next begins.

Phases: Requirements -> Design -> Implementation -> Testing -> Deployment -> Maintenance

Pros Cons
Clear structure and milestones Limited flexibility — changes are difficult once a phase completes
Document-driven, easy to manage Working software appears late in the lifecycle
Suitable for stable, well-understood requirements Late discovery of design flaws

Iterative & Incremental Models

Development occurs in repeating cycles, each producing a more complete version. Includes Agile (Scrum, Kanban), Spiral, and RAD approaches.

Pros Cons
Early feedback and user involvement Risk of scope creep if changes are not managed
Adaptable to changing requirements Requires disciplined iteration management
Reduced risk through incremental delivery More complex project tracking

Agile Model

A flexible, collaborative approach emphasizing individuals, working software, customer collaboration, and responding to change. Delivers working software in short iterations (sprints).

Pros Cons
Adaptability and rapid delivery Active customer participation required
Frequent customer feedback May lack comprehensive documentation
Early and continuous delivery of value Difficult to predict final delivery date

V-Model (Verification & Validation)

Extends Waterfall by pairing each development phase with a corresponding testing phase. Emphasizes early test planning and quality assurance.

Requirements ---> Acceptance Testing
     |
     v
 High-Level Design ---> System Testing
     |
     v
 Detailed Design ---> Integration Testing
     |
     v
  Implementation ---> Unit Testing
Pros Cons
Strong focus on testing and quality Limited flexibility for requirement changes
Well-structured approach Not suitable for iterative/exploratory projects
Test planning begins early High documentation overhead

3. Requirements Engineering

Requirements engineering is the systematic process of eliciting, analyzing, documenting, validating, and managing requirements throughout the project lifecycle.

Types of Requirements

Requirements Elicitation Techniques

Requirements Analysis


4. Software Requirements Specification (SRS)

An SRS is a formal document that defines the complete external behavior of a software system. It serves as a contract between stakeholders and developers.

IEEE Std 830 SRS Structure

Section Content
Introduction Purpose, scope, definitions, references, overview
Overall Description Product perspective, user characteristics, constraints, assumptions
Specific Requirements Functional requirements, external interfaces, performance, logical database, design constraints, software system attributes
Appendices Additional supporting information

Characteristics of a Good SRS


5. Software Design Principles

Design principles guide the creation of robust, maintainable, and scalable software architectures.

Core Principles

Design Approaches


6. Size & Cost Estimation

Estimation Techniques

Technique Description
Expert Judgment Experienced professionals estimate based on past projects
Analogous Estimation Compare with similar completed projects
Parametric Models Use mathematical models (function points, LOC)
Three-Point Estimation Optimistic + Most Likely + Pessimistic / 3
Planning Poker Agile team consensus estimation with story points

COCOMO (Constructive Cost Model)

COCOMO estimates effort, cost, and schedule based on project size and complexity.

Model Description
Basic COCOMO Effort = a * (Size)^b where size is in KLOC
Intermediate COCOMO Adds cost drivers (product, hardware, personnel, project)
Detailed COCOMO Applies intermediate model to each phase separately

Function Point Analysis

Measures software size based on functionality delivered:


7. Software Metrics

Process Metrics

Product Metrics

Halstead Metrics

Based on count of operators and operands in the code:

Quality Metrics


8. Risk Management

Risk Categories

Category Examples
Technical Unfamiliar technology, complex integrations, scalability issues
Schedule Unrealistic timelines, resource shortages, dependency delays
Cost Budget overruns, estimation errors, scope creep
Operational Deployment failures, environment mismatches, data migration
Security Vulnerabilities, data breaches, compliance violations

Risk Management Process

  1. Identification — discover and document potential risks
  2. Analysis — assess probability and impact (qualitative + quantitative)
  3. Prioritization — rank risks by severity (Risk Score = Probability * Impact)
  4. Response Planning — define mitigation, contingency, and avoidance strategies
  5. Monitoring — track risks throughout the project lifecycle

Risk Response Strategies


9. Software Testing

Testing Levels

Level Focus Who Performs
Unit Testing Individual functions, methods, classes Developers
Integration Testing Interactions between modules Developers + QA
System Testing Complete system behavior QA Team
Acceptance Testing User requirements validation End Users + QA

Testing Types

Test Automation

Automated testing is essential for agentic engineering workflows. Key principles:


10. Software Quality Models

ISO 9126 Quality Model

Characteristic Sub-Characteristics
Functionality Suitability, accuracy, interoperability, security
Reliability Maturity, fault tolerance, recoverability
Usability Understandability, learnability, operability
Efficiency Time behavior, resource utilization
Maintainability Analyzability, changeability, stability, testability
Portability Adaptability, installability, conformance, replaceability

CMM — Capability Maturity Model

Level Description
Level 1 — Initial Ad-hoc processes, unpredictable outcomes
Level 2 — Managed Project-level processes, repeatable practices
Level 3 — Defined Organization-wide standard processes
Level 4 — Quantitatively Managed Process measured and controlled with metrics
Level 5 — Optimizing Continuous process improvement

11. Software Maintenance & Evolution

Types of Maintenance

Maintenance Challenges

Evolution Strategies


12. Key Tools & Notations

Modeling & Design Tools

Tool Purpose
UML (Unified Modeling Language) Visual modeling of software systems
ER Diagrams Entity-relationship data modeling
DFD (Data Flow Diagrams) System data flow and processing
Flowcharts Algorithm and process visualization
Architecture Decision Records (ADR) Documenting architectural decisions

Project Management Tools

Agentic Engineering Considerations

For autonomous AI agents, the following tools and practices are particularly relevant:


References: IEEE Std 830, ISO 9126, CMM, COCOMO, Halstead Metrics