Main Content

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

管理容错燃料控制系统的需求 (IBM DOORS)

需求管理接口 (RMI) 提供了用于创建和审查 Simulink® 对象和需求文档之间的链接的工具。此示例说明如何将模型对象链接到 IBM® DOORS® 中存储的需求。有关使用 RMI 的更多信息,请参阅 管理容错燃料控制系统的需求 (Microsoft Office)

为 DOORS 设置 RMI

确保您的 DOORS 安装已配置为与 RMI 进行通信。以管理员身份运行 MATLAB®并执行rmi('setup')。如果检测到 DOORS 客户端安装,RMI 将提示安装所需的 API 文件。重新安装 DOORS 或 MATLAB 后,您只需执行一次此操作。有关更多信息,请参阅 配置 Requirements Toolbox 以与 Microsoft Office 和 IBM DOORS 进行交互

本例中使用的 Simulink 模型和 DOORS 模块

为了本示例的目的,包含了一个名为slvnvdemo_fuelsys_doorsreq.slx的容错燃料控制系统的示例模型。使用它来完成下面介绍的练习。

手动或通过评估以下代码打开 Simulink 模型。

open_system('slvnvdemo_fuelsys_doorsreq');

您可以使用任何临时的 DOORS 模块进行下面基本的链接创建练习,并且可以使用包含的 DemoRMI.dpa 档案进行更高级的替代模块同步练习。

设置需求管理器以使用链接

  1. App 选项卡中,打开需求管理器

  2. 需求选项卡中,确保选择了布局 > 需求浏览器

  3. 需求浏览器查看下拉菜单中,选择 Links

在此示例中,您将专门在需求选项卡中工作,并且对工具条按钮的任何引用都在此选项卡中。

通过出向链接对话框进行链接

您可以将模型对象链接到存储在 DOORS 数据库 (DOORS 对象) 中的需求。创建链接时不需要修改 DOORS 文档。创建新链接最实际的方式是通过“出向链接”对话框。这需要手动填写链接属性字段。请参阅下一节以了解更简单的自动化方法。

  • 导航到 Metered Fuel Scope模块。

rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/Metered Fuel');
  • 右键点击该模块并从上下文菜单中选择需求>打开出向链接对话框...。将打开“出向链接”对话框。

  • 点击新建来创建新需求。

  • 文档类型设置为 IBM DOORS

doors_add.png

  • 文档输入字段中指定唯一的目标模块 ID,或使用浏览按钮在 DOORS 数据库中选择目标模块。

  • 位置标识符字段中输入目标对象 ID,或使用文档索引选项卡在所选模块中选择目标对象。

  • 点击应用确定来存储新的需求链接。

  • 再次右键点击相同的 Simulink模块以查看上下文菜单顶部列出的新链接标签。

通过上下文菜单快捷方式链接

建立新链接的更简单方法是通过选择链接快捷方式。右键点击一个模块并选择需求> 链接到 DOORS 中的选择

doors_selection.png

通过上下文菜单快捷方式创建链接不需要任何手动输入。链接目标目的地由 DOORS 中的当前选择决定,并且描述字段设置为相应的对象标题,如果没有标题,则设置为 DOORS 对象文本。由于 Description 用于上下文菜单中的导航快捷方式,因此有字符数限制。

RMI 支持与 DOORS 中的需求双向链接,但您将从单向链接开始。通过点击链接设置 > 链接选项并取消选中创建基于选择的链接时下的修改双向链接的目标,禁用模型需求选项卡中的双向链接。

settings_2way_off.png

或者,您可以评估以下代码。

rmipref('BiDirectionalLinking', false);

稍后我们将介绍双向链接。现在尝试一下:

  • 在 DOORS 中的测试模块中选择任意对象。

  • 导航到 throttle sensor 模块。

rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/throttle sensor');
  • 右键点击该模块并在上下文菜单中选择需求 > 链接到 DOORS 中的选择以创建链接。

  • 再次右键点击 throttle sensor模块并找到需求上下文菜单顶部的链接标签,以确认已添加链接。您可以稍后使用“出向链接”对话框来调整描述标签或用户标签关键字。

通过出向链接对话框链接当前选择

