本节继续向大家介绍UML建模工具选择的标准,掌握了标准你就会选择出比较合适的UML建模工具,从而更好的完成工作,希望本节的介绍对你的学习有所帮助。下面我们一起来看一下UML建模工具选择标准吧。
健壮性(Robustness)
你的UML工具需要象岩石般坚固可靠,以防止设计期间工具崩溃而使用户的时间和生产率在不知不觉中损失,或者在模型没有备份的情况下崩溃。我们曾亲眼见过许多领先的工具因为崩溃或文件损坏而引起数小时的工作成果丢失。如果你是一位开发人员,你知道那种因“生产率高的软件”反而比粗糙的代码工具生产率要低而产生的蔑视感觉。如果你是一位经理,你会看到被要求使用一种不可靠的工具时开发人员的愤恨。
今天,健壮性常被发现于用Java实现的应用程序(JVM运行时保护)或开放源码的项目(在web范围内并行调试)。发现某种特定的UML工具是否健壮的最快方法是在comp.object等新闻组四处询问,你一定会听到许多抱怨的!
可用于此处的另一个策略可以借鉴有效率的办公应用程序,我们也推荐工具开发商采用这种策略。该策略就是让UML建模工具每隔一定时间间隔就在背后自动保存模型。
平台
为了使你在建模工具上的投资得到最大回报,请慎重地考虑工具将运行在哪种平台上。你需要为Windows还是Unix开发软件?还是二者都要?将在哪种平台上开发?
最近的各种事件一起推翻了这个神话:一流的跨平台图形用户界面还不能实现或者拥有一个"最少共同支配者"的视感。很长时间以来,这是不可能的(除了基于HTML的应用程序之外),直到最近Java的Swing用户界面的出现。但是,跨平台工具需要在Linux等常用平台得到支持,以大规模地被程序员们采用。
Sun最初几乎没有做什么事情来促进Java在Linux上的应用。但最近工业界元老们,主要是IBM,IBM保证在他们所有的硬件平台上为Linux提供无限广泛的支持,并支持Apache/Jakarta项目,IBM现正快速地在Linux上推广Java。也许因为IBM已经开始为主要的Linux厂商发放它的JDK1.1.8版本,Sun被迫支持在Linux上的全功能JDK1.2(带Swing的Java2)的发放。通过Blackdown小组的努力,这个Linux上的Java端口大部分已被完成。
迄今为止我们已经测试了一种Linux平台上基于Swing的领先Linux工具,结果优秀。但要告诫的是:128M内存是必需的。
版本更新
你需要选择一种将会不断通过修正错误、改进性能、添加新特性来进行改进的UML建模工具,毕竟你在时间和金钱上进行了一项大的投资,而且改换到另一种建模工具并不容易。
小心那些已经被大公司拥有的产品。在兑现所有期权之后,最初的开发者常常会离开公司,寻找下一次大的机会。寻找有才能的、能读懂和维护最初并非由其编码的软件复杂模块的程序员并不容易。这种场景也会出现在开放源码项目上。
如何能知道一种产品是否在改进?向销售代表询问下一版本发放的详细时间表以及该产品将来的蓝图。密切观察产品改进和添加新特性的速度。产品计划什么时候支持UML1.3?图形界面是否支持最新的流行样式?你也可以看看该公司的网站:如果产品发布和外界评论是旧的,就是可疑的。#p#
未来...
现在我们来看看对未来有什么希望。建模工具的当前成熟程度表明,工具厂商准备通过添加高级特性来使产品达到新的高度。我们希望在下一代产品中看到以下特性的出现。
集成编辑器
在模型的迭代开发过程中,将UML图表和相邻窗口的源代码匹配,是非常有效率的。支持这种视图协调的产品可以给模型设计者的工具箱添加一个额外的功能选项,以直接给建模工具添加强大的源代码编辑特性。当UML建模工具不必作为设计者的首选编辑器时,能够在代码里直接更改方法的名字或原型,并立即反映到模型中。
最想要的特性是类似emacs等流行编辑器的键盘仿真,另一个热门特性是通过改变颜色来突出语言关键字,注释等等,提高了代码的易读性。一个重要特性是在类图中选择一个类、属性或方法时跳转到匹配代码行的能力。最重要的是,编辑器应该是快速易用的。
作为变通的方法,另一种解决方案是允许建模工具和开发者喜爱的编辑器通信。例如,通过一个热键,允许建模工具从当前活动窗口跳转到伴随编辑器的匹配代码行。
自动生成
我们真正想在不久的将来看到的一个特性是,UML建模工具帮助产生交互图和状态图的能力。
工作方式是:在一个已有的程序的执行过程中,建模工具应容易生成一个追踪文件,目的是获取对象间互相传递信息时的交互。产生追踪文件后,建模工具将被用于分析该追踪文件,以发现对象交互的模式。建模工具应允许用户从一组类中选择一个来分析,然后展示被追踪文件记录的每个类唯一的一套交互,允许用户为模型选择交互。最后,工具应能够产生一张基于真实记录对象交互的顺序或协作图。
很酷吗?它并不象听起来的那样太过前卫。因为追踪技术已经十分成功地应用在帮助开发人员追捕他们的程序中性能瓶颈的工具中。这类产品一个很好的例子就是KLGroup的JProbe,用于分析Java程序的性能。
使用同样的技术自动产生状态图也是可能的。对以前描述过的顺序的修改将允许用户为状态机里的状态指定基类的名称。建模工具将追踪基类的衍生类之间的交互。从这种追踪,建模工具能够通过描绘每次被记录的状态迁移来创建状态图。
管理工具
如果你是项目经理中的一员,你最有可能想要能够估量你的O-O项目进展如何。一个应被集成到建模工具中的很好的特性是能够输出模型信息到允许你追踪项目设计和实现进程的工具中。由于它的通用性和可塑性,电子表格是实施这个解决方案的理想工具。项目管理工具也是理想的候选。
这个特性如何工作呢?在高层次,通常你想追踪的是模型中的类和负责在这些类上工作的的人。你想知道什么时候有人开始在该类上工作,完成任务到了哪种水平。在下一层次的细节上,你想要知道每个类的方法。在这一层次,你可能想要知道哪种方法已经包括在交互图中,或在实施阶段,每种方法完成了多少代码量。
要使这个特性起作用,你需要“敏捷”地更新你的项目管理信息。不象报表工具那样总是从头产生一个新报表,你只需要在第一次输出所有东西。产生初始报表后,你的建模工具应该只被要求用新信息来修改你的管理工具。根据用户需要控制的级别,UML建模工具能在输出之前展现给用户一个修改的清单。
建立一个项目管理链接的一个美妙的好处是,提供把分析和设计阶段的完成日期作为目标的能力。具体方法是通过计算进展速度,并基于完成模型所需的剩余的工作,使用这个速度来计算预期的完成日期。
度量(Metrics)
当你的项目开始成熟时,你可能需要知道你的模型的度量。度量能在一个特殊的模型的生存质量上给面向对象分析员一些即时的反馈。一些感兴趣的度量包括:类层次中的超类数量,每个类中方法的数量,每个类中属性的数量,get/set的数量,方法重载的数量,每个方法的代码行数,public、private和protected方法的百分比,每个类的耦合度(该类知道另外的类的数量),以及被注释方法的百分数。
度量可以通过一个报表界面提供,或者,更好的是,通过一个到电子表格的链接,类似于前面描述的项目管理链接。#p#
SVG:矢量图形
为达到真正的、标准化的矢量图形输出/输入功能,UML建模工具厂商即将有一种选择。W3C的可缩放矢量图形(ScalableVectorGraphics,SVG)建议是可格式化图形的一种XML语法,成熟的1.0版本规范已经进展到“最后预览”阶段(3/3/2000)。一旦被完全认可,你可以留意HTML浏览器厂商什么时候在他们的下一代浏览器中提供支持。
为什么是SVG?因为一套用这种矢量图形格式输出的UML图表可以被链接到网页上。“overtheweb”的UML设计文档的读者将能够使用这种图形浏览技术,如在浏览器内缩放和平移,来更轻松地浏览一张大的UML图表。还有,和GIF格式图形相比,这种格式将戏剧性地提高通过web加载大图形的速度。请看今天MacromediaFlash的展示在浏览器中加载是如何之快,就可以证明这一点!
为了强调GIF图形和可缩放图形在出版环境中的强烈差别,我们准备了一个模拟,通过创建包括两个类图实例的AdobePDF文件,其中一张是输入的GIF图形,另一张是矢量图形。你可以下载这个PDF文档并在AdobeAcrobat中观看。尝试放大到很高的水平如800%或1600%,然后比较GIF图形和矢量图形的结果。这个实验并非不切实际:你可能需要准备一张被缩放到一个可读性提高的水平的演示图。
下载GIF和矢量图形对比的PDF例子文件.
为了展望UML和SVG的未来,我们也准备了一个使用SVG在浏览器中显示类图的演示。为了观看这个演示,你必须首先为你的浏览器下载一个SVG察看器。我们推荐来自优秀的AdobeSVG站点的插件。这样你就可以观看用SVG显示的图形模型演示。
XMI:把所有东西捆绑在一起
对UML开发团体来说,对象管理组织(OMG)的XMI标准是最近最令人振奋的进展。XMI是一种有潜力最终允许在领先的开发工具之间无缝共享模型的交换格式。例如,与其在UML建模工具中书写脚本来创建报表,不如让用户简单地在开发时使用XMI输出该模型,然后引入到一种特定的报表书写工具中。事实上,这个范例将平等地、很好地应用到前面讨论过的特性:O-O度量追踪和项目管理。此外,自从XMI使用XML来表示模型信息,一批XML解决方案很快会出笼,例如为基于浏览器表示提供的XSL格式表和为搜索兼容性提供的XQL查询工具。
XMI标准是复杂的,在被广泛使用之前,它将需要时间来适应许多不可避免的兼容性问题(谁说标准经不起解释?)。但是,既然XMI是由IBM和Unisys等领先的工业巨头开发的,可以预期产品很快会出现。一直到用户团体不断要求厂商来驱动在UML工具中的XMI支持的需求。关于XMI的进一步信息,请看优秀的IBM网页。
作为XMI如何投入使用的例子,请看我们的项目,转换XMI到HTML.这个项目展示了XSL格式表如何能被用来产生UML模型的HTML翻译。本节关于如何选择UML建模工具介绍到这里。
【编辑推荐】