将工件从 ReqIF 文件导入到需求项目或组件

可以将需求交换格式 (ReqIF) 文件中的数据从文件系统导入到需求项目或组件。

开始之前

在导入 ReqIF (.reqif.reqifz) 文件之前,请确保要导入的文件以 UTF-8编码。

要导入 ReqIF 文件,您必须具备写访问权和“导入 ReqIF”许可权。

关于本任务

导入 ReqIF 文件 (.reqif.reqifz) 时,请使用向导,在向导中选择要上载和导入的 ReqIF 文件。 上载该文件后,可导入 ReqIF 数据或关闭向导并在另一时间导入 ReqIF 数据。 完成导入过程之后,会显示一个报告,此报告显示了已导入数据的列表。 可以使用报告中生成的链接来访问项目或组件中的已导入工件。

可以使用标准导入选项(可以在其中选择要导入的 ReqIF 文件),并遵循指示信息执行操作。 有关更多信息,请参阅 使用标准导入选项

您还可以使用高级导入选项,可以在该选项中指定更多导入选项。 有关更多信息,请参阅 使用高级导入选项

重要信息: 首次导入 ReqIF 数据,类型和工件时创建。 如果您稍后导入相同数据,那么系统会更新除了视图列信息之外的所有数据。 在导入期间,会合并系统属性和系统数据类型。 如果选择了映射上下文,那么导入器会尝试将属性与数据类型按它们的标题进行匹配。 将在要导入至的项目或组件中创建尚未从 ReqIF 文件中导入的工件类型、属性、数据类型和文件夹。 如果已导入的类型资源与现有类型资源具有相同名称,那么通过添加后缀“[DNG-Renamed-<X>]”来将传入类型重命名。其中 <X> 是类型名称和后缀的下一个可用数字。 例如,要导入的文件以及要导入至的项目或组件可能都包含 Priority 属性。 在这种情况下,导入期间会创建名为 Priority [DNG-Renamed-1] 的属性。
可从 ReqIF 文件中导入某些类型的数据,包括以下类型:
  • 文本工件
  • 图形工件
  • 图工件
  • 属性定义
  • 数据类型
  • 文件夹和文件夹层次结构
  • 链接
  • 链接类型
  • 标记
  • 模块
  • 工件类型
  • 集合
  • 查看列信息,它只能在首次导入期间导入。
如果您在启用了配置的环境中导入下列类型的项,那么该导入会创建该资源的新版本。 此外,还会将它映射至导入配置(如果已将该资源导入到组件或项目中的另一个配置)。
  • 数据类型
  • 属性
  • 工件类型
  • 模块
  • 工件
  • 文件夹
  • 链接
  • 查看列信息

有关 ReqIF 使用方案的更多信息,请参阅 ReqIF 使用方案

要点:
  • 如果先前已将资源导入到组件或项目中的另一个流或变更集,那么该导入将完成下列操作:
    1. 在该流或变更集中,在导入位置创建该资源的版本。
    2. 如果该资源在导入位置可用,那么更新该资源。
  • 如果先前未将资源导入到组件或项目中的任何流或变更集,那么该导入将在导入位置创建该资源。
  • 如果先前已将资源导入到组件或项目中的流或变更集,那么当此资源已变更时,该导入将更新此资源。
注: 如果删除了导入到配置中的任何项,那么将创建新版本的已删除资源并将其映射到导入的配置。
无法导入下列类型的数据:
  • 查看过滤信息
  • 注释
  • 复审
  • 审计历史记录

可以导入采用 XML 格式或压缩文件格式的 ReqIF 文件。 如果 ReqIF 文件引用外部附件文件或嵌入式 OLE 文件 (这些文件发生在 IBM Engineering Requirements Management DOORS (DOORS) 的某些导出中) ,那么 ReqIF 文件和引用的外部文件必须位于一个压缩文件中,以确保在需求项目或组件中创建正确的关联。 从 DOORS导入包含嵌入式 OLE 对象的 ReqIF 文件时,会将 OLE 对象创建为需求项目或组件中的文件资源。

导入 ReqIF 包时,现有工件类型将更新,并且属性将保留:它们不会被移除。

例如,您目前具有一个名为“工件类型 A”的工件,它具有属性为 A 和 B。 您导入一个包含“工件类型 A”以及属性 A 和 C 的包,那么已更新的工件为“工件类型 A”,它具有属性 A、B 和 C。

