Validate a Requirements Trace Matrix

pip install dps-rtm==0.1.13


Requirements Trace Matrix (RTM) Validator

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

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.


  • not empty
  • sorts alphabetically
  • if procedure step, is formatted "P###" e.g. P010
  • if need, input or output, is formatted "P###-###" where first three digits correlate to procedure step. e.g. P010-010.

Cascade Block

  • must contain at a minimum these columns:
    • Procedure Step
    • Need
    • Design Input
    • Solution Level 1
  • optionally, may also contain these columns:
    • Solution Level 2
    • Solution Level 3
    • ...
    • Solution Level n
  • one and only one cell gets marked
  • no missing steps
  • each requirements path starts with Procedure Step
  • each requirements path terminates in 'F' (done)
  • all DO Solution levels get used (done)
  • only contains characters X or F (done)

Cascade Level

  • NOT EMPTY (done!)
  • VALID ENTRIES: is "procedure step", "voc user need", "busniess need", "risk need", "design input", or "design output solution" (done!)
  • MATCHING LEVEL: matches selection in Cascade Block (done!)

Requirement Statement

  • Not empty (WorkItemObject)
  • CHILD - valid pointer
  • valid pointer (CascadeObject)
  • check for ______ hashtags e.g. #Function, #MatingParts
  • report on extra tags found?

Requirement Rationale

  • not empty (done)

VorV Strategy

  • not empty (done)
  • if "business need", strategy is not required. Use N/A (is this true?)

VorV Results

  • not empty
  • if "business need", results are not required. all others require results (Use 'N/A' in this cell?)
  • if windchill number is present, check its formatting. (10 digits)
  • print report of applicable documents? (?)


  • not empty
  • no repeats in cell
  • print report of device list?

DO Features

  • not empty
  • if contains features that are CTQs, CTQ ID should be formatted as "(CTQ##)"
  • if contains features that are CTQs, check that CTQ Y/N column is "yes"
  • print report of CTQ IDs and correlated features/devices?


  • not empty
  • validated input list
  • is "yes", "no", "N/A", or " - " (only procedure step can have " - ")
  • if yes, check for CTQ IDs in DO Features column


  • 'N/A' check? (WorkItemObject)
  • " - " check

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 validation