在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力…

这篇文章向您展示了如何使用 IBMationalequisitePro 和 IBMationaloftware Modeler 内置的可跟踪性能,用绘图的方式来显示可跟踪性,从需求到模型,到代码。

场景

突然出来这句话:有一个需求变更。您的老板或者您的同事问您:这个变更可能对什么有影响呢道不能相当快速而简洁地回答这个问题吗/p>

从可追溯性角度来看,您正问自己:“在客户/供应商的关系中我充当的究竟是什么角色呢会依赖于我果我被替换掉,谁或者又有什么会受到影响呢

好消息:您可以通过使用 Rational Software Modeler 内置的可跟踪性性能来回答这些问题。如果您使用 Rational Software Modeler 来建模您的需求,您可以很有效地将需求和模型元素链接起来,然后再读取。

重点关注的问题

回到这个问题:谁会依赖于我一个模型元素的角度来看,您可以回答那个问题。现在您应该能够以图形的方式来描绘,或者可视化 那个跟踪特性。

您如何在每个领域询问问题

从一个需求 的观点来看,您可以使用 IBMationalequisitePro (hereafter, RequisitePro) 中的交付功能,然后问:“追溯到这个请求的必要条件是什么

从一个建模 的观点来看,有许多不同种类的关系十分有趣:所有关系,直接的关系,联合,等等。尽管在这种情况下,您只需要寻找将您的模型元素当作目标之间的直接关系。然而,无论您何时对这些关系有需要时,您还是可以将它扩展开来并寻找这些关系的。

这些领域是怎样配合在一起的呢

RequisitePro 的角度来看,如果您有一个代理需求,那么当链接到一个模型元素时就会在这个需求类型上有一个隐藏的特性,它将与这个模型的 Uniform Resource Identifier (URI) 和这个模型中模型元素的片段 URI 一起组装。

要切记的是,模型是不能分辨关于请求的任何关系的I。那些信息存在于 RequisitePro 模型。

Eclipse 中 JFace Tree Viewer 的回顾

在 Eclipse 中,您可以使用许多不同的可视化技术。其中最简单最有力的是 JFace Tree Viewer。任何您看到 Eclipse 中表达的等级关系时,都会看到一个 Tree Viewer,比如 在IBMationalroject Explorer 中,在 Eclipse 继承等级中,以及其它很多时候。

您已经完成了您在 Tree Viewer 中展示的组件的调节装置。一个树中的最高节点是由 Tree Viewer’s Content Provider 得 getElements 程序提供的。子节点是由 Content Provider 的getChildren程序提供的。 The icons and text that are shown in the Tree Viewer 中显示的图标和文本是由 Label Provider 的 getImage 和 getText 程序提供的。

您将怎样去实现它

到目前为止,在 IBM Rational 的一个产品中(比如, IBMationaloftware Architect, Rational Software Modeler,IBMationalystems Developer 等等--简单地说,我们只需要使用 Rational Software Modeler 来代表这套建模产品继续向前发展)应用这个扩展性最简单的方法是使用一个插件。

您可能已经注意到 Eclipse 工作平台扩展的方式都是通过使用插件。也就是说,如果您想要一个新的菜单,一个新的编辑器,一个新的视图等等,您都需要执行一个插件。

然而,在 Rational Software Modeler 中,这个插件性能可以让您同时执行它自己的和 Eclipse 的 API (只要您不修改这个现存的工作平台)。 您可以通过使用插件迅速测试您的想法。

提示:
由于插件与运行着的 Eclipse 工作平台式相互关联的,因此当您正构建插件时,正如您所想要的那样不需要重新引进一个特殊的运行时间工作台。

更多的好消息:如果您在您的插件设计中十分小心,您在创建插件时将会平衡所有的工作,万一您做出来某种决定,就一直做下去,将您的新的创造添加到您的 Eclipse 工作平台中。

在这个演习中,您将使用一个插件来创建一个 Tree Viewer。一旦启动,它将获取 RequisitePro Requirement Explorer (RequistePro Eclipse集成) 中挑选的请求并在 Tree Viewer 中显示。然后,当您询问这个问题,“谁会依赖于我”时,您将执行 Tree Viewer 的 Content Provider 的这个getChildren程序。对于请求,您将找到跟踪到那些请求的必要条件。

如果您遇到一个模型元素代理请求或者一个直接连接着模型元素(先前描述过它的特性)的请求,您需要将这个模型元素链接到那个代理或者直接请求,然后为那个在直接关系中把模型元素当作供应者的源元素寻找模型元素。 (在某种意义上,这是请求跟踪关系的建模等价物。)

的确,这听起来很复杂,但是如果您一步一步地来,将会变得十分清晰而简单。

创建并配置您的插件项目

  1. 因为您将在 Modeling 透视图中工作,那就要提前将您的屏幕设置为这个透视图并开始,这对您的插件开发很有利。
  2. 同样,打开您的 Requirements Explorer ,因为您在开发这个插件时将与 RequisitePro 一起操作。

图 1. 到 Requirement Explorer 的屏幕路径
图 2. Project Explorer 视图

  1. 现在,只是为了更好的开发,您将使用这个默认的与 RequisitePro 一起装载的样例需求项目。双击 Open Requirements Project 文件夹并导航道(代表性地):
    C:Program FilesRationalRequisiteProsamplesLearning_Project-Use_Cases
  1. 打开 LEARNING – USE CASES.RQS

当您在您的测试需求之间设置可追溯性时,您稍后在在这里将会使用 RequisitePro 工具一起工作。

  1. 创建一个插件(参见图 3)。

图 3. 创建一个新的插件项目
图 4.为您的插件项目命名

  1. 点击 Finish

Project Explorer 中,屏幕显示的应该如您在图 5中所看到的那样。

图 5. Updated Project Explorer 视图
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

创建一个样例插件

现在您已经拥有一个插件项目并且将它配置完全,您已经准备好创建这个插件了。

  1. 您可以使用这个插件向导使它变得更简单(请看图 6)。

图 6. 为创建插件选择向导
图 7. 选择一个插件模版

  1. New Pluglet > Create a pluglet 视图中:
    1. 通过在 Package 栏中输入路径给它一个程序包。
    2. 通过在 SourceName 栏中输 TraceView,为它适当地命名。(请看图 8)。

图 8. 为这个插件键入包信息
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

运行这个插件并对它进行测试

如果之前您还没有运行过插件,那么您可以用以下三种方式中的任意一种来运行:

  • 通过选择插件本身(在这种情况下 TraceView.java
  • 弹出菜单 中,选择 Run as ,然后选择 Run as pluglet
  • 工具条 中(参见图 9)

图 9. 选择您想要运行的插件
图 10. 创建一个新的 Tree Viewer 的 Traceview.java 代码的屏幕显示

注意这些类中有些是不可见的。

  1. 调用 Source: Organize Imports 行为,当有提示时确保您选择了这些类中的 SWT definition 。(这个行为会在您的插件前端自动安装适当的输入声明。) 也就是说,Point 应该解析为 org.eclipse.swt.graphics.Point ,那也是唯一含混不清之处。
  2. 保存并尝试运行这个插件。您应该可以看到图 11所显示的内容。

图 11. 在这个阶段运行插件的结果
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

注意:

  • Tree Viewer 应该解析为 org.eclipse.jface.viewers.TreeViewer
  • Tree 应该解析为 org.eclipse.swt.widgets.Tree
  1. 保存您的插件,再次运行它。您应该可以看到 Trace View Prototype 视图,如图 12所示,但是还没有输入项。

图 12. 运行这个插件之后的 Trace View Prototype 视图
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

注意 TraceContentProvider 和 TraceLabelProvider 现在并不存在 — 那是您下一步的任务。

Create the Content Provider class

  1. Project Explorer 中的 com.ibm.field.traceview 包裹中创建一个新的类,并用它执行 org.eclipse.jface.viewers.ITreeContentProvider。 (请看 图 13。)

图 13. 创建 Content Provider
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

按照现在的情况,这个 Content Provider 并没有提供任何事物,但是您要对此进行转换。Content Provider 的 getElements 程序是您要使用它来开始的程序之一,并且您会将从 Requirements Explorer 中选择的需求作为这个树的根元素。

  1. 修改 getElements 程序并表现它,如列表 7所示。

列表 7. 修改 getElements 程序的代码
 

注意:

  • Iterator 解析为 java.util.Iterator
  • List 解析为 java.util.List

创建 Label Provider 类

现在您已经有了提供的 Tree Viewer 所需的基本内容,是创建 Label Provider 的时候了。

  1. 创建一个可以扩展 Label Provider 和执行 com.ibm.field.traceview 中 ITableLabelProvider 的新类。
  2. 调用它 TraceLabelProvider (请看 图 14)。

图 14. 创建这个 Label Provider
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

  1. 那是一个很好的开始,但是当为了一个特殊的条目,Tree Viewer 需要栏目文本时,您需要提供一些内容,而不仅仅是一个 值。

注意:

  • Content Provider 中,您要提供RpRequirements(请看 列表 9)。因此,至少提供一个值得考虑的框架执行也是很有意义的。
  • Tree Viewer 中,您确实在执行有些开发人员所称的 表格树 — 也就是,一个树,但是它有表格一样的专栏。当您获取这些内容和提供与那个树的栏目中相关的图片和文本时,要认真考虑那些栏目。

列表 9. 在 Content Provider 中提供 RpRequirements 的代码
 

当您改进的时候可以获得一点兴趣。

  1. 保存您所有的操作,选择一对需求,然后再次开始运行这个插件。

您所看到的应该类似于图 5。

图 15. 运行这个插件以后 Updated Trace View Prototype 的结果
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

它有利于为这些种类的助手程序创建有效的类。

  1. 创建一个新的类,并称它为 TraceUtil。
  2. 然后在上面添加这个程序。
  3. 现在,在您的 Content Provider 的 getChildren 程序中使用它。默认的 getChildren 代码看起来应该如列表 11所示。

列表 11. 默认的 getChildren 代码
 

  1. 您需要提供一个特定请求的子请求,因为这些是您的树中追溯一个特定请求的必要条件。为了达到这一目的,可以修改 getChildren 代码使它看起来如列表 12所示。

列表 12. 修改这个 getChildren 代码来详细说明下一个层次的目标
 

  1. 现在可以尝试运行这个插件,然后您将看到这个子层次的请求,如图 16 所示。 (也就是所说,只要有实际跟踪被选择请求的必要条件。)

图 16. 跟踪最新的 Trace View Prototype 视图来显示子层次的请求
在您的开发项目中使用 IBM Rational Software Modeler 和 IBM Rational RequisitePro 可视化跟踪能力...

注意:

  • URI 应该解析为 org.eclipse.emf.common.util.URI
  • Model 应该解析为 org.eclipse.uml2.uml.Model.
  1. 现在您需要从这个请求中获得一个 AssociatedElementUri 特性的值 — 另一个有效功能(列表 15)。

列表 15. 获得 AssociatedElementUri 值的代码
 

来源:iteye_8595

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2009年8月17日
下一篇 2009年8月18日

相关推荐