Main Content

Create Requirement Set Hierarchies by Using the Requirements Toolbox API

This example shows how to use the Requirements Toolbox™ API to create a requirement set with a custom hierarchy and custom requirement types. You create a requirement set as an .slreqx file.

Requirement Set Hierarchy

The requirement set that you create in this example contains two top-level parent requirements and parent justifications for implementation and verification. The requirement set follows this hierarchical structure.

A requirement set with two parent requirements and one parent justification. The requirements and justification are collapsed to show the lower-level requirements and justifications.

Create Requirement Set

Navigate to the folder where you want to create the requirement set. Create a requirement set my_New_Req_Set with handle myReqSet by using the slreq.new() function.

myReqSet = slreq.new('my_New_Req_Set');

Add System Requirements to the Requirement Set

Add a top-level Container requirement for System Requirements to the requirement set.

myParentReq1 = add(myReqSet,'Id','R1', ...
    'Summary','System Requirements', ...
    'Type', 'Container');

Create child requirements for R1.

childReqR11 = add(myParentReq1,'Id','R1.1');
childReqR12 = add(myParentReq1,'Id','R1.2');

Create child requirements for R1.1.

childReqR111 = add(childReqR11,'Id','R1.1.1');
childReqR112 = add(childReqR11,'Id','R1.1.2');
childReqR113 = add(childReqR11,'Id','R1.1.3');

Create a child requirement for R1.1.3.

childReqR1131 = add(childReqR113,'Id','R1.1.3.1');

Add Safety Requirements to the Requirement Set

Add a top-level Safety requirement to the requirement set. Safety requirements are informational and do not contribute to the Implementation and Verification status summaries. In this example, you define a custom requirement type that extends the Informational requirement type by using the sl_customization.m file.

Refresh customizations to add the Safety requirement type to the list of requirement types.

slreq.refreshCustomizations;

Create the parent safety requirement.

myParentReq2 = add(myReqSet,'Id','R2', ...
    'Summary','Safety Requirements', ...
    'Type','Safety');

Create child requirements for R2.

childReqR21 = add(myParentReq2,'Id','R2.1');
childReqR22 = add(myParentReq2,'Id','R2.2');

Create child requirements for R2.2.

childReqR221 = add(childReqR22,'Id','R2.2.1');
childReqR222 = add(childReqR22,'Id','R2.2.2');
childReqR223 = add(childReqR22,'Id','R2.2.3');

Add Justifications to the Requirement Set

Create the parent justification.

myParentJustification = addJustification(myReqSet,'Id','J', ...
    'Summary','Requirement Justifications');

Add child justifications to the parent justification J to justify requirements for Implementation.

childJust1 = add(myParentJustification,'Id','J1', ...
    'Summary','Implementation Justifications');

Add child justifications to the parent justification J to justify requirements for Verification.

childJust2 = add(myParentJustification,'Id','J2', ...
    'Summary','Verification Justifications');

Save the Requirement Set

save(myReqSet);