如果该包仅包含模块的部分,那么导入该包时,系统会将新工件添加至现有模块结构。 决不会删除未包括在该包中,但是模块结构中确实存在的工件。

如果已将子工件移至已导入包中所述的新的父工件,那么先前的父工件也包括在该包中。 如果先前的父工件未包括在该包中,那么不会移动该子工件。 以下示例说明导入过程中子工件的移动方式:

表 1. 有关工件结构在导入过程中如何更改的示例
现有包 要导入的包 最终获得的结构(已移动的工件用粗体显示)
父工件 1
  • 子工件 A
父工件 2
  • 子工件 B
父工件 3
  • 子工件 C
父工件 1
  • 子工件 A
  • 子工件 B
  • 子工件 C

父工件 2

父工件 1
  • 子工件 A
  • 子工件 B

父工件 2

父工件 3
  • 子工件 C
如果您导入只有一个链接端点的 ReqIF 包,并且稍后导入具有另一个端点和链接的另一 ReqIF 包。 因此,将在这两个端点之间创建链接。 以下导入支持增量链接:
  • 工件至工件
  • 工件至模块
  • 工件至集合
  • 模块至模块
  • 模块至集合
  • 集合至集合

IBM Engineering Requirements Management DOORS Next (DOORS Next) 中的软件包包含导出任一端点时的链接。 仅当导出了两个端点时, DOORS 中的包才包含链接。

您还可以使用 ReqIF 将数据从 DOORS 导入到 DOORS Next。 您可以在 DOORS 中创建 ReqIF 定义,并将该定义导出到 ReqIF 包。 然后,可以在 DOORS Next 中导入 ReqIF 包以获取所需数据。 有关交换使用 ReqIF的需求数据的更多信息,请参阅 与其他数据库交换需求DOORS 项目数据迁移到 DOORS Next

某些 ReqIF 包中包含系统属性。 如果系统属性值不可用,那么它们不会显示在“比较向导”中。 This principle applies to packages from DOORS, DOORS Next, and tools in the ProSTEP ReqIF Implementation Guide. 有关更多信息,请参阅 prostep。 仅当首次在组件中创建工件时,才从导入设置下列属性值:
  • ForeignID
  • ForeignCreatedon
  • ForeignCreated者
例如,当您导入新工件时,会设置 ForeignModifiedOnForeignModifiedBy 属性。 但是,当您导入现有工件时,只有在一个或多个值发生变更时才会设置 ForeignModifiedOnForeignModifiedBy 属性值。

有关 ReqIF 格式规范的更多信息,请参阅 需求交换格式

将 ReqIF 数据从 DOORS 导出到 DOORS Next时,必须将系统属性映射到 DOORS中的 URI。 有关更多信息,请参阅 系统属性将属性映射到外部应用程序的 URI

过程

  1. 打开需求项目或组件。
  2. 在 " 工件 " 页面上,单击 创建 ,然后单击 导入工件
  3. 在 "导入" 向导中,选择 从 ReqIF 文件导入需求 ,然后单击 下一步
    可以使用此标准导入选项(可以在其中选择要导入的 ReqIF 文件),并遵循指示信息执行操作。
    提示: 您还可以将高级导入选项与扩展选项配合使用,以配置导入。 有关更多信息,请参阅 使用高级导入选项
  4. 浏览要导入的文件,然后单击 导入
  5. 该文件完全上载后,完成下列其中一个步骤:
    • 要关闭“导入”向导并在稍后继续导入,请单击关闭。 准备继续导入时,请启动“导入”向导,并单击从此组件或项目中的 ReqIF 文件导入需求
    • 要继续导入,请单击下一步,然后遵循向导中的提示。
  6. 可选: 指定导入的导入选项:
    1. 指定 ReqIF 文件要导入到的文件夹或模块。 要将未定义模块层次结构的新工件放置在指定模块中,请选中 将没有模块层次结构的新工件放置在模块中 复选框。
      重要信息: 选择要放置新工件的文件夹或模块时,该文件夹或模块仅用于没有已定义文件夹或模块层次结构的工件。 如果导出 ReqIF 文件时已选择包括文件夹选项,那么将从根文件夹开始使用该文件夹层次结构,而无论您指定了哪个文件夹。 此前提也适用于 DOORS 导出的 ReqIF 文件,因为它们始终包含文件夹结构。
    2. 要标记 ReqIF 包中不存在的现有工件,请在 导入标记选项 部分下选择 标记正在更新的存储库模块中存在但在包中不存在的工件 复选框。 请使用下列其中一个选项:
      • 要为工件定义新标记,请选择创建新标记。 指定新标记。
      • 要使用现有标记,请选择使用现有标记。 单击选取标记。 在“选择标记”窗口中,输入标记的名称,或者从列表中选择现有标记,然后单击确定
      注:
      • “导入标记选项”功能将确定模块中先前导入的工件是否不包括在后续导入过程中。 不将工件包括在后续导入过程中最常见的原因是 ReqIF 交换的发送方端已删除该工件。
      • 标记选项仅对工件起作用,您无法将其应用于任何已删除的模块。
    3. 要将映射上下文应用于导入的包,请在 应用映射上下文 部分下选择 选择上下文。 从可用上下文列表中选择现有上下文,然后单击确定
      有关映射上下文的更多信息,请参阅 映射上下文
  7. 可选: 选择要导入的属性。 可以选择所有属性,也可以选择特定属性。
  8. 可选: 要查看导入的数据的列表,请单击 显示报告
    该报告包括数据的名称、ReqIF 标识和 URI 及其他信息。 可以随时从项目属性或组件属性 ReqIF 页面访问该报告。