出向链接对话框中的使用当前按钮提供了一种组合方法:

  • 右键点击模型中的模块,然后从上下文菜单中选择需求>打开出向链接对话框...

  • 新建按钮添加另一个链接项。

  • 文档类型下拉框中选择 DOORS Item

  • 在 DOORS 模块窗口中,点击想要链接的对象。

  • 点击使用当前按钮可使用当前选定的 DOORS 对象的数据自动填充所有输入字段。

  • 根据需要调整描述

  • 点击确定应用保存更改。

您还可以使用使用当前按钮重定向现有链接:

  • 在 DOORS 中选择所需的新目标对象。

  • 在“出向链接”对话框中,点击要更新的列表项。

  • 点击使用当前按钮更新链接属性。

doors_add_button.png

查看和导航从 Simulink 到 DOORS 的链接

您可以像浏览其他类型的链接一样突出显示和浏览 DOORS 链接。

  • 需求选项卡中,点击突出显示链接以突出显示示例模型中的所有需求。您还可以评估以下内容来突出显示链接。

rmi('highlightModel', 'slvnvdemo_fuelsys_doorsreq');
  • 确保 DOORS 正在运行并已登录。

  • 右键点击上一节中用于创建新链接的突出显示的对象之一。

  • 从上下文菜单中选择需求。您创建的链接的标签应该在顶部可见。

  • 点击链接标签。您的测试模块在 DOORS 中打开并选择了正确的对象。

请注意,仅使用您创建的链接尝试此操作。模型中还有其他链接暂时还无法发挥作用。我们将在下面的部分中介绍如何修复这些链接。

关于替代模块和同步

DOORS 支持替代模块工作流,允许双向链接,而无需修改 DOORS 需求模块。下图说明了工作流程。

Simulink 自动生成一个新的正式 DOORS 模块,称为替代模块,用作 Simulink 模型的 DOORS 表示。您可以选择映射模型中的所有对象,或者仅映射与 DOORS 有链接的对象,或者选择文档中讨论的中间选项之一。

您可以创建到 DOORS 中的需求的直接链接,如前面部分所示(图中标记为 3),以及从 DOORS 文档到 Simulink 对象的可选匹配直接链接,如本示例的最后一部分所示(图中标记为 2)。

此外,利用 DOORS 中的替代模块,您可以在 DOORS 中建立替代模块中的项目与 DOORS 中存储的需求之间的链接(在图中标记为 1),而往返 Simulink 的导航则由替代项目链接提供(在图中标记为 4)。

替代模块工作流程具有以下优点:

  • 无需修改 DOORS 中的文档或 Simulink 中的模型即可实现双向链接。所有必需的信息都存储在替代模块和相应的链接模块中。

  • 您无需运行 Simulink 即可管理和分析 DOORS 环境中的链接,包括使用 DOORS 的本机报告功能。

下面是自动生成的替代模块的示例截图。请注意,DOORS 层次结构反映了原始 Simulink 模型的结构体,并且 DOORS 对象标头与 Simulink 对象名称相匹配:

doors_surrogate.png

将您的 Simulink 模型与 DOORS 数据库同步

通常情况下,您可以导航到 Simulink 模型中的 Requirements 选项卡,然后使用 Share > Synchronize with DOORS 为您的 Simulink 模型创建一个新的 DOORS 替代模块。

出于本例的目的,提供了一个现有的 DOORS 工程作为档案,其中包括带有指向其他模块的链接的替代模块。要尝试此示例的交互功能,请将工程恢复到您的 DOORS 数据库中,然后按照下面的说明重新同步示例模型。请注意,此档案是在 DOORS 9.1 版中创建的,可能无法与早期版本的 DOORS 一起使用。

  • 使用 DOORS 中的 File > Restore 功能并将其指向当前工作目录中提供的 DemoRMI.dpa 档案。如果您的 DOORS 数据库中已有一个名为 DemoRMI 的工程,DOORS 会在工程名称后附加一个数字。如下面的截图所示,该工程包括一个链接模块和三个正式模块。一个正式模块是 slvnvdemo_fuelsys_doorsreq模型的 DOORS 替代;另外两个是通过从 管理容错燃料控制系统的需求 (Microsoft Office) 导入 Microsoft® Word 文档生成的示例模块。

