使用可追溯性矩阵使需求完全可追溯
此示例显示如何查找无法追溯到基于模型的设计项的需求,以及如何通过创建具有可追溯性矩阵的链接来追踪这些需求。
可追溯性矩阵显示基于模型的设计工件中的项之间的链接,例如 Requirements Toolbox™ 对象、Simulink® 模型元素、Simulink Test™ 对象和 MATLAB® 代码行。您可以应用过滤器并只关注您想要看到的项。您可以使用矩阵来识别未链接的项并在您的设计中实现它们。
要了解有关如何使用可追溯性矩阵的更多信息,请参阅使用可追溯性矩阵跟踪需求链接。
打开巡航控制模型工程的需求定义。加载 crs_req_func_spec
需求集。
openProject("CruiseRequirementsExample"); slreq.load('crs_req_func_spec');
生成可追溯性矩阵
打开可追溯性矩阵窗口。
slreq.generateTraceabilityMatrix;
在“可追溯性矩阵”窗口中,点击添加。在“选择工件”对话框中,将左侧设置为 crs_req_func_spec.slreqx
,将顶部设置为 crs_controller.slx
。然后点击生成矩阵。生成一个可追溯性矩阵,其中左侧是指定的需求集,顶部是 Simulink 模型。
识别未链接的需求
要识别未链接的项,点击突出显示缺失的链接。未链接的需求在左列以黄色突出显示,未链接的模型元素在顶行突出显示。
滚动到 System Interface
> Inputs
父需求。点击范围可将矩阵视图聚焦于该层次结构。Inputs
下的子需求与 Simulink 模型中的模块没有链接。但是,您创建的可追溯性矩阵仅显示 crs_req_func_spec
需求集和 crs_controller
模型之间的链接。crs_req_func_spec
需求集可能与工程内的其他工件有更多链接。
生成包含多个工件的可追溯性矩阵
要同时查看多个工件之间的链接,您可以创建多工件矩阵。点击配置矩阵可以向矩阵中添加更多工件。在“配置矩阵”对话框的可用工件窗格中,选择 crs_req_func_spec.slreqx
。与所选工件有联系的工件会在可用工件窗格中突出显示。在这种情况下,除了 crs_req_func_spec
本身之外,每个工件都包含 crs_req_func_spec.slreqx
需求集之间的链接。将所有突出显示的工件拖至顶部工件列表。展开图标 表示这些工件中的项之间存在链接。
点击更新矩阵将工件添加到可追溯性矩阵中。从顶行最左边的列开始,选择每个工件并点击全部折叠。矩阵中的蓝线表示一个工件结束和另一个文物开始的位置。
选择 Inputs
父需求并点击范围来关注 Inputs
子需求。点击突出显示缺失的链接。现在您可以看到 Inputs
下的某些子需求链接到 crs_plant
模型中的项。
将未链接的 Inputs
链接到模型元素
crs_controller
和 crs_plant
模型包含与 Inputs
子需求相关的模型元素,但并非所有 Inputs
子需求都相互关联。将所有 Inputs
子需求链接到模型元素,以实现完整的可追溯性。首先,点击配置矩阵,然后从可追溯性矩阵中删除除左侧的 crs_req_func_spec
以及顶部的 crs_controller
和 crs_plant
之外的所有工件,方法是右键点击工件并选择删除工件。点击更新矩阵。在更新后的矩阵中,选择 Inputs
父需求并点击范围以关注 Inputs
子需求。
一些子项需求链接到 crs_plant
中的项。将剩余未链接的 Inputs
子需求链接到 crs_controller
中的模型元素。选择与 crs_controller
对应的单元格,然后点击范围。
要关注未链接的需求,请应用缺失链接过滤器。在过滤器面板中的左下的链接下,点击缺失链接。过滤器忽略了带有链接项的行。您可以通过点击突出显示缺失链接来验证这一点。
通过选择每个子系统并点击全部折叠来折叠 CruiseControlMode
、DriverSwRequest
和 TargetSpeedThrottle
子系统。通过选择与这两项相对应的单元格并点击创建,在 Enable Switch
需求和 enbl
模块之间创建链接。在“创建链接”对话框中,将类型设置为 Implements
,然后点击创建以在两个项之间创建链接。
您可以一次创建多个链接,只需按住 Ctrl,选择要创建链接的单元格,然后点击创建链接即可。在剩余需求和相应的模型元素之间创建链接:
Cancel Switch
需求和cncl
模块Set Switch
需求和set
模块Resume Switch
需求和resume
模块Increment Switch
需求和inc
模块Decrement Switch
需求和dec
模块Key Position
需求和key
模块
在“创建链接”对话框中,将所有链接的类型设置为 Implements
。
点击顶部工件列表中的清除过滤器,清除缺失链接过滤器。点击显示全部可显示所有工件。所有 Inputs
子需求都链接到设计项,因此它们不再突出显示。折叠 crs_controller
和 crs_plant
下的层次结构。展开图标 表示所有
Inputs
子需求已关联。
在工件中打开项
您可以通过双击与项对应的单元格来在工件中打开行和列中的项。例如,双击与 Simulink 模块对应的单元格将打开该模块所在的 Simulink 模型和子系统。
在需求编辑器中双击 Enable Switch
需求将其打开。为需求描述添加附加文本:"The
Cruise
button enables the cruise control as long as all other conditions are met."
然后点击保存。
在需求编辑器中,需求摘要及其关联链接(在右侧窗格的链接下列表中)以红色高亮显示,因为与该需求关联的链接存在更改问题。
查看并清除变更问题
当您更改链接到另一个项的需求时,该需求将以红色突出显示,以指示存在与该链接相关的更改问题。由于您更改了 Enable Switch
需求的描述,因此该链接存在变更问题。
返回可追溯性矩阵。点击更新以刷新矩阵。选择 Inputs
父需求并点击范围来关注 Inputs
子需求。点击突出显示缺失的链接 > 突出显示已更改的链接,然后点击突出显示缺失的链接 > 仅显示已更改的链接。显示与变更问题相关的链接,并且需求、链接项和链接以红色突出显示。
由于您仅更改了描述,因此该更改不会影响需求实现或验证。通过选择包含链接的单元格来清除更改问题,然后点击清除更改问题。在评论中,输入“Added additional information to the requirement description
。”然后,点击全部清除。
当您选择需求编辑器中右侧窗格中注释下的链接时,您可以查看注释。
根据可追溯性矩阵生成报告
点击更新来更新矩阵,以反映已清除的变更问题。选择 Inputs
父需求并点击范围。展开所有链接:选择包含展开图标 的单元格,然后点击展开全部。点击全部折叠可折叠所有不包含链接的层次结构。此视图显示了与
Inputs
子需求的链接。通过点击导出> 生成 HTML 报告,生成包含可追溯性矩阵当前视图的静态快照的 HTML 报告。选择保存文件的位置,然后点击保存。