Traceability Links

Requirements Traceability

Detailed and consistent requirements traceability is essential for understanding impact of proposed changes to high level requirements before the changes are propagated downstream. It is also required for ensuring compliance with several Automotive, Aerospace, Defense and Medical industry standards.

A requirements traceability link represents a relation between two related objects in the project. If you setup consistent traceability in the project then you can track these relations to see information from the related objects (e.g. state of all tests linked to a requirement).

You can create a directed traceability link between objects from the same document or between objects from different documents in the same project. Traceability links are usually organized into custom link types, e.g. verification or satisfaction type:

VModel.png

If you setup traceability between requirements and tests by means of verification links you can see all requirements related to a given test as verification links. After accepting a requirements change you can quickly find which all tests needs to be updated because all related tests can be listed for a changed requirement.

You can display traceability links in the Links column of the Requirements Table or in the Links right pane:

ShowParentLinks.png

If Edit > Preferences > Sort links by document section option is enabled then links are sorted by document section order, otherwise, links are sorted by document object ID.

You can set in Edit > Preferences > View options which additional links are displayed:

  • Show parent link - display the object’s parent in the document structure
  • Show origin and inherited links - link from a copied object to its origin and all links inherited from the origin are displayed

You can customize the table view by adding a Template Columns displaying custom traceability information, e.g. Downstream Traceability column displaying coverage of each top level user story in NEEDS document of the ReqView Demo Project by linked SRS requirements and their TESTS:

TemplateColumnDownstreamTraceability.png

You can select one or more objects and mark them as the start of newly created traceability links by Edit > Start Link menu or by CtrlL shortcut. Then you can finish creation of the traceability links by selecting one or more target objects choosing Edit > Place Link… menu or pressing CtrlShiftL shortcut.

Finally, in the Create Links dialog select a link type and overview the traceability links between all source and target object pairs to be created:

CreateLinkDialog.png

You can repeat selection of source of target objects multiple times to create more links with the same set of source, resp. target objects. You can also create new links by first marking the target objects and then the source objects.

At any time, you can cancel link placing operation using Edit > Cancel menu or via Esc keyboard shortcut. This will remove all link source and link target flags for current source and target objects.

You can reverse an existing link, change its type or delete it from a context menu opened after right-click on an edited or deleted link in the Links column or right pane:

EditLinksMenu.png

If the linked objects are from a read-only document then the edit or delete command fails with an error message.

When you copy an object with existing links then you can choose whether to ignore, duplicate or inherit traceability links from the copied origin to its new copy, see section Cut, Copy and Paste Objects .

If an object is copied with just Copy Links then the copy will store duplicated links and any change in the links of the original object will not affect the corresponding link of the copy.

If an object is copied with Link to Origin option enabled then only a single origin reference is created with the copy and its origin and you can display for each copy a link to its origin and the inherited links from the origin by Edit > Preferences > Show origin and inherited links option. All changes to the original object links are propagated to the displayed inherited links for the copy. The inherited links from the origin are navigable however not editable in the copied object.

Creating origin reference from a copy to its origin is useful for example when you want to copy all system requirements from a SRD (System Requirements Document) into a CRD (Customer Requirements Document) to manage separate documents for the SRD and a CRD per each customer.

Lets demonstrate this feature on an example:

  1. Lets assume we have SRD document with two system requirements SRD-1 and SRD-2 which we want to copy to a new CRD:

    InheritedLinks1CopySRD.png

  2. In the CRD select the section where to place the copied system requirements and press CtrlV to open Paste context menu in which check Link to Origin option.

    As the result two new objects CRD1-2 and CRD1-3 will be created and linked to the original SRD object. In the Links column you can see Origin link together with all inherited traceability links from the original SRD object:

    InheritedLinks2NewCRDs.png

  3. Link SRD-1 to a new object SRD-5 and SRD-6 to a new object SRD-2:

    InheritedLinks3NewLinkInSRD.png

  4. You can see the corresponding inherited links for the new links in SRD also in the copied CRD objects:

    InheritedLinks3NewLinkInCRD.png

Setup Project Traceability

You can configure custom link types in the current project in Project Traceability dialog which can be opened by Project > Project Traceability menu:

ProjectTraceabilityDialog.png

Each link type can have name, source and target role names used for presentation of the relation in the UI.