doors_restore.png

  • 提取所有包含的模块并打开替代模块。

  • 请注意两个提取模块中的红色和橙色链接导航三角形。右键点击即可在模块之间导航。这些链接通过备份恢复过程得到保留。

doors_restored.png

尝试从提取的替代模块导航到 DOORS 中的 Simulink 中的相应对象:

  • 点击 slvnvdemo_fuelsys_doorsreq替代模块中的 1.11.4.1 燃料率

  • 在模块窗口主菜单中,点击 MATLAB > 选择项目。打开正确的子系统图并突出显示相应的输入。

从 Simulink 对象到替代模块的导航已中断,因为提取的模块在您的 DOORS 数据库中具有新的数字 ID,尝试在任何对象上导航 DOORS Surrogate Item 链接都会产生错误。要在成功恢复 DemoRMI 工程后修复 slvnvdemo_fuelsys_doorsreq model 中所有对象上的 DOORS Surrogate Item 链接,请将 Simulink模型与恢复的替代实例重新同步。

  • 在模型窗口中,选择需求选项卡,然后点击共享 > 与 DOORS 同步以打开同步设置对话框。

doors_synchronize.png

  • 根据恢复工程的位置,在 DOORS 替代模块路径和名称输入字段中使用正确的 DOORS 路径输入以下设置,或者简单地使其成为 DOORS 中的当前工程并使用“./”表示法:输入“./slvnvdemo_fuelsys_doorsreq”。

doors_dialog.png

  • 不要启用底部的保存 Simulink模型复选框,除非您使用可写副本,否则您将无法保存对示例模型的更改。

  • Simulink 可能会警告您有关之前的同步路径。点击继续以继续新的路径。您可能会在命令窗口中收到以下消息:“替代模块不需要更新”。您恢复的替代模块是正确的。

  • 通过右键点击 Simulink 模块并选择 Requirements > 1,重试从模型中的任意对象导航到替代模块中相应的 DOORS 对象。上下文菜单上的“DOORS替代项”。现在应该会突出显示替代模块中相应的 DOORS 项目。

使用模型顾问进行 RMI 一致性检查

示例模型附带一些指向 DOORS 文档、FuelSys 设计描述模块的预先存在的链接。与原始 DOORS Surrogate Item 链接类似,这些链接已损坏,因为模块的恢复副本在您的本地数据库中有一个新的 ID。例如,右键点击模型中的 Airflow calculation 子系统,然后从需求上下文菜单中选择“1.2.1 质量气流估计”。这将产生一个错误消息。执行以下代码以导航到Airflow calculation模块。

rmidemo_callback('locate',['slvnvdemo_fuelsys_doorsreq/fuel rate controller/' ...
    'Airflow calculation']);

我们现在将使用 Model Advisor 中的 RMI一致性检查来修复这些链接。

  • Requirements 选项卡中的 Simulink 模型窗口中,点击 Check Consistency 以调出 Model Advisor 图形界面。

  • 找到需求一致性检查下的识别缺少文档的需求链接项并用鼠标选择它。

  • 点击右侧面板左上角的运行此检查按钮。列出了具有断开链接的模块。您可以逐个修复列出的不一致问题,或者在模型顾问窗格中使用底部的修复全部链接。我们将使用修复全部快捷方式,因为我们知道所有断开的链接都需要重定向到原始模块的相同恢复副本。

advisor_fix_docs.png

  • Model Advisor 窗格中,点击底部的 Fix All 链接 - 出现 DOORS 数据库浏览器。

doors_browse.png

  • 在数据库中找到已恢复的 FuelSys 设计描述模块并用鼠标选择它。

  • 点击确定关闭 DOORS 数据库浏览器。

  • 再次点击运行此检查。现在检查应该可以通过了。

  • 重新尝试导航:右键点击模型中的 Airflow calculation 子系统,然后从上下文菜单中选择需求 > “1.2.1 质量气流估计”。现在,这将突出显示您从包含的档案中恢复的 DOORS 模块之一中的正确对象。

将链接信息从 Simulink 复制到 DOORS

