【Simulink模型标准化开发】需求管理与基线测试--- Requirements ManagementSimulinkTest

article/2025/8/23 5:14:08

        前言:Simulink模型是嵌入于Matlab之中的一个模块化开发工具,它在嵌入式领域和应用层逻辑的搭建上享有声誉。并且,Simulink与C语言一样有着一套标准化的开发流程,因此它也具备安全性、可靠性、可移植性等优势。而在本篇文章中,则是对建模时的需求管理和可靠性验证做一个初步介绍与学习。


目录

一、Requirements Management是什么?

1.1 简介

1.2 需求管理内容

1.3 需求管理的呈现

二、Requirements Management&&SimulinkTest交叉验证

2.1 根据模板定制需求

2.2 根据需求创建模型

2.3 创建需求管理

2.3.1 打开需求编辑器

2.3.2 创建需求管理集 

2.3.3 添加需求集

2.3.4 加载需求

2.3.5 绑定需求

2.4 验证需求管理 

2.4.1 创建测试框架

2.4.2 创建测试工程

2.4.3 绑定测试框架

2.4.4 配置测试用例 

2.4.5 添加测试用例

2.4.6 需求与测试用例交叉验证

三、需求定位

3.1 需求功能块链接与测试用例快速定位 

3.2 需求追溯图查看

总结


一、Requirements Management是什么?

1.1 简介

         Requirements Management--需求管理,这是部署于MATLAB中的一款需求管理APP。它可以根据word或者Excel来管理,也可以通过其内置的ReqIF文件或者IBM配置来进行需求管理。并且,它要求每一条需求都必须有对应的功能块与之对应,否则会出现需求不达标的状况。当需求与对应的功能块关联之后,每一条需求便可视为超链接可以快速定位对应的功能块,同时需求管理器内部也会生成拓扑图辅助我们查看需求对应的所有功能块即一个需求可以被多个功能块使用。

APP位置
需求管理文件格式

1.2 需求管理内容

以Excel进行需求管理为例,它包含如下信息:

1、自定义ID,即每条需求对应的序号,方便后续的管理操作进行定位,如果不定义则由系统默认但是不利于管理。

2、摘要,即每条需求的简略概括。

3、描述,即每条需求的详细介绍包括但不限于从定义到实现的完整过程

4、理由,即每条需求的目的

5、关键字,即为每条需求的匿名,也方便后续的管理中进行定位

6、创建者,即杜撰人。

7、创建日期,即需求的生日。

8、修改者,即修改人。

9、修改时间,即发生变更的日期

10、自定义属性,此项为一个类即用户可以自定以除以上9种的任意属性,但是不管定义成什么,定义多少,都会被归为自定义属性那一块。此项可以自行探索与拓展。

11、忽略,被标记为忽略的列不会被写入需求管理的任意属性里。

        那么可以根据以上信息创建Excel的需求管理模板,而需求内容的编辑需严格遵守属性定义,否则无法被写入。以下仅强调描述和理由的规则,其它规则可自行探索。

规则如下:这两个的内容必须为有序即需以'数字.'的形式开头。可自行琢磨。最终的表格模板如下:

1.3 需求管理的呈现

        以案例中的加法运算需求为例,当完成绑定后,依据图一信息,可以在功能块的右上角快速查看需求,同时Verified表示当前需求是否通过测试,如果没有则为红色,否则为绿色。Implemented表示当前需求是否被绑定,如果没有则为空白,否则为蓝色。

        依据图二信息,可以看出所有与需求绑定的功能块与测试用例,并且可以通过点击进行快速定位。

图一
图二

二、Requirements Management&&SimulinkTest交叉验证

2.1 根据模板定制需求

假设需求如下并将其保存至工作路径:

2.2 根据需求创建模型

       根据数学运算需求创建外部子系统,根据四则运算需求在其内部创建子系统,那么最终功能块如下所示:

2.3 创建需求管理

2.3.1 打开需求编辑器

路径:APP-需求管理编辑器

2.3.2 创建需求管理集 

步骤:新建需求管理集-选择名字和路径-点击保存。如果界面为空白在最右侧会有一个向导。

2.3.3 添加需求集

需求添加方式一,步骤如下:

步骤一、右击需求名字-选择添加需求

步骤二、点击后会自动创建一条需求,其中索引为系统默认不可更改,ID可以自定义,其余内容可在右侧编辑添加

步骤三、根据需求数量重复步骤二即可。

需求添加方式二,步骤如下:

