满足 IBM DOORS需求
如何从 IBM® DOORS® 导入、链接和更新需求。Microsoft® Windows® 支持使用 DOORS。
为 IBM DOORS 进行设置
按照 配置 Requirements Toolbox 以与 Microsoft Office 和 IBM DOORS 进行交互 中的说明配置需求管理界面,以便与 IBM DOORS 交互。
DOORS工作流概述
您可以将需求从 DOORS 导入到 Simulink® 环境,然后通过导入的引用建立从您的模型到 DOORS 需求的可追溯性。可追溯性是双向的。如果 DOORS 需求发生变化,您可以更新 Requirements Toolbox™ 中的引用,同时保持可追溯性。此外:
您可以建立从 MATLAB® 和 Simulink 到 DOORS 的可追溯性,而无需修改 DOORS Formal 或 Link 模块。
您无需离开 Simulink 编辑器即可在设计、测试和需求之间建立链接。
您可以建立从 Simulink 中的低级需求到 DOORS 中的高级需求的可追溯性。
您可以使用 Requirements Toolbox 中的度量来识别实现和验证中的差距。
可以使用变化检测和跨域可追溯性来进行变化影响分析。
如果您已有 Simulink 工件通过先前版本的需求管理接口链接到 DOORS,请更新现有链接。请参阅 将需求管理接口数据迁移至 Requirements Toolbox 中的更新模型链接目的地部分。
导入 DOORS 模块
您可以使用过滤器从模块导入 DOORS 需求模块或需求子集。有关更多信息,请参阅 从 IBM DOORS 导入需求。
要在导入的需求引用和 DOORS 之间导航:
选择导入的需求引用并点击在文档中显示以导航到 DOORS。
在 DOORS 中选择 MATLAB > Select Item 来导航到导入的需求引用。
如果您的 DOORS 模块在 DOORS 项目之间有链接,您可以使用附加命令将链接带入需求集。此外,如果您的 DOORS 模块有指向 Simulink 模型的链接,请使用链接同步将链接带入需求集。请参阅 管理容错燃料控制系统的需求 (IBM DOORS) 中的将链接信息从 DOORS 复制到 Simulink 部分。
在导入 DOORS 模块之前,请确保已添加所有所需的需求属性。原始导入后,您无法将其他属性导入到 Requirements Toolbox。
链接到您的模型
您可以通过将需求浏览器中的项目拖放到模型中的项目来将导入的需求链接到 Simulink 模块。通过点击窗口右下角的图标并选择需求图块,在模型窗口中打开需求视角。
当您打开需求透视图并选择一个需求时,链接将显示在属性检查器的链接下。您可以:
导航到当前模型之外的链接工件。
通过指向链接并点击红色十字来删除链接。
通过从查看下拉菜单中选择
Links
来检查并修改链接属性。
您可以将导入的需求链接到测试用例、MATLAB 代码、数据字典和其他需求等实体。有关更多信息,请参阅 将测试用例链接到需求 和 满足 IBM DOORS需求。
更新需求以反映 DOORS 变更
如果 DOORS 中的源需求发生变化,您可以更新 Requirements Toolbox 中导入的引用。
选择与更新的 DOORS 模块相对应的顶级节点。
点击更新按钮。
按照更新导入的需求中的步骤进行操作。
如果您自最初导入 Requirements Toolbox 以来已向 DOORS 模块添加属性,则不会导入新属性。如果您想从 DOORS 模块导入属性,请确保在导入到 Requirements Toolbox 中的新需求集之前添加它们。
从 DOORS 同步链接和导航
您可以将可追溯性数据带入 DOORS,以便更轻松地从原始需求导航到设计和测试。要将您的 Requirements Toolbox 链接同步到 DOORS:
从查看下拉菜单中选择
Links
。找到并右键点击具有新链接的链接集。
在上下文菜单的底部选择更新反向链接快捷方式。
Requirements Toolbox 分析链接集中的出向链接,并检查来自支持反向链接插入的应用程序(包括 DOORS)的传入链接。
缺失的链接已添加到外部文档。在 DOORS 中,链接显示为出向外部链接并对应于 Simulink 实体,例如 Simulink Test™ 中的模块或测试用例。
检查链接文档是否存在过时的链接,其中从 Simulink 到此外部需求没有匹配的链接。
您可以通过确认提示从 DOORS 模块中删除不匹配的链接。
更新反向链接操作成功完成后会显示一个简短的报告对话框:
执行更新反向链接步骤后,检查 DOORS 模块中的链接需求- 您应该看到指向 MATLAB 或 Simulink 的链接。如果同一需求链接到多个元素,您可能会看到多个链接。点击 DOORS 中的链接进行导航:
有关管理外部文档链接的一般信息,请参阅管理外部需求文档中的导航反向链接。
嵌入式 HTTP 连接器
从外部应用程序到 MATLAB 和 Simulink 的导航依赖于 MATLAB 中的内部 HTTP 服务器。除非 MATLAB 的内置 HTTP 服务器在正确的端口号上处于活动,否则 Requirements Toolbox 将无法在外部应用程序中插入链接。
如果在执行更新反向链接操作时看到以下错误弹出,则表明 HTTP 服务器状态不正确:
使用rmi httpLink status
命令行 API 检查 HTTP 服务器的状态。如果输出结构体的httpPort
字段返回0
,则使用rmi httpLink
激活服务器。
更新反向链接功能要求激活 HTTP 服务器的 31415 端口。如果执行 rmi httpLinkStatus
,并且输出结构体的 httpPort
字段返回更高的数字,则表明在启动此 MATLAB 实例时端口号 31415 已被其他进程占用。您需要:
保存您的工作并退出 MATLAB 的所有实例。
仅重新启动 MATLAB 的一个实例。
通过运行
rmi httpLink status
检查 HTTP 服务器状态。如果得到 0,请重新运行
rmi httpLink
命令。使用
rmi httpLink status
重新检查。您现在应该看到httpPort
字段表明端口 31415 处于活动。重新打开您的 MBD工件并重试更新反向链接过程。
跟踪至 DOORS 模块基线
在将 MBD 工件与 DOORS 中的需求链接起来之后的某个时间点,您可能已经为链接的模块创建了基线。默认情况下,存储在 Requirements Toolbox 中的链接仍将导航到链接模块的当前版本。如果您想将设计版本锁定为需求的基线版本,Requirements Toolbox 允许您为所链接的每个 DOORS 模块指定一个基线编号。您可以选择为当前 MATLAB 会话中所有链接的工件配置首选的 DOORS 基线编号,也可以为指定的 MBD 工件指定不同的 DOORS 基线编号。
slreq.cmConfigureVersion
是您用来指定首选 DOORS 基线数字的命令行 API。使用
slreq.cmGetVersion
命令检查给定 DOORS 模块配置的 DOORS 基线编号。如果您稍后为链接模块创建了下一个版本的基线,并且如果您希望先前存储的链接导航到后续的基线,则可以重新运行
slreq.cmConfigureVersion
命令来指定更新的基线编号。每个工件的值与相应的链接集一起存储,并将影响相同链接集文件的所有用户的导航。
全局(会话范围)分配存储在用户预设项中。您在同一安装中的下一个 MATLAB 会话会记住您之前配置的基线数字。如果您与其他用户共享您的工作,则每个用户都需要重新输入相同的首选基线号码。如果需要,您可以在 MATLAB 启动脚本或 Simulink 工程启动脚本中包含所需的配置命令。
在 DOORS 中模块前缀更改后修复先前导入的引用的链接
当 DOORS 中的需求发生变化时,您可以执行更新操作将更新后的 DOORS 内容带入先前导入的需求集中。该过程依赖于将 DOORS 对象 ID 与先前导入项的自定义 ID 进行匹配,以确定哪些现有引用需要更新,以及哪些 DOORS 对象是新的并需要在 Requirements Toolbox™需求集创建新的引用。此外,当从 DOORS 收到的更新不包含需求集存在的某些自定义 ID 时,将假定在 DOORS 中删除相应的项目,并将其从需求集清除。随之而来的是以下危险:如果 DOORS 用户在对需求集执行更新之前修改了 DOORS 中的模块前缀,则所有现有的自定义 ID 都不会匹配,因为 DOORS 模块前缀是 ID 的一部分,并且 Requirements Toolbox 端已知的所有 ID 都基于旧前缀。更新过程将删除所有现有引用,然后创建具有与 DOORS 中更新的前缀相对应的自定义 ID 的新引用。如果先前导入的引用与 Simulink 端的设计工件相链接,则所有链接都将断开,因为最初链接的引用不再存在。例如,如果 DOORS 中的原始模块前缀为“KKK”,并将其更改为“QQQ”,则执行更新后,您将在需求浏览器中看到基于 QQQ 的 ID,
...但链接仍然会指向基于 KKK 的物品作为目的地。您将在所有断开的链接上看到橙色警告三角形:
您可以通过执行以下步骤来修复断开的链接:
识别 LinkSet 数据中的原始 DOORS ID,
根据您对原始和当前模块前缀的了解,构建预期的更新 DOORS ID,
依靠重建的 ID 来定位每个断开的链接目标的匹配需求集条目,
更新每个断开的链接以连接到需求集中更新的引用。
如果需求集文件的旧副本仍然可用,您可以从中收集 SID->CustomID 映射。但是如果您只有需求集的更新版本,并且链接已经断开,您可能能够从存储的链接标签(来自 link.Description
值)中提取旧的 DOORS ID。
以下脚本演示了当所有存储的 link.Description
标签都以 DOORS ID 开头时如何完成此任务。在我们的示例中,标签看起来像“KKK123:DOORS 对象文本或标题”,并且我们假设旧 ID 为“KKK123”的 DOORS 项目现在具有 DOORS ID“QQQ123”。
使用四个输入参量运行此脚本:LinkSet名称,ReqSet名称,旧前缀,新前缀:
现在所有链接都已解析并且标签也已正确更新: