Table of Contents

Software Lifecycle and Typical Lifecycle Models

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

Definition

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

Typical Software Lifecycle Models

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

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

 The Waterfall Model
Figure 1: The Waterfall Model

Advantages:

Limitations:

The V-Model (Verification and Validation Model)

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

 V-Model Lifecycle
Figure 2: V-Model Lifecycle

Advantages:

Limitations:

The Iterative and Incremental Model

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 Methodologies

Agile development (e.g., Scrum, Kanban, Extreme Programming) emphasises collaboration, adaptability, and customer feedback. It replaces rigid processes with iterative cycles known as sprints.

 Agile Lifecycle
Figure 3: Agile Lifecycle

Core Principles 4):

Advantages:

Challenges:

The Spiral Model

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.

 Spiral Lifecycle
Figure 4: Spiral Lifecycle

Advantages:

Limitations:

DevOps and Continuous Lifecycle

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

  DevOps Lifecycle
Figure 5: DevOps Lifecycle

Advantages:

Challenges:

Comparative Overview

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

Configuration Concepts and Challenges

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:

 The Role of Configuration Management
Figure 6: The Role of Configuration Management (Adapted from 6) 7))

Key Concepts in Configuration Management

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

Challenges in Configuration Management

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:

Main Steps and Tools of Configuration Management

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.

 The Configuration Management Cycle
Figure 7: The Configuration Management Cycle (Adapted from 13) 14))

Configuration Identification The first step in CM defines what needs to be managed. It involves:

Example hierarchy:

 Example hierarchy
Figure 8: Example hierarchy

Tools & Techniques:

Goal: Create a clear inventory of every managed artefact and its dependencies.

 Change Control Workflow
Figure 9: Change Control Workflow

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:

 Configuration Status Flow
Figure 10: Configuration Status Flow

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:

  1. Functional Configuration Audit (FCA): Confirms the system performs as intended.
  2. Physical Configuration Audit (PCA): Confirms that the physical implementation matches the design documentation.

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.

Main Tools for Configuration Management

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:

 An integrated  CM Workflow
Figure 11: An integrated CM Workflow (Adapted from GitLab, Atlassian, and IEEE 828 integration frameworks)

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

Common Pitfalls and Lessons Learned

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.

1) , 8)
Sommerville, I. (2016). Software Engineering (10th ed.). Pearson
2) , 6)
Pressman, R. S., & Maxim, B. R. (2020). Software Engineering: A Practitioner’s Approach (9th ed.). McGraw-Hill
3)
Royce, W. W. (1970). Managing the development of large software systems. Proceedings of IEEE WESCON
4)
Agile Alliance. (2001). Manifesto for Agile Software Development. https://agilemanifesto.org
5)
Boehm, B. W. (1988). A spiral model of software development and enhancement. Computer, 21(5), 61–72.
7)
IEEE. (2012). ISO/IEC/IEEE 828: Configuration Management in Systems and Software Engineering. IEEE Standards Association.
9)
Pressman, R. S., & Maxim, B. R. (2020). Software Engineering: A Practitioner’s Approach (9th ed.). McGraw-Hill.
10) , 13)
IEEE. (2012). ISO/IEC/IEEE 828: Configuration Management in Systems and Software Engineering. IEEE Standards Association
11) , 14)
NASA. (2021). Configuration Management Procedural Requirements (NPR 7120.5E). National Aeronautics and Space Administration
12) , 15)
Wang, L., Xu, X., & Nee, A. Y. C. (2022). Digital twin-enabled integration in manufacturing. CIRP Annals, 71(1), 105–128.
16)
Raj, A., & Saxena, P. (2022). Software architectures for autonomous vehicle development: Trends and challenges. IEEE Access, 10, 54321–54345