步骤一:点击需求-点击导入-文档类型选择电子表格

选择文档路径后出现以下界面,需关注配置列和支持外部源更新两个选项

步骤二,配置列与外部源更新:

       配置列功能主要是对导入的excel表格做一个映射操作。点击配置列后后出现一个窗口,它会将表格的内容全部映射出来,我们需要根据规则在用作那一行给每一列手动选择对应的映射属性,下图是已经配置完成的模板,可以参考。

       在配置窗口下方还有一个指定导入的行,顾名思义就是可选择性的导入需求。

       以上配置完成后点击确定即可。

       若选择支持外部源更新,即当发生需求变更时修改表格内容然后更新即可。若不选择支持外部源更新即当需求变更时需在需求编辑界面进行修改,而表格的修改不会影响到需求。

 步骤三,需求集

       当完成创建后会如下图所示出现一个需求集,可以通过鼠标点击对应的需求查看属性映射是否正确。

        如果需要查看其余的属性可以右击属性列-选择属性-在隐藏列选择查看的属性后添加确定即可。

       至此,便完成需求集的全部创建。需要注意的是以上操作是基于表格从空白直接创建需求集,也可先创建需求集再导入需求,这个操作可自行探索,大同小异。

2.3.4 加载需求

        需求集的每一条需求需要绑定对应的功能块才能正常进行管理,因此接下来需要在模型搭建界面进行操作。

       打开需求管理器:APP-需求管理器-点击后会在下方出现需求管理的窗口,如果没有可以通过模型画布右下角的透视图进入。

然后加载需求集:点击需求管理器处的打开需求集-选择创建的需求集

完成加载后界面如下:

添加其余的查看属性:右键需求集-选择实现和验证状态,如下所示,由于未绑定功能块,此时进度条都为空白。

2.3.5 绑定需求

假设已有对应的功能块,接下来对其进行绑定。

方案一,右键需要绑定的功能块-需求-根据当前操作选择(自行探索)

方案二,选择对应的需求拖拽至目标功能块(推荐)

需求链接成功后如下所示,功能块的右上角会出现类似文件的图标并可以打开查看需求,需求管理器内对应的需求实现进度条会变成蓝色。

 接下来重复操作,完成所有需求的绑定,最终效果图如下:

        至此,完成了所有的需求与对应功能块的绑定。但是目前为止只完成了上述需求管理的一半操作。还有一个操作就是需求验证,可以看到验证进度条依旧是白色表示没有任何操作链接。因此接下来完成需求的验证。

2.4 验证需求管理 

        对需求管理的验证需要用到另外一个工具-SimulinkTest。这也是APP中的一个内置工具,它可以为子系统内的功能块创建测试用例并进行验证。由于本文核心不在于此,因此仅描述如何使用该项工具来进行需求管理的验证。如果对该项工具想有进一步的了解可以等待后续文章或者自行查询资料。

2.4.1 创建测试框架

       测试框架是独立于原功能块的测试模型,测试模型的变更不会影响原模型,但测试模型的输出结果可以作为原模型的测试结果。 步骤如下:

第一步:右键目标功能块-测试框架-为目标功能块创建-保持默认选择点击确定即可

第二步:重复上述操作,完成所有功能块测试框架的创建。创建完成后可以在测试框架管理中查看已成功创建的测试框架。

2.4.2 创建测试工程

第一步:进入SimulinkTest,APP-SimulinkTest-Simulink测试管理器

第二步:创建测试工程,左上角新建-从电子表格创建测试

数据配置界面选择创建用于指定数据的测试模板文件后点击下一步

系统界面选择当前所属模型-从创建的框架中任选一个(可以选择空白框架,但由于没必要所以直接用实际的测试模型)后点击下一步

 属性界面如果是第一次使用建议全部选中然后下一步

场景界面指定测试场景的数量实际上就是待创建excel中sheet的数量,指定场景的基名称实际上就是sheet的名字,根据需求配置即可然后点击下一步

 在生成的测试界面配置测试文件和电子表格的保存路径后点击完成即可开始创建测试项目。

 创建中...

创建完成后界面如下,后续的操作都是在测试套件和测试用例下完成的。其中测试套件和测试用例的名称可以修改。

2.4.3 绑定测试框架

在测试用例下展开需求,然后点击添加

 在打开的界面中点击新建-在文档类型中选择Requirements Toolbox-点击使用当前

在文档索引界面选择对应的需求然后应用,如果提示回调错误说明模型中选中的模块与此处不符,只需要双击此处的需求即可。建议直接双击。

