What is traceability and why do we care about it? First a definition
Traceability is 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
There are 3 critical points to this aspects:
- An independent documenting method: for an object to be traceable it must be documented. This has 2 parts
- A unique identifier for the object
- A version history of the object
- Linkages between objects: the documenting (linking) method must include dependencies between objects. This can include
- Created by (e.g. this model generates that code)
- Dependent on (e.g. this requirement is completed by its parent)
- Fulfills:(e.g. this test case implementation fulfilled the test requirement)
- Bi-directional: The objects can be traced in any direction. (Note: not all relationships are parent/child: there can be “associated” linkages)
Why should we care?
Traceability is about organization; the ability to easily find information. For small systems, for self-projects, traceability may bean unneeded burden. However when you have multiple people working on a project. the ability to trace between objects is how we information is relayed.