使用高级导入选项

关于本任务

可以使用高级导入选项将工件从 ReqIF 文件导入到需求项目或组件。 下列步骤描述了使用高级导入选项的过程。

过程

  1. 打开需求项目或组件。
  2. 在 " 工件 " 页面上,单击 创建 ,然后单击 导入工件
  3. 在 "导入" 向导中,选中 从 ReqIF 文件导入需求 (高级) 复选框,然后单击 下一步
    注: 您可以上载包含多个 .reqifz 文件的包 (压缩文件)。 如果您使用从 ReqIF 文件中导入需求(高级)选项向导来导入该包,那么导入设置将应用于该包中的所有文件。
  4. 选择要导入的文件,然后单击 上载。 上载该文件之后,将提供所上载的每个 ReqIF 文件的详细信息。 可以查看包和 ReqIF 文件的摘要,以及查看所上载的包中具有的规范、工件、类型和属性数。 单击下一步以继续进行导入。 要查看导入报告,请单击分析结果。 如果传入 ReqIF 包中发生了下列类型的错误,那么分析报告将显示有关这些错误的信息:
    • 规范中的规范层次结构指向不在该包中的规范对象。
    • 属性定义指向不存在于该包中的数据类型,或者它们的类型不匹配。
    • 规范对象值指向不存在于该包中的属性定义,或者它们的类型不匹配。
  5. 可选: 为导入指定以下导入选项:
    1. 要选择要将新模块文件导入到的位置,请选中 选择新模块的位置 复选框并指定位置。
    2. 要在所选模块中添加不在模块层次结构中的新工件,请选中 在模块中放置没有模块层次结构的新工件 复选框。
    3. 要限制工件的创建,请取消选中页面的 "高级导入选项" 部分中的 允许创建工件 复选框。
    4. 要防止将模块中的工件移动到其他模块,请取消选中 允许工件移动 (在模块中) 复选框。
    5. 要防止修改工件类型,请取消选中 允许修改现有工件类型 复选框。 此选项将阻止变更所有工件类型的标题、描述和 RDF URI。
    6. 要防止修改属性定义,请取消选中 允许修改现有属性定义 复选框。 此选项将阻止变更所有属性定义的标题、描述和 RDF URI。
    7. 要防止更改所有数据类型的标题,描述和 RDF URI ,请取消选中 允许修改现有数据类型 复选框。
    8. 单击 下一步
  6. 选择要导入到当前项目或组件的规范,然后单击 下一步。 如果您将鼠标光标悬停在“导入”向导中的规范上,预览窗口将显示有关该规范以及该规范中的工件类型的详细信息。
  7. 如果未指定映射上下文,请选择要导入的属性,然后单击 下一步。 可以选择所有属性,也可以选择特定属性。 指定高级导入选项之后,将导入 ReqIF 文件。 可以在“导入需求”页面上查看导入状态。

结果

工件从 ReqIF 文件成功从系统导入到需求项目或组件。

您可以观看以下视频,以了解有关从 DOORS 到 RM 应用程序的数据迁移的更多信息: