本文介绍IBM Rational Software Architect及其提供的建模能力。它通过基本视图指导初学者,并且解释了Rational Software Architect在可用性上如何支持Eclipse 3.0架构。 你将会学习该如何使用Rational Software Architect来创建简单的类图和用例图,以及该如何从类图中生成代码。 {zh1},它简短地谈到你如何能对代码进行一个结构上的分析。 接下来的文章将会对本篇这个介绍性的文章中提及的内容进行更加详细地阐述。 什么是Rational Software Architect? IBM? Rational Software Architect -- IBM软件开发平台的一部分 – 是IBM在2003年二月并购Rational以来,首次发布的Rational产品。改进过的软件开发平台在集成和易用性上达到一个新的层次,这将会让使用IBM产品工作的开发者感到满意。 软件开发平台包含了好几个IBM Rational产品:
因为 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 图转换为代码。{zh1},底层的 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 图,应用设计模式,以及为开发人员进行详细说明的地方。还可以在这里生成代码。为了做到这些,请执行下列步骤:
Rational Software Architect 中的视图 在 Rational Software Architec t里有几个的建模视图是可用的,如图 2 所示:
图 2. 可用的视图
用 Rational Software Architect 进行UML建模 Rational Software Architect 符合UML 2.0 规范;使用 Rational Software Architect,你可以创建几种不同类型的 UML 图。让我们看一些你可以创建的图类型的例子。 (结构化建模指南白皮书的更多信息和链接,见本文结尾的 资源 小节)。 创建一个 UML 类图 使用类图来描述一个系统中对象类型以及它们之间的关系。对于一个单独的类,你可以定义类的名字,属性和操作。 除此之外,你可以定义类之间的关系。 了解这个过程的最容易的方法就是创建一个简单的类图。我创建了一个有一个接口和两个实现的类图。执行下面的步骤来重新创建这个类:
图 3. Blank Model::Main页
定义一个关系,指明那两个新建的类是这个接口的实现。点一下这个类的名字,你将发现在这个对话框的右边会出现上下箭头。点击一个箭头,然后点击 Create Implementation。你现在就已经在 Rational Software Architect 里创建了你的{dy}个类。为了看到关于你创建的类的所有有效选项,鼠标右键点击任何类,然后选择 Properties(如图 4 所示)。 图 4. 类属性
UML 到编码 现在,让我们从你刚刚创建的 UML 类图中生成代码。为了这么做,请执行下列步骤:
因为你原来创建的项目是一个 UML 项目,所以你现在需要创建一个 JAVA 项目来生成代码。让其它页保持默认值,然后在转换向导中点击“ Run ”。你将会在浏览器窗口的左边看到所有正在生成的代码显示出来。点一下这些代码看看怎么样。列表1显示了从 UML 中已经定义好的类生成的代码。 列表 1. 从 UML 中一个已经定义好的类生成代码
代码到 UML 现在,让我们反过来做一下:用你的代码生成一个 UML 模型。这个过程实际上相当容易。只是创建一个空白的类图。从 Java 项目中把代码拖到这个空白的图就行了。UML 类图会被自动生成。当你执行这个任务时,请注意在这个过程和以前版本的 Rational Rose 或者 XDE 有些细微的差别:
关于这个主题的更多信息,参见文章,How to migrate from code-centric to model-centric development using Rational Software Architect,列在了本文结尾的 资源 小节。 创建一个 UML 用例图 用例 是指参与者(Actor)在系统上执行的一系列操作和产生的响应。用例图 是一个反映系统中所有用例以及与它们交互的参与者的上层视图。(从本文结尾的 资源 小节中的引用,你可以阅读到更多有关用例的内容) 用例图很容易创建。 为了创建一个用例图,请执行下列步骤:
Figure 5图 5. 已经完成的用例图 图 5. 已经完成的用例图
架构挖掘 Rational Software Architect 包括了很多可以帮助你在模型或者代码上完成架构挖掘的功能,这能帮助你通过一个架构视图来理解你的模型。 图 6 显示了我创建的一个简单 UML 模型。调出图导航视图,然后展开一些属性。注意一下如何执行分析的,而且你开始看到更多关于你创建好的简单类图的信息。 左边的面板显示了那些架构挖掘。看看 Object-oriented Patterns 下的部分: 你会看到在UML类图中表述的抽象类和继承树。 图 6. 在一个 UML 模型实例的架构挖掘
架构挖掘特性非常重要,因为它对于洞察代码的总体质量非常有价值。它能帮助你识别出潜在的问题区域和结构上的问题。 尽早识别和解决这些问题能{zh1}获得一个更可预期的,强健的,和可维护的产品(更多的信息见本文结尾的 资源 小节)。 总结 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 公司图像娱乐的项目。 |