Requirement Tracing

three ways to do requirements tracing in xtUML

Here is a summary of three fundamental approaches to requirements tracing. These apply whether using DOORS, Jama, ReqTracer, Jira, Bugzilla, Redmine or others with similar “requirement identifier” approaches.

Summary:

  1. imbedding requirement keys into xtUML models using BridgePoint
  2. adding xtUML model keys into the requirements of the trace tool
  3. imbedding requirements keys into xtUML models during commits using configuration management

Details:

  1. Assuming you have a set of requirements defined in the requirements tracing tool, you can manually imbed (by editing the model) the requirement identifier in Description fields for model elements in BridgePoint. The requirements tracing tool can find and follow these keys in the textual files of your persisted BridgePoint models. This is simple and straight-forward but involves a bit of manual editing.
  2. Model elements in BridgePoint have various identifiers. A UUID is automatically created for each model element. Elements have “fully qualified paths”. These can be extracted and imbedded/linked to your requirements tracing tool requirement list. After that, the requirements tracing tool can track and correlate as in method 1.
  3. My preference is to use key pairs during commits. Starting with requirements in your requirements tracing tool, the requirement identifier(s) is associated with the feature branch in your configuration management. As each commit is made (to model, code or docs), the requirement key is supplied. This approach allows a particular requirement to trace model artifacts, hand-craft code artifacts and design notes in a coherent and consistent fashion. In our work, we are able to trace every change to its requirement for both features and bugs. Each and every delta to our source artifacts is linked to the initiating requirement.

There are other approaches. Requirements tracing tools I have used in the past can correlate artifacts in other ways. However, it is crucial to understand the goals of your tracing and how your existing flow operates.