现在从 Simulink 到 DOORS 的直接链接是正确的,您可以使用同步将链接信息复制到 DOORS 数据库中。链接将在 DOORS 工程中复制,您可以在其中使用原生 DOORS 导航、分析和报告工具。替代和其他 DOORS 模块之间的这些链接甚至可以与模型的新副本一起重复使用。

  • 重新打开共享 >与 DOORS 同步对话框并配置以下设置。确保禁用删除 DOORS 中的不匹配项复选框,因为恢复的工程中存在您稍后需要的不匹配的链接。

doors_dialog_sl_to_doors.png

  • 点击底部的同步按钮。

  • 等待几秒钟,检查 DOORS 中的替代模块。它现在应该显示更多链接 - 一些存在于原始恢复的工程中(链接到 FuelSys 需求规范模块),一些刚从 Simulink 复制(链接到 FuelSys 设计描述模块)。

  • 找到 Airflow calculation 子系统。

rmidemo_callback('locate',['slvnvdemo_fuelsys_doorsreq/fuel rate controller/' ...
    'Airflow calculation']);
  • 使用需求> 1 导航到相应的替代对象。此模块的上下文菜单上的“ DOORS替代项”

  • 新的红色三角形显示 DOORS 中 1.12.5 气流计算项的出向链接。右键点击以导航此 DOORS 链接 - 这将带您进入 FuelSys 设计描述模块中的项目 1.2.1 空气流量估计

将链接信息从 DOORS 复制到 Simulink

通过替代模块进行同步提供了一种方便的方法,将 DOORS 中的系统需求更新传播到相应的 Simulink 实施元素。为了演示此工作流程,恢复的工程包含从替代模块到 FuelSys 需求规范 DOORS 模块的 DOORS 链接,而 Simulink 模型中不存在该链接。在 DOORS 中,导航回到“将您的 Simulink 模型与 DOORS 数据库同步”部分中恢复的模块。

  • FuelSys 需求规范模块开始,找到 2.1 普通操作模式

  • 使用 DOORS 链接导航至替代模块中的“1.11.3 燃料”项,方法是右键点击 DOORS 模块中的黄色链接,然后点击上下文菜单导航至 slvnvdemo_fuelsys_doorsreq DOORS 模块中的“1.11.3 燃料”项。

  • 在选择“1.11.3 燃料”的情况下,点击替代模块主菜单中的 MATLAB >选择项目,在 Simulink模型中定位相应的源对象。

  • 右键点击位于 Simulink 中的fuel输入元素,并在上下文菜单中选中需求。1.“ DOORS替代项” 是唯一可用的链接:没有指向文档的链接。

要将链接信息从 DOORS 复制到 Simulink,请在启用同步期间更新链接的情况下重新同步,并选择从 DOORS 到 Simulink

  • 重新打开共享 >与 DOORS 同步对话框。

  • 配置以下同步选项:

doors_dialog_doors_to_sl.png

现在可以启用删除 Simulink 中不匹配项复选框。经过前面的同步步骤后,Simulink 中没有不匹配的链接。

保持一些图打开并突出显示,以便在 Simulink 中添加新链接时直观地看到变化。

  • 点击同步。替代模块窗口可能会出现在前面,但没有红色标记,因为 DOORS 中没有任何变化。

  • 导航回 Simulink 中的fuel输入,或评估以下内容。

rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/engine gas dynamics/fuel');
  • 右键点击并展开上下文菜单的需求可追溯性部分。请注意 DOORS Surrogate Item 链接下方的新链接:“->2.1 普通操作模式”。箭头前缀表示该需求不是在 Simulink 中创建的,而是从 DOORS 复制而来的。

  • 点击新链接导航至 DOORS 中的相应需求 - 2.1 普通操作模式部分在 FuelSys 需求规范模块中打开。

使用用户标签检查更改

现在您应用用户标签过滤器来确认对模型所做的更改。示例模型原始版本中存在的所有 DOORS 需求均被标记为“设计”。现在,您可以使用这个事实来有选择地突出显示或隐藏这些链接:

  • 导航回 fuel rate controller 子系统,在需求选项卡中,点击突出显示链接

