Requirements Traceability Links

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

Requirements traceability links represent relationship between requirements and other project artifacts. Consistent traceability in the project allows tracking these relationships to understand information from the related objects, for example if the test verifying a requirement passed or failed.

Directed traceability links can be created between objects from the same document or between objects from different documents in the same project. To make traceability analysis easier, traceability links are usually organized into custom link types, for example verification or satisfaction types as shown in the diagram below:

V-model of System and SW Development with requirements, tests, traceability links

For instance, if you link requirements and tests using verification links then you can quickly determine which tests need to be updated after a requirement is changed because all related tests can be easily listed.

To display traceability links, show the Links column in the requirements table or the Links right pane:

Requirement traceability links in Links column

Links are sorted by document object ID, by default. To sort links by document section order, click Edit, mouseover Preferences, and select Sort links. To display additional links, select:

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

Preview Linked Objects

To preview full text description, custom attributes and links of a linked requirement in a popup, mouseover a link displayed in the Links column, in a custom traceability column, or in the Links pane:

Preview popup displaying information about the linked SRS requirement

To navigate to a linked object, simply click on the link. You can also right-click on the link in the Links column or in the Links pane and choose Go To or View in New Window action from the context menu. See also Work in Multiple Windows.

Links context menu

To navigate back or forward in the link browsing history, click View, mouseover Link Browsing, and select Go Back or Go Forward respectively. Alternatively, click / icon on the main toolbar or press Alt / shortcut.

Traceability Matrix

You can extend document table views by adding Traceability Columns to display live traceability matrix with information about linked objects. For example, the following image shows traceability matrix with columns Satisfies, Is Verified By and Implemented By defined in the SRS document of the Example Project:

Live traceability matrix for Software Requirements Specification (SRS) in ReqView

Traceability Column Wizard

With Traceability Column Wizard, you can configure easily new traceability columns displaying linked objects in a tree with up to tree levels. To open the wizard, click Document, mouseover Add Template Column, and select Traceability Wizard:

Traceability column wizard

In the Traceability Column Wizard dialog, set displayed traceability links conveniently in a table. Each table row represents a traceability level:

  • Set Link Type to filter displayed links by a link type and direction
  • Set Linked Document column to filter displayed links by a linked document
  • Enable Text to display the description of linked objects
  • Choose Attribute to display the attribute value for linked objects from the chosen linked document

The Preview section of the dialog shows the template column output for the selected document object. Check Show template to display or copy the generated template code in the dialog. Press OK to add the new traceability column into the table view. You can further edit the generated template code, see Template Columns.

To create a link, select one or more objects and mark them as the start of newly created traceability links.

Follow the steps:

  1. Click Edit and select Start Link, or press CtrlL.

  2. Select one or more target objects choosing Edit and select Place Link, or press CtrlShiftL.

    Tip: You can mark mark source and target objects in different project windows.

  3. In the Create Links dialog, select a link type and review the traceability links between all source and target object pairs to be created:

    Create requirements traceability links dialog with link type dropdown

Repeat the selection of the source or target objects multiple times as required to create more links with the same set of source, or target objects.

Tip: You can also create new links by first marking the target objects and then the source objects.

At any time, you can cancel placing a link by clicking Edit and selecting Cancel, or pressing Esc. This will remove all link source and link target flags for current source and target objects.

To edit or delete an existing link, right-click on the link in the Links column or the Links right pane and choose Reverse Link Direction, Change Link Type, or Delete Link action from the context menu:

Change link type context menu

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

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

If an object is only copied with Copy Links, the copy stores duplicated links. 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, only a single origin reference is created with the copy and its origin, you can display a link for each copy to its origin and the inherited links from the origin. Click Edit, select Preferences, and select Show origin and inherited links. 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, but not editable in the copied object.

Example Scenario:

Creating an origin reference from a copy to its origin is useful if 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 for each customer.

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

    System requirements document with Links column
  2. In the CRD, select the section where you want to place the copied system requirements. Press CtrlV to open the Paste menu and select the Link to Origin option.

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

    Customer requirements document with inherited traceability links
  3. Link SRD-1 to a new object SRD-5, and SRD-6 to a new object SRD-2:

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

    CRD with new inhterited links

Configure Project Traceability

To configure project traceability in the Project Traceability dialog, click Project and select Project Traceability:

