Planning and Strategizing

Strategizing and Planning

Traceability must be strategically planned for a project so that the project can be successfully instrumented and useful trace links will be captured. The first step in this process involves establishing a Traceability Information Model known as a TIM. A TIM identifies traceability paths that are needed -- and along which the Trace Links will be collected.

Traceability Information Model showing a variety of artifacts and trace matrices.

This TIM depicts a number of diverse artifacts that the project team has deemed to be important for tracing purposes. These are shown as beige boxes in the figure and include goals, use cases, acceptance tests, user stories, source code classes etc. Traceability is established between certain pairs of artifacts using a combination of tracing techniques. Links between source code and user stories are established by having developers tag (Jira) user stories whenever they commit code into GitHub. Trace links between unit tests and source code are implicitly established through references in the unit tests. Other links, such as between user stories and faults are established explicitly by humans (perhaps using automated support). Trace links are conceptually stored in Trace Matrices (shown in blue).

The TIM may be different for each project. It should be carefully planned at the start of the project by asking a series of questions:
  1.   How do we plan to use the traceability data? What questions will we ask against it?
  2.   What data (aka artifacts such as requirements, test cases etc) is needed to answer those questions?
  3.   What artifacts must be connected? i.e. which traceability paths are needed?
  4.   Who will collect the data? Who will create and maintain those trace links?
  5.   What tooling (instrumentation) is needed to create and maintain links?
  6.   What query mechanisms and visualization are needed to make the data and trace links accessible?

If you wish to learn more about using TIMs in your project we recommend two papers:

Balasubramaniam Ramesh, Matthias Jarke: Toward Reference Models of Requirements Traceability.
IEEE Trans. Software Eng. 27(1): 58-93 (2001) IEEE Digital Library.

Patrick Mäder, Orlena Gotel, and Ilka Philippow: Getting Back to Basics:
Promoting the Use of a Traceability Information Model in Practice. In: Proceedings of 5th International Workshop on Traceability in Emerging Forms of Software Engineering (TEFSE2009). In conjunction with the 31st International Conference on Software Engineering (ICSE09), May 18 2009, Vancouver, Canada. link.