为 DocExpress 用户准备的 Rational Publishing Engine 入门简介

功能特性比较

IBM Rational Publishing Engine 是一种新型、快速以及灵活的程序,用于从各种软件引擎程序中生成文件。本文探讨了它的关键概念,并将其与 DocExpress 相比较,这样您就可以系统化地取代该工具。

Matthias T Jung, 信息工程师, EMC

Matthias JungMatthias Jung 博士是 IBM Rational 软件服务的一名咨询师。他通过对 Telelogic 的收购进入 IBM,帮助许多公司产生在需求管理过程方面的文档。



2009 年 12 月 30 日

为什么我们还要生成文件

为了采取现代化的软件开发操作,公司需要用现代化的引擎程序,来替换传统的基于文件的开发工作流程,例如 IBM® Rational® DOORS® 或者 IBM® Rational® RequisitePro®。如果一个公司要想获得成功,那么与其他开发团队、客户等等相共享的文件 仍然需要得到创建。这是因为其他公司可能还在使用基于文件的方法或者其他的引擎程序。

本文描述了 IBM® Rational® Publishing Engine,它是一种新的文件生成工具。文章的第一部分讨论了 Rational Publishing Engine 的关键概念。第二部分将 DocExpress(一种合法的文件生成方案)的特性映射到 Rational Publishing Engine 上。映射的方式允许您系统地定义与 Rational Publishing Engine 一起生成的文件,以替换已存在的 DocExpress Configuration。如果您没有使用 DocExpress 的经验,那么它还提供了一个关于 Rational Publishing Engine 强大功能的范例。模板为 Rational DOORS 显示了典型的文件生成任务。


内容:例如,Rational DOORS 的概述

当然,Rational DOORS 以及其他的引擎程序提供了数据的有趣视图,例如图 1 中的视图。您可能想要知道:为什么更加高级的工具(例如复制粘贴操作)很容易就可以得到,而有人却要使用简单的文件生成操作呢?

图 1. 通过在文件中将视图在垂直方向上重新排列来改善它的外观
系统需求、注释等等的列

Rational DOORS 术语

在 Rational DOORS 中,单个需求规格是由 Modules 表现的,它是在 ProjectsFolders 中的 Rational DOORS 数据库中进行组织。这很像文件系统中的文件。每一个模型都含有一系列的需求对象。

在 Rational DOORS 内,您使用模型浏览器来编辑这样的模型,如图 1 所示。模型浏览器看起来类似于 Microsoft® Word 和 Microsoft® Excel 的组合。表格中的行存储了模型中的不同对象,列显示了不同属性的值。其中最重要的属性,是对象文本与对象头,它们都显示了主列中(图 1 中的列 2),您可以定义其他的属性。

在模型浏览器中,您可以将属性保存到列中,同时保存的还有对象的过滤器状态,作为 视图 而保存。

Rational DOORS 中另外一个重要的方面,是记录需求相互之间如何获取的对象之间的 联系

您还可以只复制工具已存在的视图到文件中。这可能是需要的,并使得信息更加容易理解,以将信息按照另外一种方式安排到生成的文件中。例如,您可以显示属于垂直方向上,而不是水平方向上需求的属性,就像在 Rational DOORS 中操作一样。这要比图 1 中的表格看起来更合适。

管理变更

另外,引入现代软件引擎程序的一个重要原因,例如需求管理系统,就是处理各种变更。但是,如果您的数据一直处于变化之中,这意味着文件也需要得到规范的更新,这样其他的项目成员也就能够与日期保存一致了。从工具中粘贴信息是很烦人的,而且很容易出错,特别是当您需要又规律地这样做时更是这样。一次被遗忘的升级,可能导致严重的错误和成本代价,特别是如果升级是非常重要的需求时更是这样,例如飞机和医疗设备的更新情况。


Rational Publishing Engine

Rational Publishing Engine 是一种小型的程序,以和从其他程序的数据中提取内容一起生成文件。由于对 IBM Rational 软件的独特支持,它不同于其他的方案。第一个版本,发布于 2008 年 12 月,支持 Rational DOORS(一个需求管理系统)与 IBM® Rational® Tau(一种 UML 建模方案)。最新的版本对更多的程序添加了支持功能,名字为:

  • IBM® Rational® Focal Point™
  • Rational Requisite Pro
  • IBM® Rational® ClearCase®
  • IBM® Rational® ClearQuest®
  • IBM® Rational® Test Manager

Rational Publishing Engine 的未来版本将会添加更多产品的支持功能。

设计目标

Rational Publishing Engine 的关键设计目标有三个:

  • 首先,Rational Publishing Engine 应该满足它的用户的各种格式化需要。因为没有两个用户会就文件应该怎样进行格式化达成完全一致的意见,Rational Publishing Engine 拥有丰厚系列的属性。这些属性将会使得您的文件的格式和外观变得更加合适。属性集应该类似于共同的 HTML 编辑属性,就算是一个新用户也应该可以快速地管理它们。
  • 第二,Rational Publishing Engine 应该能够有效地生成文件。这意味着资源使用是十分高效的。资源使用一直很低,因为 Rational Publishing Engine 并不会将数据资源从支持的程序中完全载入到内存中。相反,数据源提取、处理以及输出生成会一起进行,这种技术使得文件生成过程变得更加有效。另外,Rational Publishing Engine 会直接(而不需使用 COM-Automation 或者系统剪贴簿)生成所有的输出格式(Microsoft Word® 文件,PDF,HTML,以及 XML Formatting Objects)。
  • 第三,Rational Publishing Engine 使用起来应该更加容易,设计的目标通过将简单易交流的概念与现代的用户界面(UI)相结合,来得到满足。定义生成文件的核心工件,是文件规格和文件模板。

文件格式

文件规格 是一种或者多种支持文件格式下具体文件的规格。它们引用一个或者更多的文件模板,它定义了文件的外观。对于每一个文件模板及其定义的数据源,文件规格含有需要的所有信息,以从支持的程序中获取实际的数据。而且,它们定义了预期的模板格式、用于文件模板的形式、文件处理模式,以及其他的信息,例如预期的数据格式。文件规格对于生成的文件来说是特定的,并且不能再次使用以生成另外的文件。

文件模板,另一方面,也是输出文件的可再用规格,或者输出文件的一部分。它们定义了输出文件的结构与输入数据源的结构。输入通过查询与输入相关。查询定义了输出文件内容(如果它们有实际值的话),或者在输出文件中复制节点,就像它们在输入文件中发生的一样。

图 2 显示了一个文件模板的范例。最外边的 Container 元素与 module.object 查询相联系。它的内容会得到复制。容器中的内容节点为 Rational DOORS 模型中的每一个对象,都生成了两段的文本。这些段落包含了节点的两个文本性属性,分别叫做 Object HeadingObject Text,由更多的查询所定义。

图 2. Rational Publishing Engine 为 DOORS 数据源记录了模板
方形框显示了引用的元素

查询引用的数据源,A_DOORS_MODULE,在文件模板中的 XML Schema Definition(XSD)中进行定义。XSDs 可以通过标准的数据源获得,这些数据源有 Rational DOORS 模型、Rational DOORS 数据库层级结构、Rational RequisitePro Project、Rational Tau UML 项目以及等等。另外,您可以生成特定目的的 XSDs,例如,为访问用户定义的属性以及 Rational DOORS 模块中的视图列,而生成 XSD。

其他的特性

为了进一步控制输出文件的外观,段落节点可以拥有状态以及属性。状态位于 JavaScript® 中,在这种情况下它将会只生成段落,如果段落中的文本是空白的话。它们是需要的,因为 Rational DOORS 对象一般包含了对象头属性的值,或者对象文本的属性。属性会控制段落的外观。含有对象的段落因此会生成开头的段落,尽管如此,对象文本还会生成一个正常的文本段落(这些属性在图 2 中并没有得到描述)。

一个文件模板还包含了很多的特性:

  • 您可以使用 style definitions 来稳定控制整个模块的外观。您可以将它们分配给多个文件元素,方式与您对正常的文本处理程序相同。
  • Master 页面 类似于页面的段落形式。您使用它们来定义生成文件的页面的属性,同时定义头区域与注脚区域的内容。
  • 您可以使用 variables 来向文件模板提供参数。
  • 您可以使用 assignments 来移动信息(例如,将 DOORS 模块作者的名字装入页面头中)。
  • 有了变量和任务,您就可以轻松计算了,例如计算查询进行的次数。

图 3 显示了 Flight Model 需求生成的文件。它是对如图 1 所示的 DOORS 模块应用如图 2 所示模板的结果。

图 3.生成至如图 2 所示模板的文件
1.1 概述 , 1.2 环境

