Traceability is the ability to trace the origin. In simple terms a police man identifies thieves by tracing out finger prints or so.. Traceability plays a key role in Requirements Management. It helps to conduct impact assessments when change in requirements happens. Some unique identifiers are given for each requirement. These requirements are elaborated from the user needs provided by the customer. Thus traceability starts with user needs and then extends to the corresponding requirements. These requirements are used to create high level design. Then from these high level design, low level design is created. Finally implementation is done using low level design.
Test cases are developed to verify each stage of these development phases. i.e. unit test cases are used to verify/test the implemented program. similarly module test cases for verifying design, system test cases for requirements and acceptance test cases for user needs. Traceability is now extended from user needs to requirements, then to design, to code and to test cases. Here we are moving in the forward direction and hence this kind of traceability is known as forward traceability. Forward traceability helps to ensure the implementation of all the required functionalities. but it can not confirm whether any unintended functionalities are implemented or whether all the lower level requirements are traceable to the user needs. For this we need backward traceability. i.e. from code to design and then to requirements and finally to user needs.
In addition to backward and forward traceability there exists horizontal traceability, i.e among the peer level of requirements, across interfaces. This checks how the requirements at the same level interacts.
Normally a matrix is used to keep traceability, known as Requirements Traceability Matrix. RTM talks about
where the requirements are derived from
how the requirements are implemented
how the requirements are tested or verified.
In fact traceability does not end with implementation. It extends toward deployment and use. In short requirement traceability helps to
- find the source of each requirement and
- track every change that was made to this requirement.