rmidemo_callback('open_highlight','slvnvdemo_fuelsys_doorsreq/fuel rate controller');
  • 需求选项卡中,点击链接设置 > 链接选项以打开需求设置对话框。

  • 导航到过滤器选项卡并按如下所示进行配置,选中突出显示和报告需求时按关键字过滤链接框并在包含带有任何这些选项卡的链接字段中输入 design

settings_filter_design.png

  • 检查图中突出显示的对象。这些是原始模型中存在的链接。

  • 现在修改过滤器设置,如下所示,以排除“设计”链接:

settings_filter_no_design.png

  • 检查 Simulink 模型。现在突出显示指向您刚从 DOORS 数据库复制的链接。

删除 Simulink 和 DOORS 中的链接

同步还允许您在删除链接时保持一致性。例如:

  • 再次导航到 fuel 输入。

rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/engine gas dynamics/fuel');
  • 右键点击,选择需求>打开出向链接对话框...

  • 在对话框中选择“->2.1 普通操作模式”项。

  • 点击删除按钮可将该项目从列表中删除。

  • 点击“确定”应用更改。

  • 再次检查上下文菜单以确认链接已消失。

  • 请注意,该链接仍然存在于 DOORS 中,将替代模块中的 1.11.3 fuel 连接到 FuelSys 需求规范模块中的“2.1 普通操作模式”。

  • 通过重新运行同步并将链接更新选项设置为 Simulink to DOORS 并启用删除 DOORS 中的不匹配项复选框来清除 DOORS 中已删除的链接。

doors_dialog_sl_to_doors_purge.png

  • 点击同步。观测到 DOORS 中的链接消失了。

类似地,当 DOORS 中的链接被删除,而您需要将更改传播到 Simulink 时,请重新运行同步,并选择 DOORS 到 Simulink 选项,并启用删除 Simulink 中不匹配项复选框。

从 DOORS 到 Simulink 的可选直接链接

当使用与 DOORS 的选择链接时,您可以选择自动将引用对象插入到 DOORS 文档中,以便从 DOORS 直接导航到 Simulink,而无需替代模块。

警告:当您使用 RMI 的这一特性时, DOORS文档会被修改。

  • 需求选项卡中,点击链接设置 > 链接选项以打开需求设置对话框。

  • 启用修改双向链接的目标复选框。

settings_2way.png

现在,当您使用选择链接时,Simulink 会创建导航对象。有两种类型的引用可供选择。当使用 ActiveX 进行传入链接选项(位于选择链接选项卡底部)处于开启状态时,RMI 将插入带有 Simulink 图标和目标对象选项卡的新 DOORS 对象作为 DOORS 对象文本。当使用 ActiveX...选项关闭时,RMI 将插入 External Link 超链接。对于以下练习,请尝试两个选项并决定哪个最适合您。

  • FuelSys 需求规范模块中找到并选择“2.2.6 速度传感器故障”。

  • 在 Simulink模型中找到 Speed Estimate模块。

rmidemo_callback('locate',['slvnvdemo_fuelsys_doorsreq/fuel rate controller/' ...
    'Sensor correction and Fault Redundancy/Speed Estimate']);
  • 右键点击该模块并选择需求> 链接到 DOORS 中的选择

  • 观测作为目标对象的第一个子对象插入到 DOORS 中的新对象。

doors_navigation.png

  • 点击 DOORS 中刚刚插入的导航对象,或者使用 DOORS 模块窗口主菜单中的 MATLAB > 选择项目

  • 当使用External Link超链接时,在右键点击上下文菜单的展开级联中导航 MATLAB 超链接。

  • 正确的图在 Simulink 中打开,并且链接的模块被突出显示。

注意:您刚刚启用了从 DOORS 到 Simulink 模型的导航,而无需保存模型中的任何更改。当需要避免修改模型时,请考虑此工作流程。

正常情况下,当创建链接后保存 Simulink 模型时,就可以实现双向导航,同时绕过替代同步过程的复杂性。然而,Simulink 导航对象会使 DOORS 文档变得混乱,这是一个缺点。

为了避免对 DOORS 文档进行无意的修改,请重新打开需求设置对话框,转到选择链接选项卡,然后禁用修改双向链接的目标复选框。