UML工具简介

来源:百度文库 编辑:神马文学网 时间:2024/05/26 17:53:00
作者:
UML的本质是由一系列的图构成的,你能够在一张纸上用手画出它们,但是对设计系统来说,在纸上画UML图并不是一个好办法。软件的应用简化了设计中图表绘制的任务。同时,因为是采用电子格式设计,彼此之间的合作也更加容易。另外,常规的任务一般都通过UML来自动化,在设计软件应用时采用UML工具就成为了首选。
UML工具应具有的特征
这就带给我们一个很重要的问题,那就是应当如何正确地寻找一款合适的UML工具?
因为UML工具最重要的用途就是能够画图,所以首先也是最重要的就是,我们应该明确UML工具能够画何种类型的图。但是,能够画图是我们期望从UML工具得到的所有吗?比如,你用类图所画的图是否能够完美地生成实际的Java类或C++类的源代码。
让我们来看另一种情况。假设给你一系列包含很多类的源代码文件,让你通过这些代码找到所有类是如何相关联的,这可能是一个噩梦。但UML工具就能通过提供一些特征的支持,使此事情变得简单。现在,让我们从技术方面来定义这些特征:
◆支持UML表:UML工具应该能够支持组成UML的9个表。你应该寻找一种工具支持能够画用例,设计比如类表和对象表的静态视图表,定义比如顺序图、活动图、状态机图、合作图、组件图及配制图的动态视图表。
◆正向工程技术:一种UML工具不应该只是一种图的描述工具。因为由表定义的系统的 结构要由开发者翻译成实际的源代码(类),为此UML工具应能够产生类的源代码为开发者的翻译提供方便。开发者能够使用这种“桩代码”经过填写成为源代 码,这种自动产生源代码的特性称为正向工程技术。由UML工具支持的正向工程技术应该是面向一种语言或者是一组语言的。如果你是Java开发者,必须确保 所使用的UML工具能够支持Java语言。同样的,如果你是C++开发者,必须确保所使用的UML工具能够支持C++语言。
◆自动更新工程技术:自动更新工程技术实际上是正向工程技术的反向过程。在自动更 新工程技术中,UML工具负载应用软件或系统的所有文件,确定各种类之间的依赖性,更重要的是随着类之间关系的改变,应用软件结构就会自动重构。自动更新 工程技术通常是高端的UML工具所提供的特征。
◆双向工程技术:正向工程技术和自动更新工程技术从本质上来说是单向的活动:接受 所有的输入和产生需要的输出。然而,双向工程技术扩展了这些特征。在软件设计里有一个重要的规则是:没有任何设计是始终不改变的。这个规则不但适合小的开 发系统,同样适合于大的开发系统。在开发中,在UML模型中定义的结构确实需要通过改变来适应在实施过程中物理方面的不同,这是在设计过程中没有考虑到 的。将设计的系统与源代码的改变保持一致这将变得很困难。双向工程技术使得UML工具能够随着软件代码的改变,设计的模型也能同步改变。
◆文档编制:文档编制是构成UML工具所必需的。软件设计本来就是一个抽象的过 程。除了一少部分语法和语义范围内的规则,没有其它的规则可言的。如果某些事后的原因不能够对设计的软件进行很好的存档,那么架构师设计软件的想法过程可 能会丢失。当大型的系统需要维护时,却没有一个线索知道这个子系统为何用这种方式设计,这是很痛苦的。因此,UML工具必须能够为设计者的设计想法在图中 提供比如注释或评论的格调的文档编制。除此之外,UML工具应该能够支持不同设计图产生的报表/列表。
除了上面的特征,我们也应该定义几种在UML工具中有用的几个特征。
◆版本控制:我们想要的UML工具一个非常重要的特征是,一个完整的版本控制机制或 者说是和一个标准的版本控制系统的兼容性。配置管理是开发软件系统过程中一个重要的环节。鉴于软件设计是软件生命周期很重要的一个环节,维护系统设计的版 本是我们期望UML工具所具有的。当缺少版本控制的直接支持时,设计者就有责任维护设计的版本。
◆协作建模环境:企业级系统是庞大的且它们的设计是相当复杂的。当设计复杂的系统 时,有不同的团队参与且在平行地同时设计不同的子系统。这种协作设计就需要UML工具能够很好的同步协调。UML工具能够为协作建模环境,提供不同版本的 不同支持。协作建模是UML工具所具有的很好的特征。
◆能够和常用的集成开发环境集成:随着创建软件系统方法的重复使用,使得保持系统设计和开发代码的同步变得很困难。因此,如果UML工具能够提供和常用的集成的开发环境集成,这将变得很有用处。这个特征使得UML工具能够随着集成开发环境中源代码的更改而更新。
◆测试脚本的产生:用UML工具设计的系统或者子系统也会代表功能方面的内容。因此除了产生“桩代码”,此工具也应该能够产生测试脚本,用来测试类所具有的功能,这将会变得有用处。
◆模型—视图—控制器建模:模型—视图—控制器的架构逐渐成为企业级软件应用的架构 标准。因此,如果你设计n层的、面向Web的企业级应用,所使用的UML工具应该能够支持MVC架构。可以支持MVC架构建模的UML工具使得组织、分清 设计中的元素变得更加容易。从长远来看,这将有助于提高模型的可读性。
流行的UML工具
下面我们将列出比较有影响力的UML工具的商家。请注意下面的列表并没有任何对UML工具进行排名的意思。
◆Rational Rose: 如果不提及由Rational软件公司开发的Rational Rose建模工具,那就无需考虑UML工具的完整性。Rational Rose(Rose代表“Rational Object-oriented Software Engineering”)对UML来说,是一款可视化的建模工具。它有不同的版本来满足不同的需求。
Rational Rose提供上面我们谈到所有的特征。除此之外,Rational Rose也可以支持在同样的环境下进行数据模型的设计。Rational Rose更有趣的特征就是能够将UML中的图作为网页和图片发布。这就使得你能够在不安装Rational Rose的情况下分享你的应用设计。
◆Together Control Center:由美国的Borland 公司开发的Together Control Center(源于Togethersoft)是一款可视化的UML建模工具。Together Control Center支持UML图、MVC建模、正向工程技术和自动更新工程技术,以及双向工程技术,并且可以集成到比如IBM WebSphere Studio的集成开发环境。它不但支持文档编制,并且可以支持协作建模环境。Together Control Center的另一个特征是pattern repository。pattern repository使得经常使用的图和设计形式能够在建模中重新使用。它还支持Rational软件统一开发过程和极限编程方法等。
◆Poseidon:源于Gentleware的Poseidon在 ArgoUML开源软件中有其坚固的根基。作为开源的ArgoUML建模工具是一款实用的工具,包含全部UML特征的并且可以免费获得。 Gentleware已经采取措施使得ArgoUML成为一款很好的建模工具。使用Poseidon不同的格调来满足不同的需求。
Poseidon通过使用单一用途的插件来支持正向技术和自动更新技术以及文档编制。Gentleware并没有忘记它的开源的特性,因此,为个人软件开发者免费提供UML Community Edition 1.5的Poseidon。
UML工具与集成开发环境
UML工具一个很有意义的特征是前面部分我们提及到的双向工程技术。为使双向工程技 术变得有用,我们需要UML工具能够与IDE集成。UML工具与IDE的集成使得开发人员能够真正地从双向工程技术中得到益处。在IDE中应用程序代码的 任何的改变,会立即在UML工具中的建模中得到相应的改变,反之则依然。
市场上的有相当多的UML工具能够与比如IBM的WebSphere Studio、Borland的 JBuilder、WebGain的Visual Cafe、Sun的Forte集成。比如,Rational Rose(Java版本)提供所有流行的IDE的集成。Together Control Cente有某一个特定的版本可以与IBM的WebSphere Studio集成。(作者:Mandar Chitnis, Pravin Tiwari & Lakshmi Ananthamurthy 翻译:林艳芹)