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
providing bi-directional traceability between various associated requirements.
It enables users to find the origin of each requirement and track every change that 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 Traceability 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: 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 cited definition 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
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 tree 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 assessment of requirements deviations over
all levels qualification status presentation
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 matrix.
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 a tool such as MagicDraw, 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
Repository or tool stack integration can present a significant challenge to maintaining traceability
in a dynamic system.
See also Traceability matrix
Requirements Requirements analysis
Requirements management References
External links Demand + Requirements Management - Complete
Traceability Requirement Management Reduces Software Defects
and Improves Code Quality Requirements Traceability Resources
Requirements Traceability with MATLAB and Simulink