前言
本文介绍MATLAB需求管理工具Requirements Management的基本使用方法,记录探索使用的几种方式,结合ASPICE讨论该工具在追溯性上的使用和自己的思考。
一、需求管理工具的基本操作步骤
打开模型,在菜单栏打开软件需求管理工具

打开需求编辑器

导入软件需求文件

支持导入excel、word和DOORS格式的软件需求文件,本文以excel格式为例

选择完需求文档后,若为excel,可以选择导入哪个sheet
一般默认选择只导入文字,选择指定列作为需求的标示,并点击右侧配置列

根据需要导入的列,给每一列选择属性。(重要,会影响到导入后的需求的显示效果)

其中自带的属性选项如下:

建议前五个属性都根据实际情况指定。
有内容的列,如果没有指定,默认为用户自定义属性custom attribute。
没有内容的列,默认为忽略ignore,不会导入。
为方便参考属性设置,导入好的需求对应显示如下:

通过该方式直接导入需求完成后,显示如下:

点击Import1后,详细内容显示在右侧,如下:

默认为只读需求,若需要在该matlab工具中修改需求,点击Unlock all。
若需求文档有变更,点击Update,会弹出重新选择某路径下的需求文档,自动搜索变更项并进行更新,弹出提示变更框,并通过右侧comments可以看到每次更新的变更项。


二、几种需求导入方式的介绍与对比
需求导入方式1:上述这种直接导入需求的方式,默认为只读,需求是不能再设置需求层级,如子需求和父需求,即使是unlock后,也只能编辑需求内容,仍不能设置需求层级。
需求导入方式2:先在菜单栏file中选择新建一个需求设置,得到如下:

右键点击,选择只读可编辑需求:

进行同方式1的需求导入设置后,见下图import2。可见方式2和方式1导入后相同。

需求导入方式3:同方式2,新建一个需求设置,选择导入可编辑需求,进行相同的需求导入设置后,见下图3。可见方式3与其他不同。

1)方式3的需求文档,没有方式1如下需求内部变更的选项,不能通过外部需求更新

2)右键一条需求,出现设置需求层级的选项,可以设置父需求与子需求

通过move up/move down可以调整需求上下移动,需求编号随着自动变动
通过拖拽一条需求到另一条需求上,设置子需求和父需求,编号随着设置层级,如下

这种需求层级的设置,显示上得到了优化。
推荐:使用方式1,主要考虑需求迭代后方便matlab上同步更新
三、需求与模型的追溯
对应某条需求,打开模型中实现该需求的模块(任何模型层级,simulink基础模块、subsystem、信号线、chart、chart信号线均可)
点击该条需求,直接鼠标左键拖到对应的模块上,便实现了需求与模型的链接。
注:一个需求与模型可以实现n对n的追溯,即一个模块可以被多条需求追溯,一条需求也可以追溯多个模块。
在模型上可以看到追溯的需求链接:

在需求中可以看到追溯的模型链接,并可在这里删除追溯(模型上貌似不能删除欧):

通过菜单栏display勾选显示implemented和Verified。
可以看到该条需求显示已被实施

当多个需求做了追溯后,可以看到总章节上会自动汇总实现完整度。

四、需求与测试用例的追溯
在test manager中,测试用例设置里面,含有软件需求的追溯。如下图,测试用例可以追溯到多种形式的软件需求。

我们选中对应的软件需求,然后点击link to selected requirement
测试用例中便会显示追溯的需求的链接

在需求编辑器中,该条需求verified显示黄色,标示追溯了测试用例,但测试用例未运行


测试运行后,若测试通过,verified会显示绿色,若失败,显示红色。
五、总结
通过matlab工具包,simulink--requirements manager --test manager,可以实现软件模型开发,模型与需求的双向追溯,测试用例与需求的双向追溯,间接实现模型与测试用例的追溯。
六、话题延申
这里再提到ASPICE,让我们回顾ASPICE SWE3过程域中BP5的要求:

即要实现的双向追溯含:软件需求-软件单元、软件架构设计-软件详细设计、软件详细设计-软件单元。
从实现角度,首先SWE2中软件架构设计已经完成与软件需求的双向追溯,我们可以将上述追溯简化为:软件需求-软件单元-软件详细设计
这里我们先不管软件详细设计的追溯,软件需求-软件单元的双向追溯,本文就是一种方式。
再回顾ASPICE SWE4过程域中BP5的要求:

即要实现的双向追溯含:软件单元-静态验证结果、软件详细设计-单元测试用例、单元测试用例-单元测试结果。
其中SWE3中实现详细设计与软件单元的追溯,间接上本文可以实现软件详细设计-单元测试用例、单元测试用例-单元测试结果的追溯。
最后,让我们把SWE3 SWE4串起来:
通过本文介绍,结合其他追溯工具如DOORS,把追溯关系串起来:软件需求(-软件架构)-软件单元(-软件详细设计)(-静态验证结果)-单元测试用例-单元测试结果
这样ASPICE SWE3 SWE4追溯关系便可以直接或间接实现。
也涉及到做ASPICE追溯的工具上的选择,本文仅提供其中一种选择的可能性,即通过MATLAB实现软件需求-软件单元--单元测试用例-单元测试结果。