UML软件工程组织

Java 开发中的可视化支持
Vikas Trivedi (vtrivedi@ca.ibm.com), Software Engineer, IBM

IBM 的 Rational Rational? Application Developer 6.0(以后称作“Application Developer”)中的Java可视化编辑器大大简化了复杂的Java应用软件的开发过程。这篇文章介绍了这些可视化特点。
导言

Application Developer 中的 Java可视化编辑支持大大简化了复杂的Java应用软件的开发过程。它使我们可以通过使用类图来创造和修改类和界面。它还使我们可以利用预览和主题两个图来查阅不同的Java元素之间的关系,从而帮助我们复审应用软件的结构。开发者会大大赞赏这种简单易行的操作,因为他们不需要在模型和代码之间来来回回的切换,就可以设计并修改他们的应用软件。

实用性特点

可视化上下文菜单

在下面图1可以看到Visualize这个子菜单,除了允许你将所选元素添加到Class Diagram中之外,还允许你将它们添加到一个新的Sequence Diagram、Topic Diagram或者Static Method Sequence Diagram中。你还可以使用Explore in Browse Diagram这一命令开发所选元素。当然,可供选项会因选择的不同而有所不同。例如,如图1所示,如果所选元素是一个Java类,那么就不能选择 Static Method Sequence Diagram这个选项。

 图1.可视化上下文菜单


 可视化菜单也适用于那些图中已经显现的Java元素。在这种情况下,可视化这一子菜单为在浏览图或者主题图中开发提供可选项。

可取消可视化进程的对话框

在应用软件开发过程中,可视化命令执行过程的对话框里有一个取消按钮 (图2所示), 这是用来中止这一命令的。如果你有多种可视化元素可以选择并且想改变你现在的选择,那么这一功能将十分有用。

 图2.可取消可视化进程的对话框

浏览图和主题图

正如前面所提到的,可视化菜单允许在浏览图中开发Java元素。图3显示的是一个浏览图,这是一个临时的不可编辑的图,提供了快速查看现在元素及其相互关系的方法。

图3.可视化浏览图


 浏览图允许选择你想查看的关系,当你点击应用按钮,通过新的查询会产生一个新的预览表。你也可以通过使用工具栏上的导航按钮来操作浏览图。因为浏览图是临时性的,所以无法保存。尽管如此,它还是可以被保存为常见的UML图(.dnx)格式或者通过访问图上的文件 菜单将其保存为图形文件。

主题图可以很快创建出Java元素之间关系的动态视图。图4显示的是主题“向导”提供的预先确定好的查询内容,你可以查阅这些关系。

图4.主题图形式

和浏览图一样,主题图无法编辑,但是你可以定制查询内容(这样可以更新图)。你也可以通过改变代码对其产生影响从而更新图。

静态方法序列图

可视化菜单允许选择在Java类中选择一种方式,并将其呈现在静态方法序列图中。如图5所示,静态方法序列图阐明的是,在相互作用的Java元素的实例中信息的时间顺序。

图5.静态方法序列图

该序列图显示的是在有着特定交互作用的Java元素的实例中信息流的顺序。

序列图

可视化菜单也允许创建新的序列图(如图6)和新的交互作用。

 图6.序列图

正如你所看见的,在序列图里你可以在任意连接线之间创建不同类型的信息。序列图里的任何改变都会影响Java的源程序。因此,从连接线A到连接线B创建一条新的信息可以为连接线B里的类型创建一种新的方式,这种方式取决于你是选择一个新的操作还是使用现有的操作。

Java工具板

如图7所示,Application Developer中类图里的Java工具板有一组关联选项。另外,工具板上的这些按钮与用在Windows资源管理器包中的按钮一样,为跨越视图元素提供统一的外观。

 图7.Java工具板

关联工具允许在Java类型之间创建一个关联关系。创建关联关系步骤如下:

1.从工具板上选择关联工具
 2.点击图里的初始元素
 3.将连接线拖至目标元素或者图里。

 如果你将连接线画在目标元素里,那么关联工具“向导”会在初始元素和目标元素之间创建一个新的关联关系;另一方面,如果你将连接线画在图里,一个提示菜单会问目标元素是一个已有的Java类型(图中可能有显示,也可以没有显示)还是一个需要创建的新的Java类型。在你选择已有的Java类型或者用“向导”创建一个新的Java类型之后,才能继续使用关联工具“向导”完成关系的建立。

站在代码的角度来看,从Java类型A到Java类型B创建一个关联关系,其结果就是在类型A里创建了类型B的新的字段。正如在图8里可以看到的,当你使用关联工具时,“创建关联向导”帮助你创建的是这一关联关系将要体现的Java字段。

图8.创建关联向导

显示相关元素

显示相关元素是一个十分有用的特征,可以帮你查询图中的相关元素。在 Application Developer 中对于类图中的任何一个Java元素,显示相关元素功能可以通过访问上下文菜单实现。它已经被移至筛选这个子菜单中。

Application Developer 也提供一个强大的显示相关元素的对话框,如下面图9所示。对话框提供了预先设定好的常用的查询选项,可以快速查阅相关的元素。在系统默认状态下,详细设置是隐藏的,只能看到对话框的左面设置框。通过点击详细设置按钮以及设置相关的查询选项,你就可以要查阅元素间的相互关系。查阅设置的任何一次改变都会影响到以后的使用。

图9.显示Java相关元素的对话框

在显示方式上,有内部关系, 外部关系, 或者两者皆有这三个选项可以选择。例如,如果想要查阅已选元素的高级类层次结构,则选择外部关系选项;而要查阅子类层次结构,则选择内部关系选项。

如图10所示,还有大家熟知的 Java显示相关元素筛选的参数设置页面。

图10.Java显示相关元素筛选的参数设置页面

当执行显示相关元素这一指令时,参数设置提供了筛选出二进制Java类型的选项。二进制Java类型并未定义在工作区中,但是可以通过参考数据库显示在工作区中(Java档案文件)。在查阅相关元素时,你可能不需要关注那些定义在Java档案文件之外的元素,例如java.lang.Object。参数设置页面可以帮助你筛选出这些类型。如果你不想筛选出所有的二进制类型,而只想锁定某些数据库(Java档案文件)、数据包或者某种特定类型,那么可能通过在参数选择页面上进行合理设置来实现。

值得注意的是,这样的设置会影响到查询相关元素的所有操作,例如浏览图和主题图的查询。

在 Application Developer 里,显示Java相关元素执行过程的对话框中有一个取消按钮(见图11),可以用来中止这一命令。如果你在显示相关元素的方法上有多种选择,而且正在进行的操作花费的时间超出你的预期,那么这一功能十分有用。

图11.可取消显示相关元素过程的对话框

可视化编辑参数

在 Application Developer 里,Java的所有参数选择的可视化编辑都在 建模这个类别下。而与Java可视化编辑相关的参数选择是在Java辅助建模、Java显示相关元素筛选和Java到UML映射之下。

操作条

操作条是在操作已经显示在类图中的Java元素时显示的基于图标的上下文菜单。如图12所示,它为你提供了编辑所选Java类型的快捷方式。

图12. Java元素的操作条

借助操作条上的按钮,可以通过增加字段或者方法来编辑Java元素,也可以通过元素上下文菜单的 添加Java 子菜单来实现这些指令。

建模助手

对于那些图中已经存在的或者尚未存在的元素来说,建模助手为其创建关系提供了快捷方式。如图13所示,它也可以帮你快速地查阅到基于某些特定关系的元素。当你要操作一个Java元素时(已存在于类图中),建模助手会显示出两个箭头(一个箭头指向那个元素,另一个箭头方向朝外)。

图13. Java元素的建模助手

指向 元素的箭头创建的是元素的内部关系。因此,当以所选元素为目标创建关系时,需要使用方向朝内的箭头。 同样道理,方向朝外的箭头创建的是元素的外部关系(见图14)。

图14.使用建模助手创建关系

创建所选元素和其他Java元素间关系的步骤如下:

点击向外指向箭头末端的小方框
 拖出一条输出线
 将其连接到图上或者另一个元素
 作出连接线后会出现一个上下文菜单,能够创建的关系类型会显示在这个上下文菜单里。如果只想创建原始元素和目标元素之间的一种关系类型,则不会出现上下文菜单,关系会被自动创建。同样道理,可以使用方向朝内的箭头创建内部联系。在图上作出连接线并选择关系类型之后,你可以指定关系的目标元素是一个已有元素还是一个需要创建的新元素。如果你想选择一个已有元素,会弹出一个选择已有Java元素的对话框;如果你想创建一个新的元素,则会出现创建一个新元素的“向导”。一旦元素被创建,它会被自动地添加到对话框和显示的两个元素的关系里。双击建模助手里箭头末端的方框,可以选择从导出的上下文菜单到查阅相关元素的关系(如图15所示)。


图15.使用建模助手查阅Java相关元素

相当于执行这样一组命令:先在元素的上下文菜单中运行筛选> 显示相关元素这一命令,然后选择一个关系并限定它是内部关系还是外部关系。

重构

在Application Developer里,资源管理器数据包里的“重构”菜单同样可以在图里找到。你可以通过图中已选元素的上下文菜单(见图16)访问“重构”菜单。

图16.“重构”上下文菜单

选择重构菜单选项后弹出“重构”对话框,你可以在原来选择的基础上继续对挑选出来的元素进行重构。

直接编辑

Application Developer可以简单地通过选择元素并输入新名称的办法对Java元素重命名。在图中改变一个元素的名称就是对其要素进行再处理,而且这种变化会立刻反映在图和资源管理器数据包的视图中(还包括Java源代码)。如果在图或者资源管理器数据包视图中访问元素的重构 > 重名命这个上下文菜单,可以产生同样的结果。

跨模型的引用修饰

Application Developer 还包含一个属于不同工程元素的跨模型的引用修饰特性。例如,当工程A中的一个Java元素显示在工程B的类图里时,该元素所在方框的左上角会有跨模型的引用的标志(见图17)。这个标志表明该元素与图不在同一个工程里。

图17.Java元素的跨模型的引用图标

正如你所看到的,ClassA与图属于同一个工程。然而NewProjClassA上的跨模型的引用图标表明,该元素属于不同的工程。在查阅Java元素间的关系时这一点十分有用,你可以很快的了解到哪些元素属于不同的工程。

显示现有的Java类型菜单

如图18所示,在图的上下文菜单里可以看到显示现有的 > Java类型这一菜单。这个菜单可以使我们在图里看到任意一个现有的Java类型。

图18.显示现有的。。。Java类型菜单

当选择这个菜单的时候,会弹出一个显示Java类型的对话框,供我们选择想要在图显示的Java类型。这个菜单的功能是首先找出资源管理器数据包里Java类型,然后把它放在图里,或者通过执行显示 > 增加到当前类图这一命令来实现。显示Java类型的对话框只允许选择工作区里的类型。

改变集合类型

如图19所示,Java 到UML映射的参数选择页面可以对将被用作集合类型的Java类型进行详细设置。

图19.改变集合类型命令

当你创建定义在集合类型列表里的一个类型的Java字段时,你可以改变那个字段的集合类型或者关联关系来反映存在于集合中的元素的真正类型。例如,如果你在ClassA 中创建java.util.List类型的Java字段,你可以使用改变集合类型 命令来详细说明这一列表实际上仍将持有字符串类型的元素。因此你将看到的是ClassA和字符串的关系,而不是ClassA和列表之间的关系。这一命令并不改变正在修改的字段的原代码。相反,它是为字段增加了注释,向可视化编辑器说明这一集合的隐藏类型为字符串。

这一指令不同于Application Developer的早期版本,在过去是通过将字段从Java元素的分格列表拖至图中来激活改变集合类型这一指令。现在你需要在上下文菜单里明确地执行这一指令。

创建Java方法“向导”

图20所示的创建Java方法“向导”可以帮助提高可用性。

图20.创建Java方法“向导”

“向导”现在显示的是需要添加新的方法的类或接口。被修改的Java类型的当限名称显示在预览组里(它也已经被添加到创建Java字段“向导”中)。

你也可以选择Java方法可以转换的多种其他类型。点击转换列表旁边的添加按钮会弹出预览类型对话框,你可以挑选出要转换的一个或多个其他类型。另外,将参数添加到方法中的界面是直观的。点击参数列表旁边的添加按钮会弹出一个创建参数对话框,在这个对话框里你可以输入参数名称、类型以及维数。这些设置会很快体现在参数列表里。

带有图的Javadoc命令

图21 显示的是工程菜单下面的产生带有图的Javadoc命令,通过这一命令你可以创建带有内嵌式类图的Javadocs?。

图21.带有图的Javadoc命令

你可以选择自动产生图,也可以选择源程序中已有的标注。

在图22显示的产生Javadoc“向导”里,你可以选择创建的图里的元素类型,以及你想在图中使用的图象格式。如果你喜欢源程序中内嵌的图标注,你也可以自己指定。利用这个选择功能,用户可以自己设定需要使用的图类型。

 图22.产生Javadoc“向导”

产生的Javadocs带有内嵌式图(见图23),图中显示了所选元素以及它和其他元素的关系。

图23.带有内嵌式图的Javadoc

图23显示的是所选元素的Javadoc,而图中展现的是包里面所包含的元素。

结束语

Application Developer提供了关于Java可视化编辑的一系列特征。它使得Java开发成为一种全新的体验,并带有利用UML建模技术设计应用软件的强大支持。通过使用类图、序列图、主题图和浏览图以及像显示相关元素这样的命令,我们很容易掌握现有应用软件的结构和设计。


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