然后在需求界面点击应用-观察测试用例的需求是否与此处一致,如果一致点击确定即可,如果不一致重复操作。

完成上述操作后回到模型画布界面观察,由于当前只绑定了一个需求且未进行测试,因此下方Verified列表仅数学运算的进度条为黄色标识,其表示已链接测试用例但未测试,最上面两列只有一部分黄色表示需求未全部绑定。

2.4.4 配置测试用例 

在测试用例的右侧找到输入选项,然后点击编辑

 点击编辑后会打开表格,需要了解如下信息:

1、time即运行时间,左侧time为输入信号执行时间,右侧time为输出信号执行时间,为了方便分析,一般需要手动将右侧time复制到左侧time

 2、端口分为左侧输入端口和右侧输出端口,他们以第二个time分割开。其中输入输出的数据容量应该保持一致即与time的操作一样。

举例,假设测试的功能逻辑为输入值+1,那么在表格中如果在time=0时的u8AddInport为0,u8AddOutport=1,那么该时间段的测试用例就是通过的。如果在time=0.2时的u8AddInport为1,u8AddOutport=1,那么该时间段的测试用例就是失败的,需要检查。其余的端口测试类似。

 3、那么经过修改后的表格最终如下,保存后即可开始测试。

2.4.5 添加测试用例

在已有的测试组中添加测试用例与从空白工程新建测试用例略有不同,因此单独描述,以添加Add功能块为例,如下:

选中测试组-新建-基线测试(其余测试用例的用法可自行探索)

新建的测试用例需要完善以下信息。需求绑定、测试框架和测试模型选择、输入参数映射、基线准则映射。相关配置区域如下所示:

需要注意的是,上述缺省的配置建议先完善模型和测试框架,然后填补其余信息。各区域的操作如下:

1、模型与框架的选择与前面空白测试用例创建的操作一致,选择对应的路径即可

2、需求绑定操作与前面一致

3、输入参数可以基于原表新建,也可以进行映射(此处推荐映射)

输入参数映射操作如下,首先点击添加

 然后添加基于空白工程创建的表格

然后在选择文件后弹出的提示框中点击映射输入,显示成功映射后点击下方添加即可

基线准则的操作与添加输入的操作一致,只是需要将不需要的端口取消即仅保留当前测试框架相关联的端口。

最终配置如下

       剩下的需求链接与添加Add一致,只需根据框架保留对应的输出端口即可。

       完成所有配置后,最终结果图如下,蓝色表示所有需求均有功能块链接,黄色表示所有需求均有测试用例链接但是未进行测试。

2.4.6 需求与测试用例交叉验证

由于上述已经将相关配置完成,此处可以先直接运行观察测试结果

1、只运行ProjectFunction1_MathSubsystem_Test,结果如下:SimulinkTest结果为绿色,表示测试通过。

 模型中仅数学运算进度条为绿色,表示仅该项需求测试通过

 2、运行所有的测试用例,结果如下:SimulinkTest结果为绿色,表示测试通过。

  模型中所有需求的进度条均绿色,表示需求测试通过。

3、在表格中修改测试用例,结果如下:

      仅修改表格中Add的输出端口参考数据等于输入数据,SimulinkTest中MathSubsystem和Add的测试用例出错,表示该项需求测试未通过。同时,由于Add、Sub、Multiply、Div为MathSubsystem的内部子系统,因此也可以判定配置的映射关系无误。

         模型中数学运算和加法运算的需求进度条为红色,表示需求测试未通过。则验证了需求管理和SimukinkTest的链接无误。

三、需求定位

3.1 需求功能块链接与测试用例快速定位 

        可以在需求管理器中选择需要查看的需求,右侧链接中会出现实现者和验证者信息。其中实现者为链接的模型功能块,通过点击可以快速跳转;验证者为SimulinkTest中的测试用例,通过点击可以快速跳转。

3.2 需求追溯图查看

在需求管理器中选择需要查看的需求,然后点击上方的可追溯图

结果如下,图中会将链接的功能块以实现的标签展示出来,链接的测试用例以验证的标签展示,这里面的功能块也可通过点击快速跳转。


总结

在本篇文章中简单的描述以下两点:

1、基于Requirements Management简单描述了如何基于表格创建模型需求、管理需求、链接需求。

