Introduction 

Matrix Requirements manages Design Input and Design Output in categories. It is possible to add links between items of different categories. This links can either be required or optional. Using traceability reports it is possible to analyse the project for broken links. 

 

You can also use smart links to link from one item to another item or a folder. In order to use smart links you just type the item ID of the target item into a rich text field. In reports and when not in edit mode, this smart link will be rendered and as hyperlink to the item.

Setup

Traceability rules can be setup in the administration client. They are specified in a JSON project setting, using the following syntax. For each category there is a rule. Each rule defines the following attributes

Note: rules to and from XTCs are implicit (by the end_point) attribute and should not be added to the up_rules nor down_rules.

 

{
  "rules": [
    {
        "category": "REQ", "end_point": "XTC", "creates_end": false,"expected":100,
        "reporting": [ "DesignInput", "Design" ],
        "up_rules": [ ],
        "down_rules": [ { "message": "there is no specification", "name": "must have a specification", "rule":"must_have", "any_of": [ "SPEC" ] }]
    }, {
        "category": "SPEC", "end_point": "XTC", "creates_end": false,"expected":100,
        "reporting": [  "DesignOutput",  "Design" ],
        "up_rules": [ { "message": "is not derived from requirement nor risk", "name": "must be derived from requirement or risk", "rule":"must_have", "any_of": [ "REQ", "RISK" ] } ],
        "down_rules": [ { "message": "there is no test case", "name": "must have test case", "rule":"must_have", "any_of": [ "TC" ] } ]
    }, {
        "category": "TC", "end_point": "XTC", "creates_end": true,"expected":100,
        "reporting": [  "DesignOutput",  "Design", "Test" ],
        "up_rules": [ { "message": "is not derived from specification", "name": "must be derived from specification", "rule":"must_have", "any_of": [ "SPEC" ] } ],
        "down_rules": [ ]
    }, {
        "category": "UC", "end_point": "XTC", "creates_end": true,"expected":100,
        "reporting": [ "DesignInput", "Design", "Test" ],
        "up_rules": [ ],
        "down_rules": []
    } , {
      "category": "RISK", "creates_end": false, "expected":100,
      "reporting": [ "Design", "Risk" ],
      "up_rules": [  ],
      "down_rules": [ ]
    },
    { "category": "XTC", "creates_end": false, "reporting": [ "ExecutedTest" ], "up_rules": [ ], "down_rules": [ ] },
    { "category": "DOC", "creates_end": false, "reporting": [ "Doc" ], "up_rules": [], "down_rules": []},
    { "category": "SIGN", "creates_end": false, "reporting": [ "Sign" ], "up_rules": [], "down_rules": [] },
    { "category": "REPORT", "creates_end": false, "reporting": [ "Report" ], "up_rules": [], "down_rules": []}
  ]
}

The configuration above specifies for example that

Note if a requirement must have links to specifications and use cases, the down rules would look like this

"down_rules": [ { "message": "there is no spec", "name": "must have a specification", "rule":"must_have", "any_of": [ "SPEC" ] },
                { "message": "there is no use case", "name": "must have a use case", "rule":"must_have", "any_of":: [ "UC" ] },
                { "message": "there is no test case", "name": "can have a test case","rule":"can_have", "any_of": [ "TC" ] }]

Reporting

In order to see whether all rules are obeyed, you can create the Traceability Report Generic.

Related issues