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 Next 会话。
查看和编辑链接和链接行范围
您可以通过启用需求突出显示在 MATLAB 编辑器中查看链接的代码范围。在 MATLAB 编辑器中点击鼠标右键,然后选择 需求 > 启用需求突出显示。
要编辑链接,请使用需求编辑器。有关更多信息,请参阅 查看和编辑链接。
您还可以在 MATLAB 编辑器或 MATLAB 命令行中编辑链接行范围的起始行和结束行。
在 MATLAB 编辑器中编辑链接行范围
要在 MATLAB 编辑器中编辑链接行范围的行号:
右键点击突出显示的行范围并选择 需求 > 调整行范围。
在调整范围对话框中,使用+和-按钮更改行范围的第一行和最后一行。或者,在字段中输入行号。
点击确定。MATLAB 编辑器更新了突出显示。
通过编程编辑链接行范围
要在 MATLAB 命令行编辑 slreq.TextRange
对象的行:
在 MATLAB 编辑器中打开 MATLAB 代码文件或纯文本外部代码文件。
open("myAdd.m");
通过将文件名以及行范围的开始和结束的行号传递给
slreq.getTextRange
函数来获取 MATLAB 代码文件中现有的slreq.TextRange
对象。lr = slreq.getTextRange("myAdd.m",[1 2]);
使用
setLineRange
修改行范围。setLineRange(lr,1);
MATLAB 编辑器更新了代码范围突出显示。或者,您可以使用
show
、getText
或getLineRange
确认更改。
保存链接
要在创建或编辑指向 MATLAB 代码行或外部代码的链接时保存对链接集的更改,请使用以下方法之一:
在 MATLAB 编辑器中,右键点击并选择 需求 > 保存链接。
在需求编辑器中,点击显示链接。选择链接集,然后点击“保存”。
在 MATLAB 命令行中,使用
save
。
删除链接和未使用的行范围
您可以在 MATLAB 编辑器、需求编辑器或 MATLAB 命令行中删除指向 MATLAB 代码的链接。
如果您删除了 MATLAB 编辑器中代码范围的链接,则可以删除 MATLAB 编辑器或 MATLAB 命令行中未使用的行范围。
删除链接
要删除 MATLAB 编辑器中的链接,请右键点击突出显示的代码范围并选择 需求 > 删除所有链接。这将删除指向该代码范围的所有传入和出向链接。
要从需求编辑器中删除链接,请参阅 删除链接和链接集。
要在 MATLAB 命令行删除链接,请获取 slreq.Link
对象的句柄并使用 remove
。或者,确保包含代码范围的文件在 MATLAB 编辑器中打开,然后使用 slreq.getTextRange
获取 slreq.TextRange
对象。使用 deleteLinks
删除指向该对象的链接。
删除未使用的行范围
要删除 MATLAB 编辑器中未使用的行范围,请右键点击包含该行范围的行,然后选择 需求 > 删除行范围。
注意
如果某一行范围没有出向链接,则 MATLAB 编辑器不会突出显示该代码行。删除链接之前请注意行号,以便删除未使用的行范围。或者,您可以使用 MATLAB 命令行获取文件中的行范围,然后删除未使用的行范围。
要在命令行中删除行范围,请确保包含代码范围的文件在 MATLAB 编辑器中打开,然后使用 slreq.getTextRange
获取 slreq.TextRange
对象。使用 remove
删除代码范围。
修复链接
如果对 MATLAB 代码或纯文本文件的修改导致行范围被删除或无法找到范围,则行范围的链接可能无法解析。要查看未解析的链接,请在需求编辑器中点击显示链接。未解析的链接显示未解析的链接图标 。如果不再需要未解析的链接,您可以删除它们,或者使用 setSource
方法修复链接。有关未解析的链接以及如何修复链接的更多信息,请参阅 解析链接。
另请参阅
slreq.TextRange
| slreq.createTextRange
| slreq.getTextRange