• ensure that identifiers are unique;
• allow attributes to be attached to the identified items such as the need,
priority, or stability of a requirement, or the status of a software
component (e.g. coded, unit tested, integration tested, system tested,
acceptance tested);
• record all instances where an identified part of a document references
an identified part of another document (e.g. when software requirement
SR100 references user requirement UR49, the tool should record the
relationship SR100-UR49);
• accept input in a variety of formats;
• store the traceability records (e.g. a table can be used to store a
traceability matrix);
• allow easy querying of the traceability records;
• allow the extraction of information associated with a specific traceability
record (e.g. the user requirement related to a software requirement);
• generate traceability reports (e.g. cross-reference matrices);
• inform users of the entities that may be affected when a related entity is
updated or deleted;
• be integrated with the project repository so that the relationship
database is automatically updated after a change to a document or a
software component;
• provide access to the change history of a review item so that the
consistency of changes can be monitored.
In summary, tracing tools should allow easy and efficient navigation
through the software.