UML软件工程组织

 

 

介绍IBM Rational Software Architect改良的可用性使软件开发变成更容易
 
作者: Kunal Mittal 出处:IBM
 

本文介绍IBM Rational Software Architect及其提供的建模能力。它通过基本视图指导初学者,并且解释了Rational Software Architect在可用性上如何支持Eclipse 3.0架构。 你将会学习该如何使用Rational Software Architect来创建简单的类图和用例图,以及该如何从类图中生成代码。 最后,它简短地谈到你如何能对代码进行一个结构上的分析。 接下来的文章将会对本篇这个介绍性的文章中提及的内容进行更加详细地阐述。

什么是Rational Software Architect?

IBM? Rational Software Architect -- IBM软件开发平台的一部分 – 是IBM在2003年二月并购Rational以来,首次发布的Rational产品。改进过的软件开发平台在集成和易用性上达到一个新的层次,这将会让使用IBM产品工作的开发者感到满意。

软件开发平台包含了好几个IBM Rational产品:

  • IBM Rational Portfolio Manager: 是一个围绕整个项目生命周期的项目管理工具,Rational Portfolio Manager有助于对项目组合投资提供实时的可见性。它允许管理者作出正确的决定。这个产品也可以用来增进不同开发团队间的协作。
  • IBM Rational Application Developer and Rational Web Developer: 这分别是 IBM WebSphere Studio Application Develope r和 IBM WebSphere Studio Site Developer 集成开发环境(IDE)工具的另一个商标。这些新产品现在
  • IBM Rational Software Modeler 和 IBM Rational Software Architect 的基础。
  • IBM Rational Software Modeler: Rational Software Modeler 是一个基于统一建模语言(UML) 2.0的工具,它允许架构设计师和分析师们创建系统的不同视图。这个工具一方面能很好的促进架构师和设计师的沟通,另一方面也能促进架构师和开发团队的沟通。
  • IBM Rational Software Architect: 这个工具允许架构师设计和维护应用程序的架构。Rational Software Architect 是本文的焦点。
  • IBM Rational Manual Tester: 这个工具允许分析人员和测试人员去创建和执行测试用例。Rational Manual Tester 是针对单元测试的。
  • IBM Rational Functional Tester: 这个工具可以用来把功能测试和回归测试自动化。
    IBM Rational Performance Tester: 这个工具可以对你的应用程序自动进行增加负载和测试性能。

因为 Rational Software Architect 是 Rational Application Developer,Rational Web Developer和 Rational Software Modeler 的父集 ,所以当你下载 Rational Software Architect,你就获得了所有这些工具。关于这些工具的更多的信息, 请访问 IBM 的 Rational 网站--见页末的 资源 小节。

Rational Software Architect 的可用性

作为 IBM Rational Rose工具的一个长期用户,我总是对它的可用性抱怨不已。然而,这次 IBM 发布的 Rational 产品,是 在Eclipse 3.0 的基础之上创建的,它不仅对你的团的中的所有技术工种(架构师,设计师以及开发人员)提供一个统一的接口,而且还允许这些工具支持 Eclipse 提供的使用特性。 (更多关于Eclipse的信息,请访问本文后面的 资源 小节) 图 1 显示了Rational Software Architect 基本的用户界面(UI)。

图1. Rational Software Architect 用户界面

因为 Rational Software Architect 是在 Eclipse 基础上建造的,你可以将 Rational Software Architect 用于Java 2 平台,企业版 (J2EE 平台) 技术。 除此之外,使用代码生成功能,这是 Rational Software Architect 的一部分,你可以把设计和画在建模视图中的 UML 图转换为代码。最后,底层的 Eclips 平台也提供强健和功能丰富的集成开发环境给开发者。

然而,Rational Software Architect 并不局限于 Java 技术或 J2EE 平台。 你也可以在需要时把你创建的 UML 模型转换为 C++ 代码。这个工具的代码生成功能可以让你很轻易产生基本的代码,然后你可以进行定制修改。这个特性允许开发人员在非J2EE平台开发时,也可以使用Rational Software Architect的建模和设计模式功能。

Rational Software Architect 的基础

本文内容非常容易上手。 我建议你一边阅读本文时,一边启动你机器上的 Rational Software Architect。如果你的机器上还没有Rational Software Architect,可以从“Trials and betas”页下载一个评估版来--见后面的 资源 小节

Rational Software Architect 引入了建模视图和几个其它视图。 能查看Rational Software Architect所有特性的是建模视图, 这是架构师和设计师创建 UML 图,应用设计模式,以及为开发人员进行详细说明的地方。还可以在这里生成代码。为了做到这些,请执行下列步骤:

  1. 启动 Rational Software Architect ,点击 File,点击 New, 然后选择 Project。
  2. 在新项目的向导中,选择 UML Project。
  3. 为这个项目键入一个名字, 然后点击 Next。
  4. 从下拉列表中选择 Blank Model 来创建一个空白模型,然后点击 Finish。

Rational Software Architect 中的视图

在 Rational Software Architec t里有几个的建模视图是可用的,如图 2 所示:

  • Diagram Navigator 允许你在一些基本模式中浏览,你也可以创建不同的图。
  • Model Explorer 功能与微软 Windows 系统的资源管理器很相似:它允许你操纵你的各个项目和建好的有用的东西。
  • Pattern Explorer 准允许你采用四组模式并在设计中使用他们。你也可以创建自定义的设计模式。 (我下一篇文章将会讨论 IBM Rational Software Architect的设计模式并且包含关于四个模式组的信息)。
  • UML Editor 是你的工作区域: 你在这个视图中创建图并与之工作。

图 2. 可用的视图

用 Rational Software Architect 进行UML建模

Rational Software Architect 符合UML 2.0 规范;使用 Rational Software Architect,你可以创建几种不同类型的 UML 图。让我们看一些你可以创建的图类型的例子。 (结构化建模指南白皮书的更多信息和链接,见本文结尾的 资源 小节)。

创建一个 UML 类图

使用类图来描述一个系统中对象类型以及它们之间的关系。对于一个单独的类,你可以定义类的名字,属性和操作。 除此之外,你可以定义类之间的关系。 了解这个过程的最容易的方法就是创建一个简单的类图。我创建了一个有一个接口和两个实现的类图。执行下面的步骤来重新创建这个类:

  1. 在 Model Explorer 中, 鼠标右键点击 Blank Model,然后增加一个新的类图。
  2. 为新的类图键入一个名字(对于这个实例,使用名字 Main。)。一个叫做 BlankModel::Main 新页将会出现(如图 3 所示)。
  3. 在 BlankModel::Main 窗囗中的任何地方点击鼠标右键, 然后增加一个新的接口。
  4. 在这个窗囗中的任何地方再次点击鼠标右键, 然后创建一个类。
  5. 重复第 4 步创建第二个类。

图 3. Blank Model::Main页

定义一个关系,指明那两个新建的类是这个接口的实现。点一下这个类的名字,你将发现在这个对话框的右边会出现上下箭头。点击一个箭头,然后点击 Create Implementation。你现在就已经在 Rational Software Architect 里创建了你的第一个类。为了看到关于你创建的类的所有有效选项,鼠标右键点击任何类,然后选择 Properties(如图 4 所示)。

图 4. 类属性

UML 到编码

现在,让我们从你刚刚创建的 UML 类图中生成代码。为了这么做,请执行下列步骤:

  1. 选择在图 3 中所显示图的所有类。
  2. 鼠标右键点击你的选择, 然后点击 Transform。
  3. 选择 UML to Java 选项。
  4. 在转换向导中,创建一个新的目标容器。

因为你原来创建的项目是一个 UML 项目,所以你现在需要创建一个 JAVA 项目来生成代码。让其它页保持默认值,然后在转换向导中点击“ Run ”。你将会在浏览器窗口的左边看到所有正在生成的代码显示出来。点一下这些代码看看怎么样。列表1显示了从 UML 中已经定义好的类生成的代码。

列表 1. 从 UML 中一个已经定义好的类生成代码

/*
* Created on Nov 20, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/

/*
* @author Kunal Mittal
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
* @uml.annotations
* derived_abstraction="platform:/resource/DevWorksProject/Blank Model.emx
* #_PnydkDsQEdmyqsBhJhf6RA%2cuml2.Interface%2cBlank+Model%3a%3amyClassInRSA"
* @generated "UML to Java
* (com.ibm.xtools.transform.uml2.java.internal.UML2JavaTransform)"
*/
public interface myClassInRSA {
}

代码到 UML

现在,让我们反过来做一下:用你的代码生成一个 UML 模型。这个过程实际上相当容易。只是创建一个空白的类图。从 Java 项目中把代码拖到这个空白的图就行了。UML 类图会被自动生成。当你执行这个任务时,请注意在这个过程和以前版本的 Rational Rose 或者 XDE 有些细微的差别:

  • 如果你的类图是在 UML 模型里,你事实上可以引用在 JAVA 项目里的源代码。
  • 你也可以从你的 JAVA 项目里来创建和查看类图。这种情况下,这些图仅仅是这些代码的可视化。

关于这个主题的更多信息,参见文章,How to migrate from code-centric to model-centric development using Rational Software Architect,列在了本文结尾的 资源 小节。

创建一个 UML 用例图

用例 是指参与者(Actor)在系统上执行的一系列操作和产生的响应。用例图 是一个反映系统中所有用例以及与它们交互的参与者的上层视图。(从本文结尾的 资源 小节中的引用,你可以阅读到更多有关用例的内容)

用例图很容易创建。 为了创建一个用例图,请执行下列步骤:

  1. 创建一个叫 Diagram1的图。
  2. 使用面板,创建一个被称为 Actor 1的参与者。
  3. 创建两个用例,叫 Use Case 1 和 Use Case 2。
  4. 点击每个用例,并将它拖到这个主角上,使它们连接在一起。

Figure 5图 5. 已经完成的用例图

图 5. 已经完成的用例图

架构挖掘

Rational Software Architect 包括了很多可以帮助你在模型或者代码上完成架构挖掘的功能,这能帮助你通过一个架构视图来理解你的模型。 图 6 显示了我创建的一个简单 UML 模型。调出图导航视图,然后展开一些属性。注意一下如何执行分析的,而且你开始看到更多关于你创建好的简单类图的信息。 左边的面板显示了那些架构挖掘。看看 Object-oriented Patterns 下的部分: 你会看到在UML类图中表述的抽象类和继承树。

图 6. 在一个 UML 模型实例的架构挖掘

架构挖掘特性非常重要,因为它对于洞察代码的总体质量非常有价值。它能帮助你识别出潜在的问题区域和结构上的问题。 尽早识别和解决这些问题能最后获得一个更可预期的,强健的,和可维护的产品(更多的信息见本文结尾的 资源 小节)。

总结

Rational Software Architect 是一个基于 Eclipse 的工具,它支持开发者和架构师获得 Eclipse 平台可用性功能。 然而,Rational Software Architect 超越了一个典型集成开发环境的功能 -- 它提供了丰富的建模、架构设计和挖掘的能力。 本文中,我已经向你介绍了关于如何使用 Rational Software Architect 的基本概念, 而且简要地谈到了建模场景及其不同的视图。这些信息是深入 Rational Software Architect 提供的所有建模能力的窗口。

不过,我才只浏览了 Rational Software Architect 表面上的东西。 我已经向你展示的那个建好的简单 UM L用例图,会成为在以后的文章中讨论内容的基础。在其中,你可以根据这个信息 在Rational Software Architect 中去实践一下,创建其它的 UML 图,包括序列图和协作图。

如果你是个开发者,我建议你更深入地探索 Rational Software Architect 的架构挖掘特性。这些功能非常有价值并且有助于全面提升代码的强健性和可维护性。为了真实地了解和探究所有 Rational Software Architect 所提供的功能,请考虑应用这些基本的建模能力到你的项目里。

关于作者

Kunal Mittal 是一个擅长Java技术、 J2EE 平台和网络服务技术的顾问。 他已经在这些主题上合作出版了好几部书籍。 Kunal 目前正致力于一个宏大的关于Sony 公司图像娱乐的项目。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号