Skip to main content
Skip table of contents

Requirement dependencies

If you want to create links to reference requirements between one and another, you will use what we call dependencies. This page will teach you how to create dependencies with multiple use cases.

You can also take a look at the tutorial for more information:

How to create a dependency?

Using tables

  • When you write your requirements in tables, whether in Horizontal, or Vertical, you will simply have to add the /requirement yogi link macro to your requirement line.

  • The name of the relationship is the one you put in the column header.

  • The requirement link added in the line of the requirement will use a To, or Parent direction.

In the first example below: FN-01 references BR-01 and DIS-REQ-001 as a To / Parent dependency, with the relationship Refines.

Horizontal Tables

Vertical Tables

Horizontal Table - Dependency.png
Vertical Table - Dependency.png
Horizontal Table - Dependency (Detail).png
Vertical Table - Dependency (Detail).png

Using paragraphs

When you write requirements using paragraphs, we will index the paragraph as the content of the requirement. And the dependencies work the same way as above:

  • Write your requirement definition and put a /requirement yogi link macro in the same paragraph for us to index it as a dependency.

  • By default, the name of the relationship will be Dependency but you can customize it with the RY Configuration macro > Paragraph Configuration (see docs).

  • Same as the tables, the requirement link added in the definition of the requirement will use a To, or Parent direction.

In the example below, TECHNICAL REQUIREMENT 001 references LIDAR 001, with the relationship Dependency.

Paragraph Requirement.png
Paragraph requirement dependency.png

Using Linear Docs

When you write requirements outside of tables, and need a better customization than the paragraphs, we have a feature called Linear Documents.

💡Linear documents create requirement keys for each heading, we index the heading text as the description, and everything that is written in that section will be the @Content of the requirement. If you are not familiar with linear docs, we recommend to read the documentation and test the feature: Linear documents: Manage requirements outside of tables .

There are two ways to create dependencies using Linear Documents:

  1. Automatic dependencies: Linear docs index dependencies using the heading hierarchy. H1 titles reference H2 titles, which also reference H3 titles, etc.

    1. In the example below, you can see the heading 4.1.1 references headings 4.1.1.2 and 4.1.1.1, and is referenced by heading 4.1.

Linear Document Dependency.png
Linear Document Depdency - Detail.png
  1. Usual way: Using the /requirement yogi link macro anywhere in your paragraphs, and we’ll index it as a dependency of the last heading.

    1. In the example below, you can see the Heading 1.2 references MSFC-STF-3716 with the link macro.

Linear Document dependency - Link macro.png
Linear Document Dependency - Link macro detail.png

Using the parent requirement configuration

When you are writing your specifications, and using a page-per-feature structure, you may define the highest requirement first in the page, and then define sub requirements in the same page. You may want all those sub-requirement to reference this higher level requirement, automatically. Using the RY Configuration macro, and the Parent requirement Configuration, you can achieve that. See the documentation for the full explanation: Parent Requirement Configuration.

In the example below, my feature AUTO-BR-01 is the higher level requirement, and all my AUTO-FN requirements automatically reference the parent with the configuration.

Parent Configuration - Dependency.png
Parent Configuration - Dependency detail.png

How to trace dependencies?

Search syntax

You can use a specific search syntax to look for requirements with specific dependencies. We have two terms to identify the requirement who references another, and the requirement who is referenced. You can use either TO/FROM or PARENT/CHILD. Here are a few examples:

Syntax

Will result with

TO = 'REQ-001'

Requirements which reference REQ-001.

PARENT = ‘REQ-001’

FROM = 'REQ-001'

Requirements which are referenced by REQ-001.

CHILD = 'REQ-001'

FROM ~ 'REQ-%'

Requirements which are referenced by any requirement starting with "REQ-".

CHILD ~ 'REQ-%'

TO@refines = 'REQ-001'

Requirements which reference REQ-001 with the relationship “refines".

PARENT@refines = 'REQ-001'

The syntax is a bit more different for Linear Documents, so please explore the docs for more information: Search syntax

Traceability Matrix

You can create your matrices and display multiple levels of requirement dependencies in your reports.

  • Click on the cog menu of your requirement’s column.

  • Display sub level requirements by clicking on FROM, and select the relationship.

  • Display higher level requirements by clicking on TO, and select the relationship.

  • It is possible to go several layers deep in the levels of requirements

Traceability Matrix - Show FROM Dependencies.png
Traceability Matrix - TO dependencies.png

Dependency graph

When viewing your requirement detail, scroll down and view your requirements in a graphical way to navigate between dependencies.

  • Higher level requirements are displayed on the left, sub-level requirements on the right, and Jira issues below.

  • Click on a requirement to see its detail.

  • Click on a relationship name and be redirected to the search to find dependencies with that relationship.

Dependency-Graph.gif

Coverage

If you want to make sure some types of requirements are linked to the correct requirements, with the correct relationship. The coverage will let you select requirement types and check the dependency between them.

For now, the coverage is only available for requirement types. To start building coverage, navigate to the tab ‘Requirement Types’.

  • Select your first requirement type, and the requirement type you want to check it with.

  • The left box will show you cases where the first requirement type is a parent of / points to the second, based on the relationship.

  • The right box will show you cases where the first requirement is a child of / comes from the second.

In the example below:

  • The first requirement entered are my Business Requirements, the second my Functional requirements.

  • Upon clicking on ‘Build Coverage’:

    • I can see on the left x/x of my business requirements link to my functional requirements, with the relationship ‘refines’. You can also read that sentence like: my business requirements are parents of at least one functional requirement, with the relationship ‘refines’.

    • I can see on the right, none of my business requirements come from any functional requirements. You can also read that sentence like: none of my business requirements are children of any functional requirements.

Most asked questions

I cannot remember what TO and FROM is ? What is the direction of dependencies?

  • There are quick ways to remember how to use the TO and FROM in the search syntax:

    • Use the sentence : "I want to find requirements that point / reference to another requirement", so use TO in the search.

    • Or, “My functional requirements come from my business requirements", means the search syntax from = ‘FN-01’ will result with higher level requirements linked with FN-01.

  • Parent and To execute the same search: requirements pointing to another requirement.

  • Child and From execute the same search: requirements coming from another requirement.

How do I find requirement dependencies to deleted requirements?

You can navigate to the Cleanup Tasks and look for ‘Dead requirement links’. Please see more information here: Cleanup Tasks

How do can I make sure my requirements are linked with the correct set of requirements?

Using the Coverage, you’ll be able to select two requirement types and compare their links.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.