Project Traceability dialog to customize traceability links with syntax example

The dialog is open as read-only if you edit a shared Project Folder (see Team Collaboration > Shared Drive). You can edit the traceability configuration, after you press Edit in the dialog and no other user is editing the project at the same time.

Project Traceability Wizard

In the Wizard tab of the Project Traceability dialog, you can conveniently edit traceability link types in a table. Each table row represents a link type and you can set for each type the following columns:

  • Link Type ID — unique link type identifier (e.g. "satisfaction")
  • Name — link type name (e.g. "Satisfaction")
  • Source — short text describing the role of the link source (e.g. "Satisfies")
  • Target — short text describing the role of the link target (e.g. "Is Satisfied By")

To add a new link type, select the text box under the table, enter new link type ID and press Enter. The corresponding new row is inserted into the table.

To delete an existing link type, click on the right of the corresponding row.

In the Code tab of the Project Traceability dialog, you can configure project traceability in JSON format:

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

Each link type is represented as an object with linkTypeId key set to a unique identifier and the following properties:

  • name — link type name
  • source — short text describing the role of the link source
  • target — short text describing the role of the link target
  • suspect — array of attribute IDs, see the next section

Example: Define verification links leading from test cases to verified requirements:

{
"verification": {
"name": "Verification",
"source": "Verifies",
"target": "Is Verified By"
}
}

Example: Define satisfaction links leading from low-level requirements (e.g. system requirements) to high-level requirements (e.g. stakeholder requirements):

{
"satisfaction": {
"name": "Satisfaction",
"source": "Satisfies",
"target": "Is Satisfied By"
}
}

A common requirements management challenge is tracking changes in linked objects. 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 (target of the links) sets the suspect flag for all satisfaction links to SRS requirements (start of the links). The suspect flags notify the 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.

Example:

Let's assume 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. As a result, how can the author of the SRS document track changes in the NEEDS document to keep the SRS document updated?

  1. In the Project Traceability dialog configure link type the suspect attributes for which you want to track changes in the link target object. For instance, for satisfaction links, track suspect links only in a text attribute which usually contains a 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"]
    }
    }

    Note: The suspect property must be an array of tracked attributes, permitted values are heading, text, deleted, attachments and custom attribute IDs.

  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. Review SRS requirements linked to the changed upstream user needs (in heading, text or deleted attribute) by following links with suspect flag icon :

    Suspect flag icon in the Links column
  4. To clear a suspect link flag, right-click and click Clear Suspect Link Flag from the context menu:

    Clear Suspect Link Flag contex menu
  5. The suspect link flag icon for the cleared link will disappear. It will show again after you change the link target object again.

  6. You can select more reviewed SRS objects and clear the suspect flags of all outgoing links. Click Edit and select Clear Suspect Flag, or press CtrlJ.

Note: Because the application evaluates suspect link flags from the history of link target objects you should check Save History option when saving your project, see Requirements Project > Save Project documentation section.

Traceability Between Projects

Apart from traceability links in the context of one project, you can also supports create URL links between document objects in different projects, see Share URL Links.

Example: Link product requirements to a common requirements library stored in different ReqView projects:

Product variants linked to a common requirements library

Paste ReqView URLs into the rich text editor when editing the Description column or a discussion comment. Or, create a dedicated custom attribute of xhtml type (e.g., linksToLibrary) containing only links to other projects. Advantage of this approach is that you can process the dedicated attribute separately during traceability analysis or document export.

Traceability Reports

You can generate a custom requirements traceability report to review requirements traceability matrix across multiple levels. You can customize report layout and visual style using an HTML template. For more information how to create custom HTML reports, see Custom Export Using Templates > Traceability Report.

Example: Traceability report displaying top-level business needs (NEEDS) in the left columns ID and Description and the related SW requirements (SRS) and test cases (TESTS) in the right column Traceability:

Requirement Traceability Report: requirements, traceability information, and test statuses

You can easily see in this report which functionality has missing tests. Or, which functionality has been verified.

Similarly, you can create an inverse bottom-up traceability report to reveal SW requirements not connected to any user need which indicates that these features were not possibly requested by the customer (gold-plating).

Download full example traceability report templates from the ReqView Support Site > Download Example Traceability Templates (login is required).

Updated for version 2.12.0