将 MATLAB 代码链接到需求
您可以通过使用需求编辑器或在 MATLAB® 命令行中以编程方式,将需求链接到 MATLAB 代码和纯文本外部代码(如 C 代码)。您还可以在 MATLAB Function (Simulink) 模块中创建指向 MATLAB 代码的链接。您可以在 MATLAB 编辑器或需求编辑器中查看、编辑和删除代码链接。
创建指向 MATLAB 代码或纯文本外部代码的链接
您可以通过编程方式或使用需求编辑器创建指向 MATLAB 代码或纯文本外部代码的链接。
当您创建指向代码的链接时,Requirements Toolbox™ 会创建与所选行相对应的 slreq.TextRange
对象。这些 slreq.TextRange
对象被称为行范围。
要以编程方式创建链接,请创建 slreq.TextRange
对象,然后在创建链接时使用该对象作为链接源。在同一个 MATLAB 代码文件或纯文本外部代码文件中创建多个 slreq.TextRange
对象时,slreq.TextRange
对象的行号不能重叠。
使用需求编辑器创建链接
要使用需求编辑器创建基于选择的代码链接:
在 MATLAB 编辑器中,打开 MATLAB 代码文件或纯文本外部代码文件。
注意
您无法在 MLX 文件中创建指向 MATLAB 代码的链接。
选择您要链接的代码行。
在需求编辑器中,加载您想要链接的需求集。
选择要链接的需求。
在链接部分中,依次点击添加链接 > 从 MATLAB 编辑器中所选内容链接。
或者,在 MATLAB 编辑器中,右键点击选定的代码范围并选择 需求 > 链接到需求浏览器中的所选内容。
以编程方式创建链接
假设您想以编程方式创建指向名为 myAdd
的 MATLAB 函数的链接。
function y = myAdd(u,v) y = u + v; end
要在 MATLAB 命令行创建链接:
使用
slreq.createTextRange
创建一个slreq.TextRange
对象,代表您想要链接到的代码行。lr = slreq.createTextRange("myAdd.m",2);
使用
slreq.find
、find
或slreq.getCurrentObject
来获取您想要链接的需求的句柄。req = slreq.find(Type="Requirement",Summary="Add u and v");
使用
slreq.createLink
创建链接。myLink = slreq.createLink(lr,req);
创建指向 MATLAB Function 模块的链接
使用 MATLAB Function 模块编辑器 (Simulink)创建指向 MATLAB Function 模块中的代码行的链接:
在需求编辑器中,加载您想要链接到的需求集。
选择要链接的需求。
在 Simulink® 模型中,打开 MATLAB Function 模块。
选择您要链接的代码行。
右键点击选定的代码范围并选择 需求 > 链接到需求浏览器中的所选内容。
注意
链接到 MATLAB Function 模块内的 MATLAB 代码行的需求会出现在 HTML 需求可追溯性报告中,但不会出现在 Simulink Report Generator™ Web 视图中。请参阅创建和使用模型的 Web 视图 (Simulink Report Generator)。
创建外部文档中需求的链接
要创建从 MATLAB 代码到外部文档中的需求的链接:
在以下外部文档之一中选择一个需求:
Microsoft® Word
Microsoft Excel®
IBM® DOORS®
IBM DOORS Next
在 MATLAB 编辑器中,打开 MATLAB 代码文件或纯文本外部代码文件。
注意
您无法在 MLX 文件中创建指向 MATLAB 代码的链接。
选择您要链接的代码行。
右键点击选定的代码范围并选择需求。根据需求文档的类型,选择以下选项之一:
链接到 Word 中的所选内容
链接到 Excel 中的所选内容
链接到 DOORS 中的所选内容
链接到 DOORS Next 中的所选项
保存更改。有关详细信息,请参阅 保存链接。
有关如何配置 Requirements Toolbox 以与这些第三方产品配合使用的详细信息,请参阅 配置 Requirements Toolbox 以便与 Microsoft Office 和 IBM DOORS 交互 和 配置 IBM DOORS 以便与 Requirements Toolbox 集成.
查看和编辑链接及行范围
要在 MATLAB 编辑器中查看当前文件的链接和行范围,请在编辑器中右键点击并选择需求 > 打开需求可追溯性面板 (自 R2025a 起)来打开需求可追溯性。当前文件中的行范围具有行范围图标 ,而链接目标具有链接目标图标
。
您还可以通过启用需求高亮显示功能,在 MATLAB 编辑器中查看关联的代码范围。在编辑器中右键点击,然后选择 Requirements > 启用需求突出显示。
要编辑链接,请使用需求编辑器。有关详细信息,请参阅查看和编辑链接。
在 MATLAB 编辑器中编辑行范围
要在 MATLAB 编辑器中编辑某一段落的行号:
除了使用需求可追溯性面板来识别行范围外,您还可以通过在编辑器中右键点击并选择 Requirements > 启用需求突出显示 来高亮显示关联的行范围.
程序化编辑行范围
要在 MATLAB 命令行编辑 slreq.TextRange
对象的行:
在 MATLAB 编辑器中打开 MATLAB 代码文件或纯文本外部代码文件。
open("myAdd.m");
通过将文件名以及行范围的开始和结束的行号传递给
slreq.getTextRange
函数来获取 MATLAB 代码文件中现有的slreq.TextRange
对象。lr = slreq.getTextRange("myAdd.m",[1 2]);
使用
setLineRange
方法修改行范围。setLineRange(lr,1);
保存更改。
myLinkSet = slreq.find(Type="LinkSet",Artifact=lr.Artifact); save(myLinkSet);
MATLAB 编辑器更新了代码范围突出显示。或者,您可以使用 show
、getText
或 getLineRange
确认更改。
删除链接和未使用的行范围
您可以在 MATLAB 编辑器、需求编辑器、需求可追溯性面板或 MATLAB 命令行中删除指向 MATLAB 代码的链接。
如果您在 MATLAB 编辑器中删除代码范围的链接,您可以删除编辑器中、需求可追溯性面板中或 MATLAB 命令行中的未使用行范围。
删除链接
要删除已加载链接集中单个链接,请使用需求编辑器。有关详细信息,请参阅 删除链接和链接集。
要在 MATLAB 编辑器中删除当前文件中的单个链接,请使用需求可追溯性面板。有关详细信息,请参阅 删除链接。
要在 MATLAB 编辑器中删除某一行范围的所有入站和出站链接,请右键点击高亮显示的代码范围,然后选择 Requirements > 删除所有链接。
要程序化地删除链接,请获取一个 slreq.Link
对象的句柄,并使用 remove
函数。或者,打开一个包含入站或出站链接的文件,并在 MATLAB 编辑器中打开它。然后,使用 slreq.getTextRange
函数获取一个 slreq.TextRange
对象的句柄。使用 deleteLinks
函数删除目标的链接。
删除行范围
要在 MATLAB 编辑器中删除当前文件中的行范围,请使用需求可追溯性面板。有关详细信息,请参阅 删除链接。
要程序化地删除行范围,请在 MATLAB 编辑器中打开包含入站或出站链接的文件。然后,使用 slreq.getTextRange
函数获取一个 slreq.TextRange
对象。使用 remove
函数删除代码范围。
修复链接
如果您删除了包含外链的行范围,或者软件无法在 MATLAB 代码文件或纯文本文件中定位到行范围,则该行范围的链接将无法解析。您可以修复未解决的链接,或者如果它们不再需要,可以删除它们。有关详细信息,请参阅解析链接。
要查看未解析的链接,请在需求编辑器中点击显示链接。未解析的链接显示未解析的链接图标 。
要查看孤链(即来源无效的链接),请使用需求可追溯性面板。面板以红色文字显示孤链。
保存链接
要保存创建、编辑、删除或修复链接或线段范围时对链接集所做的更改,请使用以下方法之一:
在 MATLAB 编辑器中,右键点击并选择 需求 > 保存链接。
在需求编辑器中,点击显示链接。选择链接集,然后点击保存。
在 MATLAB 命令行中,使用
save
。