Requirements traceability is a sub-discipline of
requirements management
Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A require ...
within
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
and
systems engineering
Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their enterprise life cycle, life cycles. At its core, systems engineering util ...
. Traceability as a general term is defined by the IEEE Systems and Software Engineering Vocabulary as (1) the degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor-successor or primary-subordinate relationship to one another; (2) the identification and documentation of derivation paths (upward) and allocation or flowdown paths (downward) of work products in the work product hierarchy; (3) the degree to which each element in a software development product establishes its reason for existing; and (4) discernible association among two or more logical entities, such as requirements, system elements, verifications, or tasks.
Requirements traceability in particular, is defined as "the ability to describe and follow the life of a requirement in both a forwards and backwards direction (i.e., from its origins, through its development and specification, to its subsequent deployment and use, and through periods of ongoing refinement and iteration in any of these phases)".
In the requirements engineering field, traceability is about understanding how high-level requirements – objectives, goals, aims, aspirations, expectations, business needs – are transformed into development ready, low-level requirements. It is therefore primarily concerned with satisfying relationships between layers of information (aka artifacts). However, traceability may document relationships between many kinds of development artifacts, such as requirements, specification statements, designs, tests, models and developed components. For example, it is common practice to capture verification relationships to demonstrate that a requirement is verified by a certain test artifact.
Traceability is especially relevant when developing safety-critical systems and therefore prescribed by
safety guidelines, such as
DO178C,
ISO 26262
ISO 26262, titled "Road vehicles – Functional safety", is an international standard for functional safety of electrical and/or electronic systems that are installed in serial production road vehicles (excluding mopeds), defined by the Interna ...
, and
IEC61508
IEC 61508 is an international standard published by the International Electrotechnical Commission consisting of methods on how to apply, design, deploy and maintain automatic protection systems called safety-related systems. It is titled ''Funct ...
. A common requirement of these guidelines is that critical requirements must be verified and that this verification must be demonstrated through traceability.
Tracing towards and beyond the requirements
Pre-requirements traceability.
Requirements come from different sources, like the business person ordering the product, the marketing manager and the actual user. These people all have different requirements of the product. Using requirements traceability, an implemented feature can be traced back to the person or group that wanted it during the
requirements elicitation In requirements engineering, requirements elicitation is the practice of researching and discovering the requirements of a system from users, customers, and other stakeholders. The practice is also sometimes referred to as "requirement gathering".
...
. This can be used during the development process to prioritize the requirement, determining how valuable the requirement is to a specific user. It can also be used after the deployment to see why certain unused features found during user studies were required in the first place.
Post-requirements traceability.
Not only the requirements themselves should be traced but also the requirements relationship with all the artifacts associated with it, such as models, analysis results, test cases, test procedures, test results and documentation of all kinds. Even people and user groups associated with requirements should be traceable. Requirements are realized into design artifacts, implementation, and finally, verified. Artifacts tied to the latter stages should be traced back to the requirements as well. This is typically done via a requirements
traceability matrix
In software development, a traceability matrix (TM) is a document, usually in the form of a table, used to assist in determining the completeness of a relationship by correlating any two baselined documents using a many-to-many relationship com ...
.
Establishing traceability beyond requirements into design, implementation, and verification artifacts can become difficult. When implementing software requirements for instance, the requirements may be in a
requirements management
Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A require ...
tool, while the design artifacts may be in a tool such as
MagicDraw
MagicDraw is a proprietary visual UML, SysML, BPMN, and UPDM modeling tool with team collaboration support. Designed for business analysts, software analysts, programmers, and QA engineers, this dynamic and versatile development tool facilitat ...
,
Mathworks Simulink,
Rational Rhapsody
Rational Rhapsody, a modeling environment based on UML, is a visual development environment for systems engineers and software developers creating real-time or embedded systems and software. Rational Rhapsody uses graphical models to generate so ...
, and
Microsoft Visio
Microsoft Visio ( ) (formerly Microsoft Office Visio) is a diagramming and vector graphics application and is part of the Microsoft Office family. The product was first introduced in 1992, made by the Shapeware Corporation, later renamed Visio ...
.
Furthermore, implementation artifacts will likely be in the form of source files, links to which can be established in various ways at various scopes. Verification artifacts such as those generated by internal tests or formal verification tools (e.g.,
LDRA Testbed suite,
Parasoft DTP
Parasoft DTP (formerly Parasoft Concerto) is a development testing solution from Parasoft that acts as a centralized hub for managing software quality and application security. DTP provides a wide range of traditional software reports from nor ...
, and
SCADE)
Repository or tool stack integration can present a significant challenge to maintaining traceability in a dynamic system.
Usage of traceability information
The usage of traceability, especially when tracing beyond requirements to all artifacts located in the tool chain, can bring several benefits:
*
Change impact analysis
Change impact analysis (IA) or impact analysis is the analysis of changes within a deployed product or application and their potential consequences.
Change impact analysis is defined by Bohnner and Arnold as "identifying the potential consequenc ...
– if a
requirement
In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, includi ...
is changing, trace links inform about related and dependent artifacts. These artifacts can easily be verified and if required be adjusted. The probability to overlook related artifacts is reduced.
* Coverage analysis – traceability ensures that no requirements are overlooked. Especially when certifying safety-critical products it is necessary to demonstrate that all requirements are realized.
* Project status analysis – tracking of the project status is possible: analyzing the traceability data allows seeing the completion status of the requirements. Requirements without links or with incomplete trace chain (e.g. requirements with implementation but without tests) indicate that further work is necessary. The missing links show which concrete artifacts are missing and need to be realized.
* Reuse of product components – it is possible to structure requirements and their linked artifacts in packages. These packages can be used for different products.
* Persisting relationships – often knowledge of a project or product is in the head of specific persons. By use of traceability this knowledge is saved by visualizing the relation between the different artifacts. This knowledge remains even if a person leaves the project.
* Test optimization – by linking requirements,
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
,
test case
In software engineering, a test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise ...
s and test results it is easy to identify affected parts of the source code if tests fail. Furthermore, redundant test cases can be identified and eliminated.
A more complete overview of development activities supported by traceability and their relevance is given in.
Practical use of traceability information
Extensive studies document the effectiveness, but also the difficulties of capturing traceability information:
* Traceability accelerates and improves development activities - A study with 71 subjects who performed source code changes with and without traceability support showed benefits of traceability. Developers completed tasks with traceability support 24% faster and 50% more correct.
* More complete traceability helps avoid software defects - In an analysis of development data from 24 medium-sized and large open-source projects, a statistically significant relationship between the completeness of the captured traceability information and the defect rate of the developed source code was found. Components with more complete traceability showed a lower number of defects (aka bugs).
* Achieving compliant traceability is difficult - An analysis of the pre-market testing of software in medical devices at the
US Food and Drug Administration (FDA) in 2013 identified significant gaps between prescribed and filed traceability information.
The quest towards a standard-conformable traceability often results in a "Big Freeze". Big freeze, since companies aim to avoid further development because re-certification is associated with enormous effort.
Visualization of traceability information
One goal of traceability is to visualize the relationship between artifacts. As the number and complexity of trace links increases, techniques for traceability visualization are necessary. A visualization can include information about the artifacts (e.g. artifact type, metadata, attributes) and links (e.g. link type, metadata, link strength).
Common visualizations for traceability information are
matrices
Matrix most commonly refers to:
* ''The Matrix'' (franchise), an American media franchise
** ''The Matrix'', a 1999 science-fiction action film
** "The Matrix", a fictional setting, a virtual reality environment, within ''The Matrix'' (franchis ...
,
graphs
Graph may refer to:
Mathematics
*Graph (discrete mathematics), a structure made of vertices and edges
**Graph theory, the study of such graphs and their properties
*Graph (topology), a topological space resembling a graph in the sense of discre ...
,
lists
A ''list'' is any set of items in a row. List or lists may also refer to:
People
* List (surname)
Organizations
* List College, an undergraduate division of the Jewish Theological Seminary of America
* SC Germania List, German rugby unio ...
, and
hyperlink
In computing, a hyperlink, or simply a link, is a digital reference to data that the user can follow or be guided by clicking or tapping. A hyperlink points to a whole document or to a specific element within a document. Hypertext is text wit ...
s.
* Traceability matrix – A
traceability matrix
In software development, a traceability matrix (TM) is a document, usually in the form of a table, used to assist in determining the completeness of a relationship by correlating any two baselined documents using a many-to-many relationship com ...
is a table-like representation that maps artifacts of one type (e.g., requirements) depicted in columns to artifacts of another type (e.g., source code) depicted in rows. Cells visualize a trace between two artifacts if filled or a non-trace if left empty.
The advantage of traceability matrices is that all links between artifacts are visible at a glance. Filters help to reduce the amount of displayed information. Traceability matrices are suitable for management tasks.
However, in industry, projects often consist of thousands of artifacts: the tables could become very large and confusing.
* Traceability graph – In a traceability graph artifacts are represented as nodes. Nodes are connected by edges, if a trace link between the artifacts exists. Graphs are especially suitable for development tasks. They allow getting an overview on the links exploratively and are characterized by a high information comprehension ratio.
By navigating through the graph it is easy to identify missing links as a hint to create required artifacts.
* List – Lists represent traceability links in one entry. This entry could include information concerning the source and target artifact and attributes. They are especially suitable when bulk operations for several different artifacts should be executed. Filters and sorting mechanisms allow to handle the displayed information. However, compared to the visualizations described above lists are less suitable to execute project management, development and testing tasks.
* Hyperlink – Hyperlinks connect linked artifacts and allow “jumping” from a source artifact to a linked artifact. This visualization is suitable if detailed information about an artifact is needed as it allows navigation to artifacts in their native environment.
Using hyperlinks solely has the disadvantage that a lot of navigation effort is necessary to get an overview on the link status as linked artifacts are not visualized compactly.
Visualizations can be combined to overcome their specific limitations.
Technical realization
Manual traceability
Traceability is realized by capturing traces either entirely manual or tool supported, e.g. as spreadsheet in
Microsoft Excel
Microsoft Excel is a spreadsheet developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro (comp ...
. Though widely applied, this process is cumbersome, error-prone, and often leads to traceability information that is of insufficient quality due to the various involved development tools and the typically very high number of artifacts to be traced.
Tool-supported traceability
Tool-supported traceability requires that development information that is distributed across a whole chain of development tools to be homogenized and aggregated. The following approaches exist for reaching this state:
Homogenization of the software tool environment via an
ALM tool –
ALM tool chains cover the software development life-cycle and manage all artifacts of the software development process. Many companies have chosen a best-of-breed approach with the success and popularity of tools such as Jira, Azure DevOps, Git, Jenkins and numerous test automation tools. Companies that choose a best-of-breed approach solve the traceability challenge with requirements management (RM) tools that provide a complete traceability model and integrations for the best of breed tools. A single ALM tool to cover requirements, risk analysis, system design, task management, code repositories, integration, testing and more is a classic trade-off between best-of-breed capabilities vs. a more limited feature, common platform.
Homogenization of data via surrogate requirements –
requirements management
Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project. A require ...
(RM) tools allow storing, organizing, and managing all requirements of a system's specifications and typically arrange them in a
specification tree
A specification tree shows all specifications of a technical system under development in a hierarchical order.
For a spacecraft system it has the following levels:
* System (requirements) specification - generated by customer
** System (design to ...
that links each requirement to its parent requirement in the higher specification. Typical analysis functions based on recorded traceability information are, e.g., completeness checks i.e. do all system level requirements go down to equipment level (with or without modification), assessment of requirements deviations over all levels, and qualification status presentation. In order to ensure traceability to artifact types beyond requirements, RM tools often allow to import other artifacts as surrogate requirements that can then be traced with the tool's requirements tracing methods. The disadvantage of this approach is that different adapters or converters for the different artifact types are necessary that need to have a consistent version and data format. In contrast to ALM tools this consistency must be carried out oneself.
Homogenization of data via a dedicated traceability tool - the basic concept of dedicated traceability tools consists of three essential steps:
* The definition of a data model a.k.a. traceability information model (TIM). This model specifies which artifact types (e.g. stakeholder requirements, software requirements, integration tests, system model elements) and how they are linked.
* The definition of mappings from all relevant data of all tools which are part of your development toolchain and how these data are mapped to the TIM.
* Metrics and analysis functions are defined on the TIM - not on data residing in a specific tool.
The approach unions the advantages of the aforementioned approaches: It covers all tools and artifacts in a holistic approach, homogenizes data and avoids the risk of inconsistencies caused by outdated surrogates. The disadvantage is that this approach implies the extension of a toolchain by another (traceability) tool.
Traceability Tools
In many projects, people use office tools like spreadsheets for managing traceability. These tools are error-prone when you have hundreds of requirements and multiple users working on a project. You may use specialized traceability tools for effective control of your projects.
See also
*
*
References
{{Authority control
Software requirements
Software project management