2、基于SimulinkTest简单描述了如何使用它对创建的测试框架进行验证、如何将对应的需求链接至功能块。

        以上只是对于模型需求管理的简单描述,根据项目不同,还有很多细节需要把控和优化,还有很多使用技巧需要探索。但总而言之,通过上述的工具链,在模型搭建的架构上已经可以比较规范了,需要达到非常标准的建模规范,还需要了解如MAAB建模规范等标准。     

        最后,由于篇幅过长,本文章到此结束啦,欢迎各界大佬前来斧正。以下是文章工程的地址并且已上传资源,欢迎自取学习。

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。https://gitcode.com/SYW-OPEN/Simulink_5498/tree/Simulink/%E9%9C%80%E6%B1%82%E7%AE%A1%E7%90%86


http://www.hkcw.cn/article/dBbOoiNWAq.shtml

相关文章

前端 jQuery 简单实现一个网页格斗游戏示例

效果图 源代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简易格斗游戏</t…

stm32 + ads1292心率检测报警设置上下限

这个项目是在做心率检测的时候一个小伙伴提出来的&#xff0c;今年五一的时候提出来的想法&#xff0c;五一假期的时候没时间&#xff0c;也没心情做这个&#xff0c;就把这个事情搁置了&#xff0c;在月中做工作计划的时候&#xff0c;就把这个小项目排进来了&#xff0c;五一…

git+svn+sourcetree客户端下载和安装教程

1.引言 本文带来git、svn、sourcetree的软件的下载链接和安装介绍。git、svn是文件版本控制工具&#xff0c;电脑安装后需要使用cmd命令来提交或拉取文件。非常麻烦&#xff0c;推荐使用sourcetree等工具来提交代码 sourcetree界面 压缩包内容&#xff0c;git、svn、svn汉化工…

华为湖南总部大楼刷新马栏山风景线:已经进入内部装修阶段

华为湖南总部大楼刷新马栏山风景线。5月29日,航拍镜头下的位于马栏山视频文创产业园的华为湖南总部大楼项目大楼十分引人注目,三栋楼体采用金色线条和玻璃元素,成为拔节生长的马栏山里一道亮丽的风景。从现场施工来看,该项目园林绿化已经完成,已经进入内部装修阶段。该项目…

小学生捡到手机后交给民警被送锦旗:失主准备了一面“哪吒锦旗”

小学生捡到手机后交给民警被送锦旗。近日,四川成都。7岁的小学生廖元祎在路边捡到一部手机,送到了派出所。巧合的是,就在廖元祎走进派出所不久,失主也来到派出所报失。看到手机物归原主,廖元祎开心地跳起来。为了给廖元祎一个表扬,失主准备了一面“哪吒锦旗”,和民警一起…

王力宏称为癌症研究者哥哥感到骄傲

王力宏称为癌症研究者哥哥感到骄傲。5月29日下午,知名歌手王力宏在社交媒体晒出哥哥王力德的演讲视频,以及和哥哥的合影。王力宏表示:“为我哥哥王力德博士感到骄傲!他在香港举行的ASGH亚洲医疗健康高峰会上发表演讲,思路清晰、充满远见。哥哥介绍了自己在希望之城实验室的…

风云二号 F 星:地球静止轨道上的气象先锋

风云二号卫星是我国第一代地球静止轨道气象卫星&#xff0c;从 1986 年国家正式批复风云二号气象卫星工程以来&#xff0c;经过多年的研制与发展。风云二号 F 星作为 03 批的首发星&#xff0c;其成功发射进一步提高了我国静止气象卫星的观测能力和技术水平&#xff0c;对于确保…

论文笔记:DreamDiffusion

【初中生也能看得懂的讲解】 想象一下&#xff0c;我们能不能直接用“脑子想”来画画&#xff1f;比如你想到一只猫&#xff0c;电脑就能画出一只猫。这听起来是不是很酷&#xff1f;科学家们一直在努力实现这个“意念画画”的梦想。 以前&#xff0c;科学家们可能会用一种叫…

输电线路的“智慧之眼”:全天候可视化监测如何赋能电网安全运维

在电力需求持续攀升、电网规模日益庞大的今天&#xff0c;输电线路的安全稳定运行面临着前所未有的挑战。线路跨越地形复杂多变&#xff0c;尤其是在偏远山区、铁路沿线及恶劣天气条件下&#xff0c;传统的人工巡检方式显得力不从心——效率低、风险高、覆盖有限。如何实现更智…

通过域名访问k8s-pod方案

