The software lifecycle defines the complete process by which software is conceived, developed, deployed, maintained, and eventually retired. In the context of modern engineering — particularly for complex systems such as autonomous platforms, embedded systems, or enterprise solutions — understanding the lifecycle is essential to ensure quality, reliability, and maintainability. The lifecycle acts as a roadmap that guides project teams through stages of development and management. Each stage defines specific deliverables, milestones, and feedback loops, ensuring that the software evolves in a controlled, traceable, and predictable way 1).
“The software lifecycle refers to a structured sequence of processes and activities required to develop, maintain, and retire a software system.” — 2) In other words, the lifecycle describes how a software product transitions from idea to obsolescence — incorporating all the engineering, management, and maintenance steps along the way. The lifecycle ensures:
In regulated domains like aerospace, automotive, and medical devices, adherence to a defined lifecycle is also a legal requirement for certification and compliance (e.g., ISO/IEC 12207, DO-178C, ISO 26262).
Different industries and projects adopt specific lifecycle models based on their goals, risk tolerance, and team structure. The most widely used models are explained in this chapter.
The Waterfall Model is one of the earliest and most widely recognised software lifecycle models. It follows a linear sequence of stages where each phase must be completed before the next begins 3).
Advantages:
Limitations:
An evolution of the waterfall approach, the V-Model emphasises testing and validation at each development stage. Each “downward” step (development) has a corresponding “upward” step (testing/validation).
Advantages:
Limitations:
Instead of completing the whole system in one sequence, the iterative model develops the product through multiple cycles or increments. Each iteration delivers a working version that can be reviewed and refined. Advantages:
Limitations:
Agile development (e.g., Scrum, Kanban, Extreme Programming) emphasises collaboration, adaptability, and customer feedback. It replaces rigid processes with iterative cycles known as sprints.
Core Principles 4):
Advantages:
Challenges:
Introduced by Boehm 5), the Spiral Model combines iterative development with risk analysis. Each loop of the spiral represents one phase of the process, with risk evaluation at its core.
Advantages:
Limitations:
Modern systems increasingly adopt DevOps — integrating development, testing, deployment, and operations into a continuous cycle. This model leverages automation, CI/CD pipelines, and cloud-native
Advantages:
Challenges:
| Model | Main Focus | Advantages | Best Suited For |
|---|---|---|---|
| Waterfall | Sequential structure | Simple, predictable | Small or regulated projects |
| V-Model | Verification and validation | Traceable, certifiable | Safety-critical systems |
| Iterative/Incremental | Progressive refinement | Flexible, early testing | Complex evolving systems |
| Agile | Collaboration & feedback | Fast adaptation, user-centric | Software startups, dynamic projects |
| Spiral | Risk-driven development | Risk control, scalability | Large R&D projects |
| DevOps | Continuous integration | Automation, rapid delivery | Cloud, AI, or autonomous platforms |
In software engineering, Configuration Management (CM) refers to the systematic process of identifying, organising, controlling, and tracking all changes made to a software system throughout its lifecycle. It ensures that:
According to ISO/IEC/IEEE 828:2012, CM is defined as: “A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, and record and report change processing and implementation status.”
In other words, Configuration Management keeps the software stable while it evolves. Configuration management exists to:
To understand CM, several foundational terms must be defined.
Configuration Item (CI) A Configuration Item is any component of the system that is subject to configuration control. Examples include:
Each CI is uniquely identified, versioned, and tracked over time 8).
Baseline A baseline is a formally approved version of one or more configuration items that serves as a reference point. Once established, any changes to the baseline must follow a defined change control process. Types of baselines:
Baselines create stability checkpoints in the lifecycle 9).
Version Control Version control systems (VCS), such as Git, Mercurial, or Subversion, track and manage modifications to source code and other files. They enable:
Version control forms the technical backbone of configuration management.
Change Management Change management defines how modifications are proposed, evaluated, approved, and implemented. Typical steps:
This structured approach ensures accountability and quality control 10).
Configuration Audit A configuration audit verifies that the configuration items and documentation:
Two common types:
Audits maintain integrity and compliance, especially in defence and aerospace projects 11).
Even though CM brings structure and order, it faces numerous practical challenges, particularly in distributed and complex systems.
Complexity and Scale Modern systems can contain millions of lines of code, hundreds of dependencies, and multiple configurations for different platforms. Managing all these variations manually is infeasible. Example: An autonomous vehicle might include distinct configurations for:
Solution: Automated configuration management with metadata-driven tools (e.g., Ansible, Puppet, Kubernetes Helm).
Multiple Development Streams In large projects, teams work on multiple branches or versions simultaneously (e.g., development, testing, release). This increases the risk of:
Solution:
Hardware–Software Interdependencies In embedded or cyber-physical systems, configurations depend on hardware variants (processors, sensors, memory). Maintaining alignment between software builds and hardware specifications is difficult. Mitigation:
Frequent Updates and Continuous Delivery In the DevOps era, software may be updated multiple times per day across thousands of devices. Each update must maintain consistency and rollback capability. Challenge:
Solution:
Data and Configuration Drift Configuration drift occurs when the system’s actual state deviates from its documented configuration — common in dynamic, cloud-based systems. Causes:
Prevention:
Regulatory and Compliance Demands In domains like aerospace, medical, and automotive, configuration management is a compliance requirement under standards such as ISO/IEC/IEEE 12207, ISO 26262 or IEC 61508 Challenge:
Solution:
Human and Organisational Factors The most difficult aspect of CM is often cultural, not technical. Teams may resist documentation or formal change control due to perceived bureaucracy. As a result:
Solution:
Configuration management (CM) is not a single activity but a cyclic process integrated into the entire software lifecycle. The ISO/IEC/IEEE 828:2012 standard identifies four principal activities:
In modern practice, a fifth step — Configuration Verification and Review — is also added for continuous improvement and compliance.
Configuration Identification The first step in CM defines what needs to be managed. It involves:
Example hierarchy:
Tools & Techniques:
Goal: Create a clear inventory of every managed artefact and its dependencies.
Tools and Techniques:
Goal: Ensure that every change is reviewed, justified, and properly recorded before being implemented.
Configuration Status Accounting (CSA) CSA provides visibility into the current state of configurations across the project. It records which versions of CIs exist, where they are stored, and what changes have occurred. Typical outputs include:
Tools & Techniques:
Goal: Provide transparency and traceability, so project managers and auditors can reconstruct the exact configuration of any product version at any point in time.
Configuration Audit A Configuration Audit ensures the product conforms to its baseline and that all changes were properly implemented and documented. It verifies:
There are two types:
Tools & Techniques:
Goal: Ensure integrity, consistency, and compliance across the entire configuration baseline.
Configuration Review and Verification This optional step closes the CM loop. It assesses whether CM processes are effective and aligned with project objectives. Activities include:
Tools:
Goal: Support continuous improvement and process optimisation.
Modern CM relies heavily on automation and integration tools to manage complexity and enforce discipline across teams. These tools can be categorized by function.
Version Control Systems (VCS)
| Tool | Description | Example Use |
|---|---|---|
| Git | Distributed version control system; supports branching and merging. | Used for nearly all modern software projects. |
| Subversion (SVN) | Centralised version control with strict change policies. | Preferred in regulated environments (aerospace, defence). |
| Mercurial | Similar to Git, optimised for scalability and ease of use. | Used in research or large repositories. |
Build and Continuous Integration Tools
| Tool | Purpose | Example Use |
|---|---|---|
| Jenkins / GitLab CI | Automate building, testing, and deploying changes. | Trigger builds after commits or merge requests. |
| Maven / Gradle / CMake | Manage project dependencies and build processes. | Ensure reproducible builds. |
| Docker / Podman | Containerise environments for consistency. | Package applications with dependencies for testing and deployment. |
Infrastructure and Environment Management
| Tool | Function | Application |
|---|---|---|
| Ansible / Puppet / Chef | Automate configuration and provisioning. | Keep server environments synchronised. |
| Terraform | Infrastructure as Code (IaC) for cloud platforms. | Manage cloud resources with version control. |
| Kubernetes Helm | Manages container-based deployments. | Controls configurations in microservice architectures. |
Artifact and Release Management
| Tool | Purpose | Example Use |
|---|---|---|
| JFrog Artifactory / Nexus Repository | Store and version compiled binaries, libraries, and Docker images. | Maintain reproducibility of releases. |
| Spinnaker / Argo CD | Manage continuous deployment to production environments. | Implement automated rollouts and rollbacks. |
Configuration Tracking and Documentation
| Tool | Purpose | Use Case |
|---|---|---|
| ServiceNow CMDB | Tracks configuration items, dependencies, and incidents. | Enterprise-scale CM. |
| Atlassian Confluence | Maintains documentation and process records. | Collaboration and change documentation. |
| Polarion / IBM DOORS | Links requirements to configuration items and test results. | Traceability in regulated environments. |
Example – An integrated CM Workflow:
Toolchain Integration for Autonomous Systems In autonomous platforms (e.g., UAVs, vehicles), CM tools are often integrated with:
This hybrid approach ensures consistent software across all nodes — from cloud services to embedded controllers 16).
Even mature organisations often encounter challenges in lifecycle and configuration management:
| Pitfall | Effect | Mitigation |
|---|---|---|
| Poor version control discipline | Loss of traceability | Enforce the branching strategy and pull request reviews. |
| Incomplete configuration audits | Undetected inconsistencies | Automate audit workflows and compliance scanning. |
| Manual deployment processes | Environment drift | Use CI/CD and Infrastructure as Code. |
| Siloed documentation | Lack of visibility | Centralise records using CMDB or ALM platforms. |
| Lack of cultural adoption | Resistance to process discipline | Provide training, incentives, and leadership support. |
Organisations that succeed in embedding CM practices view them not as bureaucracy, but as enablers of reliability and trust.