DocExpress

DocExpress 是生成文件的合法方案。它的主要目的是生成来自 Rational DOORS 信息的 Microsoft Word 文件,但是 DocExpress 同样包含有一些其他的数据源和数据目标格式。开发 Rational Publishing Engine 的一个原因是 DocExpress 存在一些缺陷:它太慢,而且使用了系统剪贴板。这就导致了一定程度上的危险。

本段描述了怎样使用 Rational Publishing Engine 来替换 DocExpress,这可以帮助您的团队进行转移。如果您没有使用 DocExpress,那么本段向您提供了一个关于 Rational Publishing Engine 功能的范例:显示的模板解决了 Rational DOORS 中典型的文件生成风险。

DocExpress 包含了生成文件的两种程序,它们在记录生成的方式不同点是配置:

  • DocExpress/Word 在 Microsoft Word 中有一个用户界面,它包含了支持提取数据选择的对话框。
  • DocExpress/Factory 是模板驱动的,您是在配置的文本文件中对数据源进行配置的。

    但是,两个程序都使用相同系列的数据提取工具。对于升级到 3.x 版本的 Rational DOORS,两个数据提取器是最重要的:Get_ViewParse_Dps

较新一点的 DocExpress(版本 4)包含了一个来自 Rational DOORS 的新 UI。它还封装了前面版本中的数据提取器,在不同类型的版本中都可以使用它们。基于视图的报告在很大程度上,代表了 Get_View 提取器的功能,并基本报告 Parse_Dps 提取器的功能。

同样可用的还有一个合并的报告,它是一个简单的基于视图和基础报告的连接体。您可以使用 Rational Publishing Engine 文件模板,为 DocExpress 基于视图和基础报告一起在文件规格中,创建一个合并的报告。

接下来的段落,描述了怎样为 DocExpress 数据提取器和报告定义 Rational Publishing Engine 文件模板。

基于视图的报告与 Get_View 提取器

DocExpress 基于视图的报告以及 Get_View 数据提取器支持 DOORS 视图复制(如 图 1 所示)到一个文件中的操作。您可以将视图格式化为一个表格,或者段落。结果如 图 6图 7 中显示的那样。

一些其他的格式化选项可以通过 Get_View 以及基于视图的报告获得:

  • 对于表格选项,生成表格的总体宽度可以得到定义。
  • 对于段落选项,层次为 Rational DOORS 中的层次 1 定义了 Word 报头层次。

两个选项都可以通过 Rational Publishing Engine 获得,您可以通过 Rational Publishing Engine 变量为它们定义变量。同样,两个文件生成器都可以为 Rational DOORS 模块的当前(或者一个已命名的老基线)基线应用文件生成。

在 Rational Publishing Engine 中, DOORS Module 类型的数据源的数据,不仅仅只包含有 Rational DOORS 模块和对象属性,还有一个可配置的视图。该视图的数据可以得到自动化的提取,而且文件模板可以通过数据源进行使用。您可以使用它来构建两个 Rational Publishing Engine 模板,它代表了 DocExpress 基于视图的报告。

报告模板以及生成的结果

图 4 显示了表格模式,而图 5 显示了基于视图报告的段落模式。描述的范例模板并没有给出定义,以复制一个 Rational DOORS 表格。但是,这并没有设置一个极限,因为 Rational Publishing Engine 也可以完美地复制 Rational DOORS 表格。图 4 和图 5 中模板的生成结果,分别显示在图 6 和图 7 中。

图 4. Rational Publishing Engine 模板以表格模式显示的基于视图的报告
带有表格、行、单元以及内部文本的容器
图 5. Rational Publishing Engine 模板以段落模式显示的基于视图的报告
容器、段落以及文本
图 6. Rational Publishing Engine 模板以表格模式显示的基于视图的报告的结果
ID、系统请求以及风险的表格
图 7. Rational Publishing Engine 以段落模式显示的基于视图报告的结果
含有 ID、Priority、Risk 行的段落

在 DocExpress 中有一个 Rational Publishing Engine 没有的自动化特性:在基于视图的报告的表格模式中,DocExpress 复制了生成的文件中列宽度的比例。作为 Rational Publishing Engine 中一个简单地工作环境,您可以直接在文件模板中分配表格单元的宽度。

其他的定制部分

与 DocExpress 基于视图的报告相比,您对使用 Rational Publishing Engine 来生成文件的影响力更大。例如,您可以更改的项目有:边沿、字体、表格头和数据的颜色等等。您还可以给表格中的第二列设置一个不同的背景颜色。

给定的模板仅仅是一个范例,您可以将其进一步的更改以实现从来在基于视图报告中不可能实现的特性。例如,您可以关闭图 7 中的小表格,以让表头信息以一种简单的状态显示,或者您可以忽略空白的表格条目。

另外,假如您觉得图 6 中的表格看起来很难看,因为它含有头对象和 Rational DOORS 表格。这就是 DocExpress 基于视图报告生成文件的方式。但是,您可以编辑 Rational Publishing Engine 模板,以改变表格在头对象、图片和 Rational DOORS 表格上的外观,因此创建一个更好的环境。

基本报告与 Parse_Dps-Extractor

DocExpress 中的基本报告与 Parse_Dps 提取器,提供了广泛的可能性,以编辑生成的文件和基于视图的报告。在文件处理程序中这种可能性相比邮件合并功能来说,有了很大提高。

Rational DOORS 模块中的对象假设了您想要写信的所有角色,有了基本报告处理器,第一个操作就是,Rational DOORS 对象可以得到筛选和分类,因为在合并邮件中,可能您并没有加入数据库中的每一个地址。

在基本报告处理器中,您可以为每一个 Rational DOORS 对象分配一个私人的 Microsoft Word 文件模板(实际上是一个 *.dot 文件,叫做对象模板)。模板可以与您向某个地址发送的不同信件相比较。有了基本报告,您可以向每一个对象分配不同的对象模板文件,但是这种工作干起来可能十分繁琐。正常情况下,您可以分类对象(例如,头对象,信息对象,需求对象,表格中的对象等等),并向每一个类分配不同的 Microsoft Word 模板。与邮件合并任务相比,您可能会将客户划分为不同的类型。有些人得到的是私人的信件,有些人则是更加正式一些的信件。

基本报告接下来要做的,就是为每一个地址都创建一封信件(这就是说,为每一个 Rational DOORS 对象创建一个文件)。接下来,所有生成的小型文件,都会得到连接以构建一个更大的结果文件。

“为每一个地址创建信件”的处理意味着,在 Microsoft Word 模板中,DocExpress 宏引用都会被它们的内容所取代。基本上,所有 Rational DOORS 对象的用户自定义 ObjectModule 属性,都会有一个宏引用。有一些其他的宏引用也可以使用,由当前的日期和时间、模块名字、项目名字等等所取代。使用这些宏,您就可以为每一个对象创建一个小的文件。在右边,模板是当作基本报告的一部分使用的,同时使用的还有信息以及头对象的其他对象模板。

图 8. DocExpress 基本报告与 Microsoft Word *.dot 模板文件的配置情况
左边的 Design 窗口,右边的结果文本与表格

基本的报告与 Parse_Dps Extractor 拥有相同的特性。它们之间唯一的不同点在于它们的配置方式。Parse_Dps Extractor 执行了一个小型的脚本(使用 Rational DOORS 的脚本语言),该脚本为每一个对象都计算了 Microsoft Word 文件模板文件的文件名。另一方面,基本报告包含有 Rational DOORS 筛选器表达式的列表,并向这些筛选器表达式的结果对象分配不同的模板。

映射基本报告特性到 Rational Publishing Engine

Rational Publishing Engine 并没有单个的、静态的模板,该模板执行基本模板的所有可能性。但是您可以映射特性到 Rational Publishing Engine 上。为了映射处理模板选择的 Rational DOORS 对象,您可以应用一次查询,该查询匹配了所有模块的 Rational DOORS 对象到 Container 对象上,如图 9 所示。您可以将基本报告中完成的初始过滤器和分类应用为一个 最外层容器 Rational Publishing Engine 过滤器与分类规则。

在容器内,您可以添加更多的容器,例如如图 9 所示的容器(c)。您必须编辑每一个容器,以维持住 DocExpress Microsoft Word 对象模板的 Rational Publishing Engine。因为 Rational Publishing Engine 也含有所有的输出元素(例如段落、表格、图片、列表等等),而且可以访问对象以及模块属性,直接进行操作。

例如,图 9 中的容器(a)与容器(b),为 Rational DOORS 中的规范对象与头对象,收集标准的 DocExpress 对象模板。对象模板中程序的过滤器条件,在 Rational Publishing Engine 中会转化为内部容器的条件。