针对一些特殊业务需要通过pod名称或域名直接访问pod内部服务。本文主要提供一种暴露pod域名到公司内网的方案。 01 技术方案 1、使用coredns基于etcd的域名解析插件 2、单独部署一套server&#xff0c;该server负责接收agent发来的域名记录请求&#xff0c;并将数据写到etcd。 …

【C++高级主题】命令空间(三):未命名的命名空间

目录 一、未命名的命名空间的基本概念 1.1 定义与特点 1.2 基本语法 1.3 访问方式 1.4 未命名的命名空间的作用 二、未命名的命名空间与静态声明的比较 2.1 静态声明的作用 2.2 未命名的命名空间的优势 2.3 示例代码比较 2.4. 未命名的命名空间的作用域和链接属性 三…

生成式人工智能:重构软件开发的范式革命与未来生态

引言 生成式人工智能&#xff08;GenAI&#xff09;正以颠覆性力量重塑软件开发的底层逻辑。从代码生成到业务逻辑设计&#xff0c;从数据分析到用户交互&#xff0c;GenAI通过其强大的推理能力与场景适应性&#xff0c;将传统开发流程的“复杂工程”转化为“敏捷实验”&#…

石宇奇称需要重视伤病:近期因治疗胃病导致腹部皮肤被烫出水泡

石宇奇称需要重视伤病。5月27日,在2025年新加坡羽毛球公开赛男单首轮比赛中,中国名将石宇奇以2比0战胜印尼选手郑加恒,顺利晋级十六强。赛后他透露,近期因治疗胃病导致腹部皮肤被烫出水泡。据了解,石宇奇长期受胃部不适和消化问题困扰,尤其2025年全英赛后症状加重,苏迪曼…

Attention Is All You Need论文阅读笔记

Attention is All You Need是如今机器学习研究者必读的论文&#xff0c;该文章提出的Transformer架构是如今很多机器学习项目的基础&#xff0c;说该文章极大推动了机器学习领域的研究也不为过。 但这么重要&#xff0c;也是必读的文章对初学者来说其实并不友好&#xff0c;很多…

持续12年的股权争夺战即将落幕 75%股权归属终见分晓

持续12年的股权争夺战即将落幕 75%股权归属终见分晓。一场持续12年的股权争夺战即将落幕。胡绪峰表示相信二审能公正判决,75%的股权归属问题即将揭晓。这场股权争夺战涉及陕西省公安厅厅长批示、最高人民法院判决,并影响了2000多户购房人的居住问题。2025年5月27日,王坚与陕…

Linux入门

环境配置&#xff1a; linux安装 https://old-releases.ubuntu.com/releases/14.04.4/ubuntu-14.04-server-amd64.isohttps://www.releases.ubuntu.com/14.04/下载后vmware打开iso文件 配置linux开机设置ssh与samba xshell:使用ip链接linux &#xff1a;linux获取ip&#xff…

黄仁勋终于告别股价下跌魔咒!

黄仁勋终于告别股价下跌魔咒。在很长的一段时间里,英伟达财报一发,股价就跌。不是因为业绩不行,而是因为只是超预期还不够。市场一面期待英伟达不仅是超预期增长,还要远超预期。一面期待英伟达高歌猛进的同时,抚平外界对其高增长可持续性的种种疑虑。这次终于不同了。当地…

云渲染农场行业需求,如何搭建,有什么用途?

云渲染农场是以云计算技术为基础&#xff0c;向用户提供高性能算力以解决三维设计任务本地渲染慢的问题。云渲染农场通过集群管理软件管理数万台服务器&#xff0c;用户只需要将3D效果图和动画渲染任务通过客户端提交&#xff0c;云渲染农场就可以将任务分配至空闲的高配服务器…

Ant Design Pro简单模版的搭建步骤

1.在电脑创建一个文件夹 2.在创建的目录下打开cmd 3.输入npm i ant-design/pro-cli -g来安装脚手架 npm i ant-design/pro-cli -g 4.输入pro create 项目名 选择simple 5. 下载完成以后进到目录中 cd reactAdmin 6. 安装依赖 yarn install 7. 安装完以后&#xff0c;启动…

美国联邦法官叫停禁止哈佛大学招收国际学生政策

美国马萨诸塞州联邦地区法院一名法官当地时间5月29日批准了哈佛大学对法院提出的发布初步禁令请求,“叫停”特朗普政府取消哈佛大学招收外国学生资质的政策。该法院法官艾莉森伯勒斯当天就该案举行听证会。法院网站最新信息显示,此前发布的临时限制令将继续有效,待各方协商并…