Requirements traceability
Encyclopedia
Requirements traceability is a sub-discipline of requirements management
within software development
and systems engineering
. Requirements traceability is concerned with documenting the life of a requirement and to provide bi-directional traceability between various associated requirements. It enables users to find the origin of each requirement and track every change which was made to this requirement. For this purpose, it may be necessary to document every change made to the requirement.
It has been argued that even the use of the requirement after the implemented features have been deployed and used should be traceable.
as a general term is the "ability to chronologically interrelate the uniquely identifiable entities in a way that matters." The word chronology here reflects the use of the term in the context of tracking food from farm to shop, or drugs from factory to mouth. What matters in requirements management is not a temporal evolution so much as a structural evolution: a trace of where requirements are derived from, how they are satisfied, how they are tested, and what impact will result if they are changed.
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 on the product. Using requirements traceability, an implemented feature can be traced back to the person or group that wanted it during the requirements elicitation
. 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 when user studies show that a feature is not used, to see why it was required in the first place.
Requirements Traceability is concerned with documenting the relationships between requirements and other development artifacts. Its purpose is to facilitate:
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.
definition of requirements traceability is the following:
While this definition emphasizes tracking the life of a requirement through all phases of development, it is not explicit in mentioning that traceability may document relationships between many kinds of development artifacts, such as requirements, specification statements, designs, tests, models and developed components. The next definition addresses this issue:
The following definition emphasises the use of traceability to document the transformation of a requirement into successively concrete design and development artifacts:
The principal relationship referred to here may be characterised as "satisfaction": how is a requirement satisfied by other artifacts? Other relationships that can be traced are, for example, "verification": how is a requirement verified by test artifacts?
and linking each one to the "parent" requirement in the higher specification.
Evaluation functions allow for
There are also several research prototypes that perform traceability recovery, many of them implementing information retrieval
techniques. The aim of those tools is to support establishing and maintaining traceability links between software artifacts, by proposing candidate links based on textual similarity between documents.
.
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
tool, while the design artifacts may be in Matlab/Simulink
, Rhapsody
, or Microsoft 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 (i.e. The LDRA tool suite, Parasoft Concerto
, SCADE)
Repository or tool stack integration can present a significant challenge to maintaining traceability in a dynamic system.
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...
within software development
Software development
Software development is the development of a software product...
and systems engineering
Systems engineering
Systems engineering is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed over the life cycle of the project. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more...
. Requirements traceability is concerned with documenting the life of a requirement and to provide bi-directional traceability between various associated requirements. It enables users to find the origin of each requirement and track every change which was made to this requirement. For this purpose, it may be necessary to document every change made to the requirement.
It has been argued that even the use of the requirement after the implemented features have been deployed and used should be traceable.
Overview
TraceabilityTraceability
Traceability refers to the completeness of the information about every step in a process chain.The formal definition: Traceability is the ability to chronologically interrelate uniquely identifiable entities in a way that is verifiable....
as a general term is the "ability to chronologically interrelate the uniquely identifiable entities in a way that matters." The word chronology here reflects the use of the term in the context of tracking food from farm to shop, or drugs from factory to mouth. What matters in requirements management is not a temporal evolution so much as a structural evolution: a trace of where requirements are derived from, how they are satisfied, how they are tested, and what impact will result if they are changed.
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 on the product. Using requirements traceability, an implemented feature can be traced back to the person or group that wanted it during the requirements elicitation
Requirements elicitation
In requirements engineering, requirements elicitation is the practice of obtaining the requirements of a system from users, customers and other stakeholders...
. 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 when user studies show that a feature is not used, to see why it was required in the first place.
Requirements Traceability is concerned with documenting the relationships between requirements and other development artifacts. Its purpose is to facilitate:
- the overall quality of the product(s) under development;
- the understanding of product under development and its artifact; and
- the ability to manage change.
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.
Definitions
A much citeddefinition of requirements traceability is the following:
Requirements traceability refers to the ability to describe and follow the life of a requirement, in both forwards and backwards direction (i.e. from its origins, through its development and specification, to its subsequent deployment and use, and through all periods of on-going refinement and iteration in any of these phases.)
While this definition emphasizes tracking the life of a requirement through all phases of development, it is not explicit in mentioning that traceability may document relationships between many kinds of development artifacts, such as requirements, specification statements, designs, tests, models and developed components. The next definition addresses this issue:
Requirements traceability refers to the ability to define, capture and follow the traces left by requirements on other elements of the software development environment and the trace left by those elements on requirements.
The following definition emphasises the use of traceability to document the transformation of a requirement into successively concrete design and development artifacts:
In the requirements engineering field, traceability is about understanding how high-level requirements -- objectives, goals, aims, aspirations, expectations, needs -- are transformed into low-level requirements. It is therefore primarily concerned with the relationships between layers of information.
The principal relationship referred to here may be characterised as "satisfaction": how is a requirement satisfied by other artifacts? Other relationships that can be traced are, for example, "verification": how is a requirement verified by test artifacts?
Tracing tools
There are several requirements management computer programs on the market for storing all requirements of all specifications of a technical system under development, which are arranged in a specification treeSpecification 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 specification - generated by customer...
and linking each one to the "parent" requirement in the higher specification.
Evaluation functions allow for
- 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
- qualification status presentation
There are also several research prototypes that perform traceability recovery, many of them implementing information retrieval
Information retrieval
Information retrieval is the area of study concerned with searching for documents, for information within documents, and for metadata about documents, as well as that of searching structured storage, relational databases, and the World Wide Web...
techniques. The aim of those tools is to support establishing and maintaining traceability links between software artifacts, by proposing candidate links based on textual similarity between documents.
The Center of Excellence for Software Traceability
The Center of Excellence for Software Traceability (CoEST) provides a forum for traceability researchers and practitioners to exchange ideas and information. The CoEST has mapped out the Grand Challenges of Traceability as a roadmap for research and industry. The website also provide datasets, benchmarks, and a growing body of additional material on traceability.Tracing beyond the requirements
Requirements are realized into design artifacts, implementation, and are finally verified, the artifacts tied to the latter stages should be traced back to the requirements as well. This is typically done via a Requirements Traceability matrixTraceability matrix
A traceability matrix is a document, usually in the form of a table, that correlates any two baselined documents that require a many to many relationship to determine the completeness of the relationship...
.
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
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...
tool, while the design artifacts may be in Matlab/Simulink
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...
, Rhapsody
Telelogic Rhapsody
Now called IBM Rational Rhapsody, a modeling environment based on UML, Rhapsody is a visual development environment for systems engineers and software developers creating real-time or embedded systems and software...
, or Microsoft Visio
Microsoft Visio
Microsoft Visio , formerly known as Microsoft Office Visio, is a commercial diagramming program for Microsoft Windows that uses vector graphics to create diagrams.- Features :...
.
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 (i.e. The LDRA tool suite, Parasoft Concerto
Parasoft Concerto
Parasoft Concerto is an Application Lifecycle Management solution from Parasoft. Its five components are: Policy Center , Process Center , Project Center , Test Center , and Report Center...
, SCADE)
Repository or tool stack integration can present a significant challenge to maintaining traceability in a dynamic system.
See also
- Traceability matrixTraceability matrixA traceability matrix is a document, usually in the form of a table, that correlates any two baselined documents that require a many to many relationship to determine the completeness of the relationship...
- Requirements
- Requirements analysisRequirements analysisRequirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...
- Requirements managementRequirements managementRequirements 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...
- System requirements (spacecraft system)System requirements (Spacecraft system)System requirements in spacecraft systems are the specific system requirements needed to design and operate a spacecraft or a spacecraft subsystem.- Overview :...