图 9. 为基本报告创建 Rational Publishing Engine 模板的框架
标题被标上了 (a),文本是 (b),而容器是 (c)

在 Rational Publishing Engine 模板中分配转化的对象模板的可用信息,能够与基本脚本中用于分配的过滤器规则相比。但是,在 Parse_Dps Extractor 中,Rational DOORS DXL- 脚本会得到执行,以向对象分配对象模板。

实际上它为估计条件提供了一个广泛的可能性。例如,在范例程序中,会访问对象历史以在对象文本的左边创建不同颜色的条目。在 Rational Publishing Engine 中并不能够访问对象历史记录,但是有一个简单的工作方法:在 Rational DOORS 中将 Parse_Dps 的过滤器脚本分配给一个 DXL 属性。接下来,使用该属性的值来执行条件,该条件会选择容器,这种容器会维持 Rational Publishing Engine 模板中的转化对象模板。

三种特定的环境

有三种例外的状况,您必须对其单独处理:

  • Parse_Dps 提取器只使用一个对象模板时,可以用于只生成文件的主页面,其中的对象模板中没有对象属性。
  • 基本报告可以以这样一种方式进行配置,将基于视图的报告添加到对象模板之上或者之下。
  • 基本报告和 Parse_Dps 提取器可以得到配置,这样它们会从多个需求对象创建一个表格。图 10 给出了一个范例:应该生成的表格,收集了提供数据的视图(换句话说,只对需求有效)。
图 10. 挑战:从多个 Rational DOORS 对象来创建表格,从 对象中可以得到数据
功能性需求表格

您可以轻松处理 Rational Publishing Engine 中的前两种情况。创建一个 Rational Publishing Engine 模板的操作是直接进行的。同样的,如果您想要在某个对象模板之上或者之下添加一个基于视图的报告,那么您可以使用如 图 4 或者图 5 所示的模板。插入上面或者下面的模板,又或者 图 9 中您输入到模板框架的对象模板(例如,到(c)容器)。

对于第三种情况的执行,直接的方案会有一个问题。当一个表格必须生成的多个对象位于另一个表格之下时,原始方法的结果,是一个带有多个表格标题行的表格。为了解决这个问题,在表格中会为行对象定义一个重要的格式化属性:行属性 only once

如果它被设置为 true,该属性只会生成指定的行一次,而不管它在一个模板中出现了几次。它是为如图 11 所示 Rational Publishing Engine 模板中包含表格标题行进行了设置。在图 12 中,您可以查看记录使用该模板生成的 Rational Publishing Engine 的结果。

图 11. 为图 10 中的数据生成文件的模板
显示表格生成的模板
图 12. 图 11 中 Rational Publishing Engine 模板程序的范例结果
标题,文本与生成的表格

您所学习内容的总结

本篇文章描述了 Rational Publishing Engine,它是一种新的、快捷的和灵活的程序,可以生成包含 IBM Rational 软件引擎程序各种信息的文件。它 通过定义引用可再用的 document templatesdocument specifications,来显示 Rational Publishing Engine 中的文件生成得到了配置。

它解释了文件模板的关键概念:

  • 数据源定义定义了输入数据的结构
  • 输出元素层级结构定义了文件结构的输出
  • 查询会指定输入数据在输出元素层级结构中会怎样出现

    文件模板其他重要的构建模块同样得到了命名:

  • Conditions
  • Master Page Definitions
  • Variables
  • 任务

    本文中的所有范例,显示了 Rational Publishing Engine 是一个极端灵活的文件生成器。

本文的第二部分向您展示了,怎样按使用 DocExpress相同的方式产生相同文件的方式,来配置 Rational Publishing Engine。使用本文中描述的系统化方法,您可以将 DocExpress 模板(最新的版本 4,以及老版本 3)转化为 Rational Publishing Engine 中的模板。它支持从 DocExpress 到 Rational Publishing Engine 的转化。Rational Publishing Engine 是更有效、强大以及稳定的方案,它为格式化模板文件提供了丰富的选项。

对于 DocExpress 的版本 4,IBM 还提供了一个系统化的自动化转化工具,它能帮助您从基本报告中使用的对象模板,创建所需要的 Rational Publishing Engine 模板。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=459817
ArticleTitle=为 DocExpress 用户准备的 Rational Publishing Engine 入门简介
publish-date=12302009