【研发日记】Matlab/Simulink开箱报告(十一)——Requirements Toolbox

目录

前言

[Requirements Toolbox](#Requirements Toolbox)

编写需求

需求联接设计

需求跟踪开发进度

追溯性矩阵

分析和应用

总结


前言

见《开箱报告,Simulink Toolbox库模块使用指南(六)------S-Fuction模块(TLC)

见《开箱报告,Simulink Toolbox库模块使用指南(七)------S-Fuction Builder模块

见《研发日记,MatlabSimulink开箱报告(八)------Lookup Table模块

见《研发日记,MatlabSimulink开箱报告(九)------Simulink Test模块

见《【研发日记】Matlab/Simulink开箱报告(十)------Signal Routing模块

Requirements Toolbox

Requirements Toolbox是Matlab中用来编写、链接和追溯需求的一个工具,Mathworks官方Help对该部分内容的说明如下所示:

Requirements Toolbox在Matlab中的位置在App选项卡 -> 验证、确认和测试 -> 需求编辑器,示例如下:

本文选取Requirements Toolbox中几个有代表性的应用为例,详细介绍一下具体的用法。

编写需求

打开需求编辑器后,点击新建需求集创建一个新的需求集。将需求集命名为 ReqrDemo,然后将需求集保存在 ReqrDemoProj工程的文件夹中。示例如下:

选择需求集并点击"添加需求",以向需求集添加需求。在右窗格中,使用需求中的文本向摘要属性和描述属性添加信息。摘要属性是用于标识需求的简短短语。描述属性包含有关所需行为的详细信息。点击保存来保存对需求集的更改。示例如下:

Tip1:除了上述手动编辑需求的方式之外,还可以使用其他文档直接导入需求,例如Microsoft的Word和Excel,IBM的Doors Next等;

Tip2:需求变更时,在需求编辑器里边自动会有红色高亮底纹提示,通过链接快速跳转过去,就能很方便地修改对应的代码;

需求联接设计

在Requirements Toolbox中可以创建需求与设计之间的链接,以此来建立项目开发的可追溯性。本文我们建立的完整需求和整体设计示例如下:

Matlab 复制代码
function y = fen(u,v)

inputs = [u,v];
if min(isfinite(inputs)) == 0
	error("inputs error!");
else
	y = u+ V;
end

if y<0
	y=0;
elseif y > 10
	y= 10;
end

本文中建需求与设计之间建立链接的过程是1、在需求编辑器中,选中第一条需求"输入端口"。2、在MATLAB编辑器中,选择fcn函数的函数定义行。3、右键链接到需求编辑器中的所选内容。4、链接成功后就可以在需求浏览器中查看到对应链接内容,可以用于快速跳转。示例如下:

Tip1:在MATLAB编辑器中,有需求链接的代码行会有黄色高亮底纹,右键也能跳转到对应的需求内容。

Tip2:项目开发迭代的时候,如果需求链接的代码发生了修改,那么在需求编辑器中点击刷新之后,对应的需求就会有红色高亮底纹,可以用于评审代码变更对需求的影响范围。

需求跟踪开发进度

基于需求的设计开发过程中,当一些设计开发出来之后,就可以用上面的方法与需求一一联接起来。在需求编辑器里会自动把这些统计起来,然后以进度条的形式呈现出来,这样就能一目了然地看到设计开发的进度,示例如下:

Tip1:需求的类型有功能性、信息性和容器三种类型,默认是功能性,会正常统计进开发进度中;

Tip2:需求的链接有实现、验证、细化、派生、涉及和确认证六种类型,默认是实现,会正常统计进开发进度中。

追溯性矩阵

需求联接到设计文件中的代码后,Requirements Toolbox会自动分析可追溯性,并以可视化的追溯性矩阵呈现出来,显示全部工件之间存在的链接关系,可以很方便地找到有缺失的地方,指导我们消除缺失。追溯性矩阵的用法示例如下:

Tips:确实的地方补充上链接之后,再回去查看开发进度,所有进度条就都拉满了。

分析和应用

Requirements Toolbox在Simulink模型开发中的作用非常强大,尤其是应用于模块化开发多人协作的大型项目时优势会更加明显,例如一些整车控制系统,车路协同系统等等的开发。项目中把这个工具箱用起来之后,可以自动跟踪开发进度,分析追溯性,指导工程师评审上下游影响范围,消除设计缺失,大大提高设计一致性、完整性和正确性,提高工程师的工作效率。主要适用于配备模块化开发团队的软件项目,可以使团队成员真正地有机结合在一起,提高需求和设计的可控性,减少软件Bug。

总结

以上就是本人在使用Simulink Test时,一些个人理解和分析的总结,首先介绍了Simulink Test的基本知识,然后展示它的使用方法,最后分析了该模块的特点和适用场景。

后续还会分享另外几个最近总结的Simulink Toolbox库模块,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成文本人持续分享的动力。

另外,上述例程使用的Demo工程,可以到笔者的主页查找和下载。


版权声明:原创文章,转载和引用请注明出处和链接,侵权必究!

相关推荐
PM老周14 小时前
支持AI功能的研发管理软件有哪些?从需求拆解到AI执行的横向对比
项目管理·ai开发·研发管理系统·ai智能研发
Daorigin_com14 小时前
从“出海合规”到“全域合规”:道本科技用数字底座重构企业合规的逻辑
软件工程·团队开发·软件构建·需求分析·个人开发·设计规范·结对编程
盖伦发发16 小时前
代码实现前流程深度梳理-需求拆解, 架构与设计
软件工程
盖伦发发18 小时前
MySQL InnoDB事务完整教程|ACID、MVCC、隔离级别、事务控制
经验分享·后端·spring·软件工程
项目管理实用笔记21 小时前
不同规模的团队从Jira迁移到国产平台怎么选?
项目管理·数据迁移·国产化替代·国产项目管理软件·项目管理软件选型
RuoyiOffice1 天前
SpringBoot3+Vue3 项目立项到甘特:审批冻结台账、任务树怎么汇进度
spring boot·项目管理·vue3·甘特图·wbs·spring boot 3·立项审批
西瓜太郎12341 天前
外层模型卡片与分组详情成功率不一致,应该怎么排查?
前端·typescript·go·软件工程·react
郝学胜-神的一滴2 天前
C++11 工程级应用 12:编译期类型魔法,干掉重复与臃肿的代码
开发语言·数据结构·c++·软件工程·visual studio
楚国的小隐士2 天前
在生产环境中和AI协作编程
ai·大模型·编程·软件工程·ai编程·软件架构
小智老师PMP3 天前
2026PMP第八版新纲深度解读|从流程管控到价值交付,核心考点全迭代
人工智能·职场和发展·软件工程·制造·敏捷流程