Main Content

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

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 视图中。请参阅Create and Use Web Views of Models (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 中的所选项目

有关配置 Requirements Toolbox 以与这些第三方产品一起使用的更多信息,请参阅 配置 Requirements Toolbox 以与 Microsoft Office 和 IBM DOORS 进行交互配置 IBM DOORS Next 会话

查看和编辑链接和链接行范围

您可以通过启用需求突出显示在 MATLAB 编辑器中查看链接的代码范围。在 MATLAB 编辑器中点击鼠标右键,然后选择 需求 > 启用需求突出显示

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

您还可以在 MATLAB 编辑器或 MATLAB 命令行中编辑链接行范围的起始行和结束行。

MATLAB 编辑器中编辑链接行范围

要在 MATLAB 编辑器中编辑链接行范围的行号:

  1. 右键点击突出显示的行范围并选择 需求 > 调整行范围

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

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

  3. 点击确定。MATLAB 编辑器更新了突出显示。

通过编程编辑链接行范围

要在 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. MATLAB 编辑器更新了代码范围突出显示。或者,您可以使用 showgetTextgetLineRange 确认更改。

保存链接

要在创建或编辑指向 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 方法修复链接。有关未解析的链接以及如何修复链接的更多信息,请参阅 解析链接

另请参阅

| |

相关主题