Skip to main content

Validate a Requirements Trace Matrix

Project description

Validate a Function & Design Requirements document.

Free software: MIT license

J&J Quick Start

  1. Install Python
    1. Navigate to J&J App Store. You may need to use Internet Explorer. Users have had difficulty with Chrome.
    2. Search Python. You should see something similar to Python 3.6. Add it to cart and install.
    3. No restart is required.
  2. Run Command Prompt with Elevated Privileges
    1. Do not call IRIS.
    2. Hit the Windows Key and type cmd to search for the Windows command prompt
    3. Right-click cmd and select open file location. This opens File Explorer.
    4. Right-click on the cmd icon and select Run with elevated privileges.
  3. Install dps-rtm
    1. In Command Prompt, type pip install dps-rtm
    2. If this throws an error, try instead: python -m pip install dps-rtm. Hint: the up-arrow accesses previous commands to reduce the amount of typing you need to do.
    3. Note: You might see a note about pip being out of date. This is ok, but feel free to update it as suggested.
  4. Run rtm
    1. In Command Prompt, type rtm
    2. Note: Running the command prompt with elevated privileges is only needed for installing and upgrading rtm. To run the program, just open command prompt normally.

How to Upgrade to Latest Version

  1. Run Command Prompt with Elevated Privileges
    1. Hit the Windows Key and type cmd to search for the Windows command prompt
    2. Right-click cmd and select open file location. This opens File Explorer.
    3. Right-click on the cmd icon and select Run with elevated privileges.
  2. Upgrade dps-rtm
    1. In Command Prompt, type pip install --upgrade dps-rtm

Validation Rules

General Notes

  • The FDR sheet must have the title ‘Procedure Based Requirements’
  • If multiples headers share the same name, only the first will be used.
  • All columns get checked for 1) Exist and 2) Correct left-to-right order.


  • UNIQUE: Each ID must be unique
  • ALPHABETICAL SORT: The entire column must be in alphabetical order.
  • PROCEDURE STEP FORMAT: Procedure Step IDs must be formatted PXYZ e.g. P010
  • START WITH ROOT ID: All other IDs must start with the ID of its root Procedure Step. Example: if a Procedure Step has an ID of “P010”, then the following VOC USER NEED could have an ID of “P010-0010”.

Cascade Block

The Cascade Block is a group of columns: Procedure Step, Need, Design Input, Solution Level 1, …, Solution Level n.

  • NOT EMPTY: Error if Cascade Block row is entirely empty.
  • SINGLE ENTRY: Warning if more than one cell in Cascade Block row has an entry. Only the first is considered.
  • USE ALL COLUMNS: Warning if any Cascade Block columns are completely blank.
  • ORPHAN WORK ITEMS: Each work item must trace back to a procedure step.
  • SOLUTION LEVEL TERMINAL: Each requirements trace terminates at the Solution Level.
  • F ENTRY: Terminal work items are marked with ‘F’ in the Cascade Block.
  • X ENTRY: All other work items are marked with ‘X’.

Cascade Level

  • VALID INPUT: Procedure Step, VOC User Need, Business Need, Risk Need, Design Input, or Solution Level
  • CASCADE BLOCK MATCH: matches selection in Cascade Block

Requirement Statement

RTM Validator recognizes text string as tags if they meet these criteria:

  • Text string starts with # (pound sign)
  • Text string begins on a new line.

Some tags (e.g. #ParentOf, #ChildOf) take modifiers. RTM Validator recognizes text strings as modifiers if they meet these criteria:

  • Text string is separated from tag by white space (one or more spaces).
  • Occurs on same line as tag
  • modifiers cannot contain white space.


  • #ParentOf P010-020 - tag: ParentOf; modifier: P010-020.
  • #ChildOf P 020-054 - tag: ChildOf; modifier: P. Note that the 020-054 is ignored.
  • #ParentOf - tag: ParentOf; modifier: (None).

Available Base Tags:

  • ParentOf
  • ChildOf
  • Function
  • MatingParts
  • MechProperties
  • UserInterface


  • MISSING TAGS: Use each base tag at least once in the document
  • CUSTOM TAG: Custom tags are allowed, but produce a warning.
  • PARENT/CHILD MODIFIERS ParentOf and ChildOf modifiers must match a value in the ID column.
  • MUTUAL PARENT/CHILD: Each ChildOf work item must point to a work item that is itself a ParentOf the first work item.

Requirement Rationale


VorV Strategy

  • BUSINESS NEED N/A: Business Need work items are marked with ‘N/A’.

VorV Results

  • BUSINESS NEED N/A: Business Need work items are marked with ‘N/A’.



DO Features

  • CTQ FORMAT: if contains features that are CTQs, CTQ ID should be formatted as “(CTQ##)”
  • MISSING CTQ: if CTQ Y/N yes, check for CTQ IDs in DO Features column


  • VALID INPUT: “yes”, “no”, “N/A”, or ” - ” (only procedure step can have ” - “)
  • CTQ -> YES: If DO Feature has a ctq, then this cell needs a yes

Potential Future Features

  • Report on Windchill documents (WC#s, where used)

Developer Notes

How It Works

The Requirements Trace Matrix (RTM) documents the requirements cascade for an New Product Development (NPD) project. Broad core requirements flow into multiple subrequirements, which themselves spawn yet more subrequirements, and so on. Each (sub)requirement can have multiple parents, though most have only one. Each of these (sub)requirements is called a work item.

Expressed in terms of Graph Theory, the RTM is a collection of one or more directed, acyclic graphs. Each graph node is represented as a single row in the RTM Excel worksheet. Each node has multiple fields, represented by worksheet columns. The graph edges are represented by the worksheet’s Cascade Block. To find a node’s primary parent, find the last ‘X’ in the previous column of the Cascade Block. All other parents are called out with tags in the Requirements Statement field.

The RTM Validator works by first reading all rows of each field into an object. Then each work item (node) is read into its own object. Finally, validation functions are called, field by field. The output (pass/warning/fail) is displayed on the console.

Release History

v 0.1.1

  • Initial PyPI upload

v 0.1.2

  • added README

v 0.1.3|4|5

  • implement tkinter

v 0.1.6

  • implement click cli

v 0.1.16

  • add Cascade Block validation

v 0.1.17

  • add Cascade Level & Requirement Statement validation

v 0.1.22

  • add excel markup

v 0.1.23

  • implement max width on output
  • version check

v 0.1.26

  • version check
  • rtm markup (no longer rtm highlight) saves marked-up excel sheet to subdirectory and open file
  • headers must be located in row 2

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dps-rtm-0.1.27.tar.gz (78.4 kB view hashes)

Uploaded source

Built Distribution

dps_rtm-0.1.27-py3-none-any.whl (84.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page