UML软件工程组织

Rational XDE介绍
王辉 (huiwang_290@hotmail.com) 2004 年1月 来源:IBM

前言:

软件开发经过了几十年的发展,从最初的汇编语言发展到高级编程语言,从结构化的编程语言发展到面向对象的编程语言,目前应用最为广泛的面向对象的编程语言不外乎 JAVA 、 C++ 和 Delphi 等等。与此同时软件开发的方法也由过去的结构化的编程发展到了面向对象的软件分析与设计、面向对象的软件编程。今天面向对象的思想和方法已经渗透到了软件开发生命周期的各个阶段。统一建模语言(UML)的诞生和发展,更加推动了面向对象方法在软件开发中的应用。掌握面向对象的思想和理论,运用合适的面向对象的编程语言和统一建模语言(UML),我们可以设计和开发出可用性更好,扩展性更强,结构更加合理和更加健壮的软件系统。但在当今经济高速发展的形势下,企业要对市场的变化作出更快的反映速度,企业要求更加快速和低成本的开发和升级业务支撑系统。这种情况下就要求软件开发的生产力要不断的提高。生产力的提高必然要依靠有力的生产工具给予支撑。而目前市场上绝大多数的软件开发相关的工具都是专注于软件开发过程中的某一环节上,如在软件程序开发上,有IBM WebSphere Studio,它可以加速JAVA 、J2EE程序的开发,有Microsoft Visual Studio .NET 可以加速 .NET平台应用的开发。在软件分析和设计上, Rational Rose提供了良好的支持。在软件的需求开发和变更管理上IBM Rational软件也有很好的工具来支持。这些工具在各自的方面很出色的帮助了开发人员大幅度的提高了生产效率,但不同环节之间却一直保持者相对独立的状态。IBM 的5大软件品牌家族中的 Rational 软件产品家族为广大软件开发人员提供功能强大的,基于开放标准的,将软件开发生命周期中的各个环节无缝集成的应用程序开发平台――Rational eXtended Development Environment,简称 Rational XDE。

软件开发面临的挑战

虽然软件开发已经经历了多年的发展,在过去的很多年中已经出现了一系列的开发技术和方法, 并且这些技术和方法也使软件开发变得更加快速和方便. 但软件开发仍然是一项非常复杂和困难的工作.我们首先来看看当前的软件开发都面临着哪些挑战:

技术的复杂性:

计算机和软件在各行各业的广泛应用,促进了软件技术的不断发展,为了满足企业的不同需要产生了多种的技术框架和规范,比如分布式计算架构就有想J2EE, .NET ,CORBA 等不同的技术实现标准和编程模型. 同时各种软件开发的方法论和过程也层出不穷,象Rational统一过程(RUP),极限编程(XP)等.我们需要根据项目的实际情况来选择和定制相应的开发过程.。系统之间的整合也是软件开发变得更加复杂,我们需要将建立在不同技术和架构之上的系统整合在一起,需要使用各种集成技术和工具.

开发人员的技术能力:

如果你是一个开发人员或项目经理,你可能会经常的感觉到自己或项目中的开发人员所掌握的开发技能并不能够满足项目开发的需要。 造成这种现象的原因在于软件开发技术的多样性和复杂性。一个人不可能在有限的时间内,将大部分的软件开发技术都学会. 实际上每一个开发人员都在不停的学习新的技术知识,然而技术的更新是如此的快速,而开发人员往往又面临着十分繁重的开发压力,这就给开发人员学习更多更新的技术带来了更大的困难。

业务结果和投资回报:

任何的软件系统都是为业务而服务的,软件的投资者必然会对软件系统提出一系列的要求,包括系统可靠性,系统要有高质量,系统要能够对市场的变化作出快速的响应,系统必须提高使用者的工作效率,系统还要有足够的灵活性以应变将来需求的变化. 这一切的要求都是为了一个最终的目的 -业务流程得到改进,实现投资回报。投资者所关心的这些方面是软件开发中的巨大挑战。

资产重用与集成:

企业中通常存在着不同硬件平台,不同操作系统,建立在不同架构之上的业务系统,而这些系统支撑着企业业务的运作。 这就要求当在企业中构建一个新的系统的同时必须考虑到新系统与已有系统进行有效集成的问题。这样才能使企业原有的重要资产得到有效的重用,从而保护企业的已有投资. 而异构系统之间的集成又是一项非常复杂的工作。而对于软件开发商而言资产的重用是及其重要的,如果每一个项目所产生的结果都可以为以后的项目所用,将大大的提高软件开发的效率和质量,从而提高软件开发商的核心竞争力.。但要做到软件资产的重用需要从系统分析、设计、编码、测试和文档等诸多的方面花费更多的时间和精力。 而这与快速的系统交付又会产生矛盾.

以上就是当今软件开发所面临的主要挑战,而这些挑战最终会转化成对开发人员的压力.。实际上开发人员目前已经非常努力的在面对这种矛盾,频繁的加班就可以证明这一点。 但这样努力的工作并不表明就能够满足投资者和软件开放商的要求。在这样的情况下,开发人员所需要的是一种能够帮助他们大大提高软件开发效率,大大提高软件质量,可以方便的生成和使用可重用软件资产的工具。 Rational XDE就是以此为目的产生的。

什么是 Rational XDE

Rational XDE 是 IBM 软件家族新成员 Rational 产品系列中用于软件开发的工具平台。Rational XDE 合并了软件分析、设计、程序开发以及自动化测试,并以IBM WebSphere Studio Workbench(IBM WebSphere Studio Workbench 是 eclipse 的 一个IBM 的商业实现,它除了拥有eclipse的可扩展框架外,还具有很多IBM 开发的商业功能) 或 Microsoft Visual Studio .NET 作为基础平台。 Rational XDE 使你能够流畅的完成软件的分析、设计、编码和测试的工作,而无需打开其他的开发工具。Rational XDE 有两个版本,一个是支持JAVA/J2EE软件开发的Rational XDE for JAVA 版本 ,另一个是支持微软 .NET平台软件开发的 Rational XDE for NET 版本。本文着重介绍Rational XDE for JAVA版本。

src=http://www-900.ibm.com/developerWorks/cn/java/l-xde/images/image002.jpg

图1 Rational XDE for JAVA 与 WebSphere Studio的关系

有人可能会问WebSphere Studio 和 Rational XDE 之间是什么关系呢? 通过图1我们可以很清晰的看到: 图1 的左下方表示 WebSphere Studio, 它是用来进行Java/J2ee开发、测试和部署的集成开发环境。WebSphere Studio 提供给不同方面的开发人员相同的用户体验,从而节省了开发人员对于熟悉工具的时间。 图1的左上方是Rational XDE,它与WebSphere Studio所关注的角度不同,它是以建模,运行时分析和自动化测试为目标的。它以插件的方式集成到WebSphere Studio 的集成开发环境中,成为WebSphere Studio的一个功能部分,在提供新的功能的同时还有效的与WebSphere Studio的原有功能进行协作实现了模型和代码同步的双向工程的特性。当Rational XDE被插入到WebSphere Studio 时,会新增加一个叫作建模(Modeling)的透视图,专门用于对系统进行建模,实现对系统的分析与设计。

Rational XDE for Java是一个非常强大的贯穿于整个软件开发生命周期的用于设计、编码、测试、团队沟通和构建文档的集成开发工具。 Rational XDE for Java 的诸多特性可以改进你的工作方式,它可以帮助你:

更有效的工作

不但允许你使用经典的设计模式,同时允许你定义你自己的模式,并且自动的验证你的软件体系结构、设计和代码模板、模型模板,从而节省你的时间和精力,并帮助你保持符合合理的标准。同时,你可以重用你累积下来的代码方案和设计模式,并且将他们与你的团队共享。

形象化所有的信息类型

你既可以使用统一建模语言(UML)进行建模,也可以使用非UML中定义的自由形式的模型。这样可以增强对软件系统的描述能力。

