主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

MATLAB 代码链接到需求

您可以通过使用需求编辑器或在 MATLAB® 命令行中以编程方式,将需求链接到 MATLAB 代码和纯文本外部代码(如 C 代码)。您还可以在 MATLAB Function (Simulink) 模块中创建指向 MATLAB 代码的链接。您可以在 MATLAB 编辑器或需求编辑器中查看、编辑和删除代码链接。

创建指向 MATLAB 代码或纯文本外部代码的链接

您可以通过编程方式或使用需求编辑器创建指向 MATLAB 代码或纯文本外部代码的链接。

当您创建指向代码的链接时,Requirements Toolbox™ 会创建与所选行相对应的 slreq.TextRange 对象。这些 slreq.TextRange 对象被称为行范围

要以编程方式创建链接,请创建 slreq.TextRange 对象,然后在创建链接时使用该对象作为链接源。在同一个 MATLAB 代码文件或纯文本外部代码文件中创建多个 slreq.TextRange 对象时,slreq.TextRange 对象的行号不能重叠。

使用需求编辑器创建链接

要使用需求编辑器创建基于选择的代码链接:

  1. 在 MATLAB 编辑器中,打开 MATLAB 代码文件或纯文本外部代码文件。

    注意

    您无法在 MLX 文件中创建指向 MATLAB 代码的链接。

  2. 选择您要链接的代码行。

  3. 需求编辑器中,加载您想要链接的需求集。

  4. 选择要链接的需求。

  5. 链接部分中,依次点击添加链接 > 从 MATLAB 编辑器中所选内容链接

    或者,在 MATLAB 编辑器中,右键点击选定的代码范围并选择 需求 > 链接到需求浏览器中的所选内容

以编程方式创建链接

假设您想以编程方式创建指向名为 myAdd 的 MATLAB 函数的链接。

function y = myAdd(u,v)
y = u + v;
end
您想将该函数与以下需求联系起来:

Requirements for the myAdd function, including requirements for the inputs, outputs, and function behavior.

要在 MATLAB 命令行创建链接:

  1. 使用 slreq.createTextRange 创建一个 slreq.TextRange 对象,代表您想要链接到的代码行。

    lr = slreq.createTextRange("myAdd.m",2);

  2. 使用 slreq.findfindslreq.getCurrentObject 来获取您想要链接的需求的句柄。

    req = slreq.find(Type="Requirement",Summary="Add u and v");

  3. 使用 slreq.createLink 创建链接。

    myLink = slreq.createLink(lr,req);

创建指向 MATLAB Function 模块的链接

使用 MATLAB Function 模块编辑器 (Simulink)创建指向 MATLAB Function 模块中的代码行的链接:

  1. 需求编辑器中,加载您想要链接到的需求集。

  2. 选择要链接的需求。

  3. 在 Simulink® 模型中,打开 MATLAB Function 模块。

  4. 选择您要链接的代码行。

  5. 右键点击选定的代码范围并选择 需求 > 链接到需求浏览器中的所选内容

注意

链接到 MATLAB Function 模块内的 MATLAB 代码行的需求会出现在 HTML 需求可追溯性报告中,但不会出现在 Simulink Report Generator™ Web 视图中。请参阅创建和使用模型的 Web 视图 (Simulink Report Generator)

创建外部文档中需求的链接

要创建从 MATLAB 代码到外部文档中的需求的链接:

  1. 在以下外部文档之一中选择一个需求:

    • Microsoft® Word

    • Microsoft Excel®

    • IBM® DOORS®

    • IBM DOORS Next

  2. 在 MATLAB 编辑器中,打开 MATLAB 代码文件或纯文本外部代码文件。

    注意

    您无法在 MLX 文件中创建指向 MATLAB 代码的链接。

  3. 选择您要链接的代码行。

  4. 右键点击选定的代码范围并选择需求。根据需求文档的类型,选择以下选项之一:

    • 链接到 Word 中的所选内容

    • 链接到 Excel 中的所选内容

    • 链接到 DOORS 中的所选内容

    • 链接到 DOORS Next 中的所选项

  5. 保存更改。有关详细信息,请参阅 保存链接

有关如何配置 Requirements Toolbox 以与这些第三方产品配合使用的详细信息,请参阅 配置 Requirements Toolbox 以便与 Microsoft Office 和 IBM DOORS 交互配置 IBM DOORS 以便与 Requirements Toolbox 集成.

查看和编辑链接及行范围

要在 MATLAB 编辑器中查看当前文件的链接和行范围,请在编辑器中右键点击并选择需求 > 打开需求可追溯性面板 (自 R2025a 起)来打开需求可追溯性。当前文件中的行范围具有行范围图标 ,而链接目标具有链接目标图标

This image shows the Requirements Traceability panel. The panel contains 3 line ranges and 4 links.

您还可以通过启用需求高亮显示功能,在 MATLAB 编辑器中查看关联的代码范围。在编辑器中右键点击,然后选择 Requirements > 启用需求突出显示

要编辑链接,请使用需求编辑器。有关详细信息,请参阅查看和编辑链接

MATLAB 编辑器中编辑行范围

要在 MATLAB 编辑器中编辑某一段落的行号:

  1. 打开需求可追溯性面板,并选择带有线段范围图标的 项。编辑器选择行范围内的代码 (自 R2025a 起)

  2. 在编辑器中点击要取消选择的代码行范围。然后,在行范围内右键点击,并选择 Requirements > Adjust line range。“调整范围”对话框打开。

  3. 在调整范围对话框中,使用+-按钮更改行范围的第一行和最后一行。或者,在字段中输入行号。

    Adjust range dialog box showing lines 1 and 2 as the first and last lines for the line range.

  4. 点击确定

  5. 保存更改。有关详细信息,请参阅 保存链接

除了使用需求可追溯性面板来识别行范围外,您还可以通过在编辑器中右键点击并选择 Requirements > 启用需求突出显示 来高亮显示关联的行范围.

程序化编辑行范围

要在 MATLAB 命令行编辑 slreq.TextRange 对象的行:

  1. 在 MATLAB 编辑器中打开 MATLAB 代码文件或纯文本外部代码文件。

    open("myAdd.m");

  2. 通过将文件名以及行范围的开始和结束的行号传递给 slreq.getTextRange 函数来获取 MATLAB 代码文件中现有的 slreq.TextRange 对象。

    lr = slreq.getTextRange("myAdd.m",[1 2]);

  3. 使用 setLineRange 方法修改行范围。

    setLineRange(lr,1);

  4. 保存更改。

    myLinkSet = slreq.find(Type="LinkSet",Artifact=lr.Artifact);
    save(myLinkSet);

MATLAB 编辑器更新了代码范围突出显示。或者,您可以使用 showgetTextgetLineRange 确认更改。

删除链接和未使用的行范围

您可以在 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

另请参阅

App

函数

主题