Project traceability is defined in the following JSON format:

{
<linkTypeId>: {
"name": <string>,
"source": <string>,
"target": <string>
}
}

JavaScript

  • linkTypeId is a unique link type identifier
  • name is a link type name
  • source is a short text describing the role of the link source
  • target is a short text describing the role of the link target

Examples

You can define verification links from tests to verified requirements, e.g.:

{
"verification": {
"name": "Verification",
"source": "Verifies",
"target": "Is verified by"
}
}

JSON

You can define satisfaction links from low level requirements to high level requirements, e.g.:

{
"satisfaction": {
"name": "Satisfaction",
"source": "Satisfies",
"target": "Is satisfied by"
}
}

JSON

One of usual requirements management challenges is tracking changes in linked objects. Assume for instance that our project stores high level user needs in a NEEDS document, requirements specification in a SRS document and that SRS requirements are linked by satisfaction links to the corresponding high level NEEDS. How can the author of the SRS document track changes in the NEEDS document to keep SRS document updated?

You can propagate changes of high level objects to the downstream linked objects by maintaining suspect flag for traceability links. Any change in a user need (the satisfaction link target) becomes visible as a suspect link flag the linked SRS requirements (where the satisfaction links start). The suspect flags notify author of the SRS document that he should update the linked SRS objects. Then he can clear the link suspect flags to be notified about the future changes.

Following steps explain how to use this feature in more details:

  1. In the Project Traceability dialog configure link type suspect attributes for which you want to track changes in the link target object. For instance, for satisfaction links you may want to track suspect links only in text attribute which usually contains full requirement description, in heading attribute storing the header text and in deleted attribute marking objects as deleted:

    {
    "satisfaction": {
    "name": "Satisfaction",
    "source": "Satisfies",
    "target": "Is satisfied by",
    "suspect": ["heading", "text", "deleted"]
    }
    }

    JSON

  2. If you change a NEEDS object then the application will show the Links column or Links right pane for each satisfaction link icon which denotes that the link is suspect.

  3. You can review SRS requirements linked to the changed upstream user needs (in heading, text or deleted attribute) by following links with suspect flag icon  :

    SuspectLinkFlag.png

  4. You can clear a suspect link flag by choosing Clear Suspect Link Flag from the context menu opened on mouse right click:

    ClearSuspectLinkFlag.png

  5. The suspect link flag icon for the cleared link will disappear and it will be shown again when you change the link target object again.

  6. You can select more reviewed SRS objects and clear suspect flags of all outgoing links by menu Edit > Clear Suspect Flag or CtrlJ shortcut.

Traceability Reports

A requirement Traceability Matrix is a kind of table view which can help to understand project traceability. For instance, a traceability matrix with all requirements (rows) covered by test cases (columns) proves that no functionality was missed during testing.

Traceability Matrices have several disadvantages making them difficult to use:

  • Reviewing a large traceability matrix is inconvenient and error prone.
  • Multiple traceability matrices needs to be browsed to analyze traceability over multiple traceability levels.
  • A traceability matrix cannot clearly display additional information such as requirement / test status.

You can generate a custom Requirements Traceability Report which have following following advantages comparing to Traceability Matrices:

  • You can overview requirements document structure together with traceability information which presented in a traceability column next to requirement description.
  • You can visualize requirements traceability across multiple levels in a tree.
  • You can customize report layout by HTML templates.
  • You can customize report visual style by CSS.
  • You can display additional information presenting selected attributes of the linked objects.
  • You can browse traceability by clicking on URL links

The following picture shows an example top-down Traceability Report displaying the highest level business needs (NEEDS) satisfied by detailed functional requirements (SRS) verified by test cases (TESTS):

TraceabilityReport.png

From this report you can easily see which functionality has missing tests or which functionality has been verified by tests with Passed status.

Similarly, you can create an inverse bottom-up Traceability Report to see coverage of test cases by high level requirements revealing implemented functionality which was not possibly requested by a customer.

The traceability reports are generated from an HTML template customized for the specific layout and traceability configuration. You can learn how to create custom HTML reports in Custom Export Templates / Traceability Reports  section.

You can download full example traceability report templates from the ReqView Support Site (log in needed).

  Download PDF



Updated for version 2.5.0