产生更加优质的代码

通过对UML的校验支持和针对于特定编程语言的标准检查,可以帮助你确定模型和代码的规范性。同时你可以自动的或手动的同步你的模型和代码之间的对应关系。

使共享项目信息更加容易

通过将设计和开发的工作产品作为Reusable Asset Specification (RAS)的产物,你能够将阶段性的工作产品作为公司资产进行存档,并将他们发布到本地的或共享的RAS存储库中。 另一种共享你的工作成果的方法是,使用Rational XDE Extensibility APIs将你开发的模型输出成为HTML的形式,拷贝图形到Word文档或者创建自定义的报告和表格,将这些形式的文档分发给你的同伴。

Rational XDE 的核心功能是软件开发中的分析与设计,它使用统一建模语言(UML)作为建模语言。本文的目的在于向读者介绍结合使用Ratioanl XDE和WebSphere Studio 来加快开发速度,提高开发质量,以及最大限度的释放模式的力量的特性。因此并不会对如何使用UML进行软件建模作详细的讲述。而只是在介绍使用Ratioanl XDE之前对使用UML进行可视化建模的好处和必要性作以简要说明。

为什么要进行可视化建模

我们前面已经将到过,软件开发仍然是一个非常复杂而又困难的工作。有不同角色的具有不同技术背景的代表不同人群的参与者在同一个软件系统的构建过程中,发挥各自的作用,同时还要彼此沟通与协作。而不同角色的参与者对系统的关注角度又是不同的,这就需要对系统在不同的方面进行描述与表现。例如系统的用户所关心的是系统将有什么样的功能,这些功能能不能很好的为他们服务。而系统架构人员关心的是系统的体系结构是什么样的,应该使用什么样的技术平台和开发模型。为了更好的对系统的各个方面进行描述,可视化建模是一个理想的选择。可视化建模的好处在于它能够通过简单且易于理解的图形来描述系统的各个方面。即使没有受过专门培训的人也可以非常容易的理解。UML是一种业界公认的可视化建模的标准语言。通过使用UML可以非常准确的描述系统,同时也可以很好的解决项目成员之间的沟通问题。我们知道不同技术背景的人之间进行沟通是很困难的,让一个程序开发人员去理解企业的业务是十分困难的,但为了构建满足企业需求的系统,开发人员必须理解系统的需求。使用UML对系统需求进行建模,通过用例(use case)来表达系统应该具备的功能。开发人员可以完全理解UML的表示方法,这样开发人员就可以准确的理解需求人员的分析结果。

建模也可以很好的将复杂的系统分解成相对简单的部分,同时建立不同部分之间的关联,这样就可以非常有效的管理系统的复杂性。有利于系统开发过程中的变更与跟踪,使系统在需求,设计,代码之间保持良好的一致性。如果在整个项目团队中都使用UML,并且项目成员使用了同一种UML工具,这样就消除了由于工具之间的难于集成所带来的麻烦。

UML简介

这里只对UML作简单的介绍,通过对UML中七种图(用例图、类图、序列图、状态图、活动图、组件图和部署图)的介绍讲述他们的用途。如果您对UML已经十分熟悉,您可以跳过这部分。

用例图

用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括角色(也就是将与系统交互的人类)与基本流程的关系,以及不同用例之间的关系。用例图一般给出了用例组--或者是整个系统的全部用例,或者是一组分开的具有相关功能(例如,所有用户管理相关的用例)的特定用例组。

类图

类图显示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。类图可用于显示逻辑类,逻辑类通常就是公司业务人员所谈及的事物种类。类图还可以用来显示实现类,实现类就是程序员通常处理的事物。实现类图或许会与逻辑类图显示一些相同的类。然而,实现类图不会使用相同的属性来绘制,因为它很可能具有对诸如Vector和HashMap这种事物的引用。

序列图

序列图显示特定用例(甚至特定用例的某一部分)的详细流程。它们几乎是自描述的,并且显示了它们的序列中不同对象之间的调用关系,同时可以在很详细的级别上显示对不同对象的不同调用。序列图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的对象实例。

