The importance of traceability in requirements engineering
By Smolkin Mikhail (mrsmolkin@edu.hse.ru)
Introduction
A key challenge in developing complex, large-scale computer systems—especially those with changing requirements—is making sure the system's design aligns with its current needs. To address this challenge, it’s important to keep track of how requirements connect to the various outputs or artifacts created during the design process. Traceability refers to the ability to link these software artifacts, which helps us assess the quality of the software and its development process. This concept is especially important in requirements and software engineering, particularly for systems where safety is critical. In this discussion, I will define traceability in the context of requirements and explain why formal requirements traceability is valuable.
How to define traceability in requirements
Traceability in requirements engineering is the ability to connect requirements to their sources, supporting documents, and later stages of the development lifecycle. This connection is crucial for ensuring that each requirement is fulfilled and for verifying that all necessary features are included in the final product. Traceability is also essential for meeting standards in regulated industries, such as healthcare and automotive. Requirements can vary in detail, starting from high-level business requirements that focus on the overall purpose of the target system, down to software requirements that precisely describe the specific characteristics and features needed [1].
According to the Center of Excellence for Software and Systems Traceability (CoEST), requirements traceability means linking a requirement back to contributing sources, such as stakeholders’ rationales, hazards to mitigate, and regulatory codes, while also connecting it forward to relevant design artifacts, code, and test cases [2]. One of the main purposes of requirements traceability is to help system developers demonstrate to customers that their requirements have been understood and that the product meets those requirements.
To effectively prove compliance with requirements, traceability should also clarify how the requirements were derived and provide the design rationale that explains not only the decisions made but also the reasoning behind those decisions. Miscommunication between the customer and systems engineer can lead to project delays, cost overruns, products that do not meet specifications, and even project cancellations. Traceability helps facilitate communication among all parties involved in a project, which can alleviate some of these issues.
During the design phase, traceability can be achieved by linking design elements to requirements in a bi-directional manner across all design stages and design views. Traceability allows designers and maintainers to keep track of what happens when a change request is implemented. This enables the implications of a requirements change to be determined before system redesign takes place. Systems evolution requires a better understanding of the requirements. This can only be achieved by tracing requirements back to their sources [3]. Additionally, traceability provides a chain of accountability within the development process. In large scale software development activities, especially in contexts where such activities are contracted out, having a precise method for ensuring that requirements are met by the design and guaranteeing that the current set of requirements are met by the evolving system is vital. Absence of clear traceability of designs to requirements may create serious problems in configuration control and lead to slippages in delivery schedules [4].
Traceability is typically divided into:
- Forward Traceability: Tracking requirements to design, development, and testing to ensure each requirement is fulfilled.
- Backward Traceability: Tracking back from code or tests to the original requirements, ensuring that each feature or test case serves a purpose.
There is also a task of requirements traceability varies between linking requirements from one level or linking requirements from different levels (such as linking business requirements to system requirements), which is called cross-level traceability [2]. Different traceability linkages among various objects produced during system lifecycle. There is representing traceability information at different levels of abstraction in Figure 1 and Figure 2.
Fig. 1. Traceability meta model. Based on traceability description in [1].
Fig. 2. Traceability specialized model. Based on traceability description in [1].
Examples in practice
Supporting evidence and examples of traceability in software requirements can be found in real-world safety-critical systems.
- Medical Device Development In medical software development, such as software used in heart rate monitors or diagnostic tools, traceability is crucial. Medical devices are regulated by standards like ISO 13485, which require strict traceability from requirements to testing and deployment. For example, each functional requirement of the device software needs to be traced through the design and verification stages to prove compliance, which can be essential in audits.
- Automotive Industry Automotive systems, especially for autonomous vehicles, rely on traceability to comply with the ISO 26262 standard for functional safety. Engineers link each safety-related requirement to system components and software modules to ensure that every feature contributes to overall safety. For instance, a braking system requirement is linked to both software and hardware designs, as well as various test cases, ensuring safety and reliability.
- Agile Development In agile environments, traceability can be challenging but remains essential. For example, using user stories with traceable acceptance criteria helps agile teams maintain visibility of requirements across multiple sprints. Tools like JIRA or Azure DevOps facilitate this process by allowing traceability links between user stories, tasks, and test cases.
Challenges
Maintaining traceability can be resource-intensive, especially if tools are limited or processes aren’t well-established. Projects with rapidly changing requirements, like those in Agile development, may find maintaining traceability challenging.
There an example in [1] of flight-control software analysis for requirements traceability. The project had to contract at a significant cost, engineers who worked on the original project, to assist in re-creating relevant information. It was estimated that ten employees lost over six months of productive work time, resulting in over 60 worker-months lost. This effort resulted in “reengineering” of requirements with their rationale, designs with their rationale, and system/subsystem components.
Modern tools for traceability are improving, providing us automated tools. Language and word-based requirements traceability focuses on analyzing the textual elements of requirements to create meaningful links between them and other project artifacts [5]. This approach involves using natural language processing (NLP) techniques to identify and establish connections based on keywords, phrases, and semantics. By doing so, it helps in tracking changes, ensuring that all requirements are fulfilled, and enhancing communication among stakeholders. Tools leveraging these methods can improve the accuracy and efficiency of maintaining traceability in complex projects [6].
Conclusion
The evidence from these studies suggests that traceability supports defect reduction, project success rates, regulatory compliance, cost savings in change management, and agile project efficiency. These specific data points emphasize traceability's role in delivering high-quality products on time, within budget, and in compliance with industry standards.
References
- Requirements traceability: Theory and practice. https://www.academia.edu/32097713/Requirements_traceability_Theory_and_practice
- A Methodology for Requirements Specification and Traceability for Large Real-Time Complex Systems. https://apps.dtic.mil/sti/tr/pdf/ADA254738.pdf
- Cross-level Requirement Traceability: A Novel Approach Integrating Bag-of-Words and Word Embedding for Enhanced Similarity Functionality. https://arxiv.org/pdf/2406.14310
- Natural Language Processing for Requirements Traceability. https://arxiv.org/pdf/2405.10845
Not mentioned, but used:
- Requirements traceability. https://www-di.inf.puc-rio.br/~julio/Chapter%205.pdf
- A METHODOLOGY FOR SYSTEMS REQUIREMENTS. SPECIFICATION AND TRACEABILITY FOR LARGE REAL-TIME COMPLEX SYSTEMS. https://apps.dtic.mil/sti/tr/pdf/ADA254738.pdf