Automated Traceability Link Derivation and Maintenance
A systems engineering project comprises tens or even hundreds of thousands of development artifacts, be it stakeholder requirements, elements of the system architecture, software units, test cases etc.
Requirements traceability not only helps you to stay on top of things, but brings a lot of benefits and thus is required by several standards such as ISO 26262 or Automotive Spice – but the maintenance of traceability links between plenty of artifacts may be quite expensive. You need an excellent tool to maintain your traceability data efficiently. This article is about how YAKINDU Traceability supports you to achieve exactly this; it also tells a little story about how the tool evolved based on customer needs.
Link Derivation Based on Attribute Mapping
As a core feature, YAKINDU Traceability supports link derivation based on mapping attributes. Imagine
- two requirements with attributes Id = "REQ_1", Id = "REQ_2", resp.
- one test case with attributes ID = "TC_1", req_ids="REQ_1, REQ_2".
In this case, the tool may derive the links (if configured so) between test case TC1 and Requirements REQ_1 and REQ_2. The configuration simply looks similar to:
where requirement.Id in testcase.req_ids.separatedBy(", ")
Link Derivation Based on Attribute Matching
In some cases, the above described pure attribute mapping was not sufficient. For example, one of our customers requested to create traceability links between “all requirements from DOORS to their nested requirements meeting a given condition”. On request, “nested requirements” was specified as “at least two levels deeper in the hierarchy”. (The “given condition” was a simple check of an attribute value and is not discussed here, as we want to focus on the attribute matching.)
We extended our attribute mapping mechanism to not only check the exact match of attribute values, but to also support substring evaluations, regular expressions or string containments. The attribute based link derivation is no longer restricted to equality-comparisons of attribute values, it also supports the recognition of attribute similarities. The best about it is that the extent of similarity is configurable – just express what “match” means in your particular case.
Attribute Recognition Based on Matching
You already might know that YAKINDU Traceability does not only recognize the identifiers of development artifacts to analyze and maintain links between them, it also extracts attributes of those artifacts in order to use them during link derivation or other analysis tasks. In order to e.g. query “all stakeholder requirements which have a failing test”, you need to recognize the attribute “result” of a test report.
One of our customers asked us to “analyze all requirements that specify error codes” and “to group them by error code”. The actual error code was mentioned somewhere in the requirements description text. Therefore, we applied the powerful attribute evaluation for link derivation also to the recognition of attributes of development artifacts and hereby implemented the requested feature.
Even if this is only a small extension of YAKINDU Traceability, it has become our Feature-of-the-month in October 2017, because it tops off the attribute analysis capabilities of the tool.
Don’t do this (just kidding)
Regarding the above mentioned fictional example “all stakeholder requirements which have a failing test”: With regular expressions and string replacements you are now able to turn all test result which are “failed” into “passed” just by configuration. Please don’t tell anyone.