状态图

状态图对某个类可能所处的不同状态和该类从一个状态转换到另一个状态进行建模。有人可能会争论说每个类都有状态,但不是每个类都应该有一个状态图。只有哪些有受关注的状态的类(也就是说,在系统活动期间具有三个或更多潜在状态的类)才应该建模。

活动图

活动图显示在处理某个活动时,两个或者更多类对象之间的过程控制流。活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。根据我的经验,活动图最适合用于对较高级别的过程建模,比如公司当前在如何运作业务,或者业务运作看起来如何。这是因为与序列图相比,活动图在表面上是非技术性的,而有商业头脑的人们往往能够更快速地理解它们。

组件图

组件图提供系统的物理视图。它的用途是显示系统中的软件对其他软件组件(例如,软件库)的依赖关系。组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次上显示。

部署图

部署图显示系统将如何物理地部署到硬件环境中。它的用途是显示系统的不同组件将在何处物理地运行,以及它们将如何彼此通信。既然部署图对物理运行情况进行建模,系统的生产人员就可以很好地利用这种图。

上面我们已经讨论了目前软件开发人员所面临的各种挑战和压力,也介绍了为什么要进行可视化建模以及UML的七种核心图。下面我们来看一下Rational XDE是如何为软件开发人员提高效率,减轻压力的。我们将从以下开发人员所面临的压力方面进行阐述:

1. 开发工具的多样性
2. 代码与设计之间缺乏一致性保障
3. 学习UML是困难的
4. 软件重用
5. 文档化
6. 开发效率低,软件质量不能保证

开发工具的多样性

我们首先来看一下传统的开发过程中会用到哪些工具。需求人员使用需求开发的工具产生软件的需求,设计人员使用分析设计工具(如 Rational Rose)产生软件的设计,编码人员使用象Websphere Studio等开发工具开发出软件的源代码。我们可以看到由于在软件开发的不同阶段使用了不同的工具,而在当前的项目中往往一个开发人员要扮演一个以上的角色,比如一个开发人员既要负责某一模块的设计,又要对这个模块进行编码。同时这个开发人员可能还要使用需求开发工具来浏览软件需求。因此一个开发人员需要学习使用多种工具。而学习使用一种工具又是非常费时费力的。Rational XDE为您消除了学习多种工具的烦恼。如果你正在使用WebSphere Studio 或 Eclipse ,你就可以在其上安装Rational XDE插件。当你安装了Rational XDE插件,你将可以看到在你的WebSphere Studio或 Eclipse中多了一个建模(Modeling)菜单。同时你会发现在透视图选择对话框多了一个建模(Modeling)透视图,见图2

图2
图2

有了Rational XDE,项目中的开发人员可以使用同一种工具进行软件的分析、设计和编码了,省去了很多学习其他工具的时间。

代码与设计之间缺乏一致性保障

开发人员经常会遇到这样的问题:我的代码和设计出现了不一致的现象。造成这种问题的原因在于代码与设计或者说是代码与模型之间没有一个自动同步的机制,只能靠开发人员的脑袋来进行同步,这势必会有遗漏和错误。在传统的软件开发方式下,设计和编码使用不同的工具,这种同步就更是难上加难了。Rational XDE的出现给广大软件开发人员带来了解决这个问题的灵丹妙药。Rational XDE提供了一个叫做双向工程的特性,使代码和设计(模型)可以进行自动的双向同步。也就是说当你修改设计的时候,你的代码也会相应的自动发生改变。同样的道理,当你的代码中出现了结构上的变化,相应的模型也会自动的发生变化。

我们通过一个简单的例子说明Rational XDE同步的用法。

步骤一:创建建模项目

我们的例子是按照先有模型再有代码的方式。你也可以先编写代码再产生模型,但这并不是被鼓励的,只有对以往的只存在代码没有设计文档的,或希望将原有的非UML设计装化成UML设计模型时,才会用到先有代码,然后产生相应的设计模型的做法。

首先打开文件菜单,选择新建项目,会出现新建项目对话框。见图3

src=http://www-900.ibm.com/developerWorks/cn/java/l-xde/images/image005.jpg
图3 Rational XDE 新建项目对话框

在对话框的左栏中选择Modeling,在右栏中选择Java Modeling Project。按下一步,输入项目的名字,我们这里输入Test,然后按完成。这时你将会得到一个普通的Java建模项目,这个项目的创建包括两个部分-Java项目的内容和Java建模内容。你可以通过Java透视图来查看Java项目所包含的文件,类路径,引用的Java包等。通过建模透视图可以看到项目模型的结构。

如图4 XDE 为我们创建了两个包-jdk_min 和Java Code Model模型。 jdk_min是XDE为你缺省提供的,因为我们创建的是一个普通的Java建模项目,所以缺省的是一个迷你的JDK逻辑模型,你可以引用其中的任何的类或包元素。在包Java Code Model中你可以定义自己的逻辑元素,并建立各元素之间的关系。

步骤二:创建模型

在这个例子中,我们只是简单的定义两个类和他们之间的关系。我们定义一个名为 Customer的类,它具有姓名,年龄,性别和职业信息等属性,职业信息是一个复合属性,它包括公司名称、职称等,因此我们另外定义一个名为BusinessInfo的类来表示。

我们将这两个类放到名为user的包中。如果你使用过Rational Rose的话你将非常轻松的完成这个步骤。对于一些初学者和对Rational Rose不熟悉的开发人员,这里提供详细的操作过程。鼠标右键点击user包,出现如图5菜单,选择Add UML菜单项下的Class,输入Customer作为类名。然后鼠标右键点击Customer类,选择Add Java菜单项下的Field为Customer类添加属性。我们添加两个属性name和age,name为String类型,age为int类型,将两个属性设置成private,并让XDE自动产生属性的get和set方法。

步骤三:代码和模型同步

见图6,我们可以看到图的左边部分是模型浏览器(Model explore)视图,在这个视图中我们可以看到Customer类的图标,以及它的属性和get/set方法。我们还会发现在Customer类图标下有一个名为Customer.java的组件图标,它是由XDE自动生成的。在XDE中有两种同步方式,一种是自动同步,另一种是手动同步。自动同步是指XDE按照一定的时间间隔同步模型与代码的变化。手动方式则是在对模型或代码进行改动时先不进行同步,当你认为应该同步的时候,通过按下同步按钮,XDE才将所有的改动进行同步。你可以在Websphere Studio的窗口菜单中选择首选项,并在首选项窗口中选择Rational XDE下的Code-Model Synchronization项对同步方式进行设置。

我们回过头看看WebSphere Studio右边的部分,右边分为上下两部分,上面显示的是类图,下面是类的Java代码。现在我们看看代码和模型的同步效果。在图6中我们看到Customer类有一个名为name的属性。现在在Customer的代码中将name改为fullname,看看会有什么样的事情发生。由于我使用的是自动同步,当我将name改为fullname后,按下Ctr-S键保存时,类图中的Customer的name也相应的变成了fullname,相应的getName和setName也变成了getFullname和setFullname. 同样如果你在模型中作了任何改变,代码中也会有相应的变化。

src=http://www-900.ibm.com/developerWorks/cn/java/l-xde/images/image010.jpg
图4 建模透视图

学习UML是困难的

UML是一种非常优秀的可视化建模语言,但UML本身有着非常复杂的元素和语义,这使得学习UML还是有一定难度的,对于工作压力本来就很大的开发人员来说就更加困难了。Rational XDE的模型与代码同步的特性就很好的解决了这个问题。从前面对模型与代码同步的演示中可以看到,当你的代码变化时,模型中的相应元素也随之变化。这对不熟悉UML的开发人员意义重大,当你编写代码时,你就可以立即看到你的设计,从而实现了在工作中学习。这使得开发人员避开了学习UML的困难学习曲线,节省了时间,提高了效率。

软件重用

软件的重用一直以来都是软件开发追求的重要目标之一。软件的重用可以缩短软件开放周期,提高软件质量,是软件开发企业最重要的资产。但是软件的重用受到很多因素的影响,比如软件设计的质量,项目的交付时间,软件开发过程个阶段工作产品的管理及规范都在某种程度上制约了软件的重用。软件的重用可以分为多个层次:代码级重用,组件级重用,设计的重用,软件架构的重用以及解决方案的重用。对于开发人员来说更加关心代码级重用,组件级重用,设计的重用和软件架构的重用。Rational XDE提供的重用的机制,可以实现各个层次的软件重用。这个章节会向大家介绍Rational XDE的软件重用的机制。Rational XDE的软件重用形式是基于可重用资产规范(Reusable Asset Specification)的,因此我们首先有必要向大家介绍一下可重用资产规范(Reusable Asset Specification),简称RAS。RAS是Rational XDE进行软件重用的机制和载体,所有的可重用资产都要符合RAS。

RAS 资产简介

Reusable Asset Specification (RAS) 提供了一种标准的方法用于打包和释放一系列相关的文件。这些文件或工作产物的集合被称为asset(资产)。RAS资产简化了与其他用户共享过程的解决方案,因为大家使用方便的一致的方法来组织,文档化,共享,存储和恢复方案。RAS资产在尺寸,复杂性和目的上可以是千差万别的。RAS资产的范围是资产的制造者根据客户的需要制定的。我们来看一个RAS资产的例子,一个资产包含一系列的引用文件,这些文件可以包含源程序的代码片断,文档等。资产也可以被设置为网络资源定位。另一个使用RAS资产的例子是创建一些了的存贮设计模式和代码模板的资产。这些RAS资产包含通用的代码结构和模型。应用他们可以快速的产生设计和代码。更加复杂的RAS资产能够被设计包含用于创建子系统的软件架构,以适应系统需求变化的需要。这样的一个RAS资产可以作为整个应用的基础。

可重用资产规范(Reusable Asset Specification)

RAS资产的价值依赖于标准化和一致性,和UML一样RAS已经成为另一个业界的标准。RAS在装配,组织,存储和文档化RAS资产提供指导,并且Rational XDE提供了用于创建,文档化、测试和打包RAS资产的工具。创建RAS资产的主要目的就是重用,XDE工具允许我们在本地和远程存储库中查找和归档资产,以实现资产的共享。

RAS Profile

作为RAS资产的创造者,当你被提示为RAS Profile提供数据时,你应该提供关于你的RAS资产的主要信息。 这个信息可以帮助客户方便的找到所需要的资产。 这些信息可以是作者,用户,描述和相关的资产名,他们可以作为查询字符串的比配条件。RAS Profile也可以使维护资产打包的一致性规范化。 当前存在两个额外的Profile,一个用于创建Web服务,另一个用于创建组件。

RAS资产文件结构

Rational XDE 创建一个ZIP归档文件来保存资产的部件。这个文件以.RAS作为扩展名,其中有一个清单文件 rasset.xml,清单文件中记录了所有存储在zip文件中的文件和如何定位他们的说明。

存储和共享RAS资产

XDE提供了两种缺省的存储库用于存储和访问你的资产文件:本地存储库和工作区存储库。XDE用户可以共享他们的本地存储库,假如访问权限可以被设定。其他的存储库可以以基于Web的方式来访问。

在了解了RAS之后我们来看看在XDE中提供了哪些资产重用的方法和如何来使用这些方法。在XDE中目前支持的软件重用方法包括模式和代码模板。你可以阅读文章《利用Rational XDE中模式的能力来促进软件的重用-在XDE中应用模式》和《利用Rational XDE中模式的能力来促进软件的重用-在XDE中创建模式》,这两篇文章讲述了如何在XDE中创建和使用模式和代码模板,希望大家能够利用Rational XDE最大限度的释放模式的能量并结合代码模板的能力,实现更好的软件重用和快速的开发。

文档化

在软件开发过程中,一个中要的工作产物就是软件的文档。软件开发过程中应该产生的文档有很多,有些文档本身就是软件资产的一部分,比如:软件的需求文档、软件设计文档、软件的用户使用说明文档等,还有一些属于过程文档,比如:项目管理计划、软件配置管理计划、变更申请单等。对于开发人员来说,他们更加关心软件的设计文档。但往往由于项目进度的压力,开发人员将更多的注意放在了代码的开发上,而相应的设计文档只是草草的完成,甚至是根本就没有时间来写文档,即便是已经为某一部分的代码编写了文档,但在版本变化后,相应的设计文档往往被忽略或忘记修改。以上的这些情况会导致,软件文档不完整、文档与代码不匹配。这样就为对软件的重用和软件的升级与维护带来很大的障碍。软件开发人员可能会说:我们也知道设计文档的重要性,也希望把设计文档写的更好,可是我们真的没有太多的时间可以花在文档上,我们所能做的是在项目交付后再将文档补齐,但由于时间久了,有些地方可能已经忘记了,所以文档的质量也不是太好。 这应该是大多数开发人员的心声。Rational XDE为广大开发人员提供了解决这种矛度的方法,我们前面已经讲过Rational XDE具有模型与代码的同步的能力,这种能力是双向的。利用这种双向同步的能力,开发人员在编写代码的同时,XDE会自动的为你产生相应的设计模型,设计模型是设计文档的核心部分,在设计模型的基础上,对模型元素添加适当的描述信息就可以产生非常规范和完整的设计文档了。而且,如果代码发生了改变,你的设计文档的相应部分也会自动的发生变化,这样就保证了文档和代码的一致性。因此Rational XDE 不但是良好软件分析、设计和构建的工具,而且还是非常好的文档工具。

开发效率低,软件质量不能保证

目前软件开发仍然是一种非常困难的工作,软件开发的效率仍然非常的低,软件的质量也不容易被保证。在这种情况下,我们需要能够帮助我们改变这种形势的方法和工具。提高开发效率和保证软件质量的方法包括:促进软件的重用和代码的自动化生成。软件的重用不但可以提高开发效率、节省开发的成本而且还能够大幅度的提高软件的质量。我们知道软件从分析、设计、编码、测试直到软件的稳定是需要经历一个十分漫长的过程的,在这个过程中将付出大量的人力和时间上的成本。如果我们的软件具有良好的重用性,它可以作为其他的软件系统的一部分被重用,那我们将节省了重用软件部分的成本。同时由于可重用软件已经是稳定的,有质量保证的,所以它可以提升整个系统质量。代码的自动化生成将大幅度的提高软件开发的效率,同时可以避免代码中的一些人为的错误,在某种程度上也提高了软件的质量。Ratioanl XDE为广大的开发人员提供了很好的软件重用和自动化代码生成的能力。你可以阅读《利用Rational XDE中模式的能力来促进软件的重用-在XDE中应用模式》和《利用Rationa XDE中模式的能力来促进软件的重用-在XDE中创建模式》来了解如何通过XDE的模式的力量来改进软件的重用和提高开发效率,保证软件质量。Ratioanl XDE的双向工程实现了代码的生成。

参考资源

利用Rational XDE中模式的能力来促进软件的重用-在XDE中应用模式 http://www.ibm.com/developerWorks/cn/java/l-xde-pattern1/

利用Rational XDE中模式的能力来促进软件的重用-在XDE中创建模式 http://www.ibm.com/developerWorks/cn/java/l-xde-pattern2/

Rational 开发者网络http://www.rational.net/

developerWorks Rational产品园地 http://www.ibm.com/developerworks/rational

developerWorks中国网站 Java 专区 http://www.ibm.com/developerworks/cn/java

关于作者
具有多年的Java开发经验,对OOAD,UML,Rational产品颇感兴趣. 你可以通过 huiwang_290@hotmail.com联系他.

版权所有:UML软件工程组织