UML 建模:对 Java 应用程序执行逆向工程
最新更新日期:2007 年 3 月 29 日
本教程适用于 NetBeans™ 5.5 集成开发环境 (Integrated Development Environment, IDE) 以及 NetBeans 5.5 UML 建模模块。
在本教程中,您将了解如何对现有 Java 应用程序源代码执行逆向工程,以将其转换为 UML 建模项目。在 UML 项目中,所有类以及其他应用程序元素均显示在“项目”窗口的 UML 项目节点下,而原始的 Java 代码则会保留为原来的状态。本文档将按照“目录”中列出的主题链接内容,指导您逐步完成一些基本的任务。
有关使用 NetBeans IDE 的更多信息,请参见 NetBeans Web 站点中的文档和支持页。
注意:无论您在何处看到
图标,都可以单击此图标以查看教程中所描述步骤的详细交互式演示。
先决条件
要使用本教程,您必须先在系统中安装 IDE,并且应该熟悉 IDE 的基本组成部分。同时,还应该对 Java 编程语言和 UML 建模有基本的了解。要了解 IDE 的基础知识,请参见联机帮助中的“IDE 基础知识”主题。http://www.uml.org/ 是 UML 资源的官方网站,为您了解 UML 建模技术和理论提供了很好的资源。
系统要求
本教程假定您的系统满足 NetBeans 5.5 UML 建模模块发行说明中指定的要求。
本教程所需的软件
开始之前,您需要在计算机中安装以下软件:
- NetBeans IDE 5.5 IDE(下载)
- NetBeans 5.5 UML 建模模块(下载信息)
目录
返回页首
打开 Java 项目
在本部分,您需要在 IDE 中打开本教程提供的 BankApp Java 应用程序项目。
- 在文件系统中创建一个名为 UMLTut 的目录,然后将 BankApp.zip 文件解压缩到该目录中。
- 从主菜单中选择“文件”>“打开项目”。
- 浏览至刚创建的 UMLTut 目录,然后选择 BankApp 项目。
- 保持“作为主项目打开”复选框处于选中状态,然后单击“打开项目文件夹”。
将显示一个进度对话框,然后会在“项目”窗口中显示 BankApp 项目节点。
查看演示
返回页首
通过逆向工程创建 UML 项目
现在,将通过对上一部分打开的 BankApp Java 项目执行逆向工程来创建新的 UML 项目。
- 从主菜单中,选择“文件”>“新建项目”,然后在“新建项目”向导中执行以下操作:
- 在“类别”下选择 "UML"。
- 在“项目”下选择“对 Java 项目执行逆向工程”。
- 单击“下一步”。
- 在“项目名称”字段中,键入 UMLProject。
- 对于“项目位置”字段,单击“浏览”以导航并选择 UMLTut 文件夹,然后单击“打开”。
- 对于“Java 项目”字段,从下拉列表中选择 BankApp。
- 保持“逆向工程”列中的复选框处于选中状态。
- 单击“完成”。
将显示“正在打开项目”进度对话框。
“项目”窗口中会出现 UMLProject 项目。
查看演示
返回页首
生成类图
在本部分,您将为上一部分导入的 BankApp 应用程序生成类图。
- 在“项目”窗口的 "UMLProject" 节点下,展开“模型”节点,然后展开该节点下的 "bankpack" 节点。
- 通过在选择时按住 Shift 键或 Ctrl 键,选择 bankpack 文件夹以及该文件夹下的所有元素。
- 右键单击选定的元素,然后从弹出式菜单中选择“通过选定的元素创建图”。
将显示“创建新图”向导。
- 在“图类型”列表中选择“类图”。
- 在“图名称”字段中键入 BankClassDiagram,保留“名称空间”字段中的 UMLProject,然后单击“完成”。
IDE 将执行以下操作:
- 在“模型”节点下创建 BankClassDiagram 节点
- 在图编辑器中显示新图
- 打开建模组件面板
注意:新的 BankClassDiagram 图包含了步骤 2 中选择的所有元素。
查看演示
返回页首
在“项目”窗口中浏览 UML 项目
本部分将指导您在“项目”窗口中浏览表示 BankApp 应用程序元素的各个功能,以了解该应用程序的各个部分。
- 在“项目”窗口中,展开 "UMLProject" >“模型”> "bankpack" 节点。
- 展开 "BankAccount" 节点及其“属性”节点。
BankAccount 类的所有属性均包含在此文件夹中。如果属性的数目少于三个,那么这些属性将直接显示在类节点下,而不是“属性”文件夹中。
- 选择标记为 private double balance 的属性节点
。
属性窗口将显示该属性的名称及其属性。
- 在“项目”窗口的 BankAccount 类节点下,展开“操作”节点
。
BankAccount 类的所有操作均显示在此节点下。
- 在 BankAccount 类下,展开“关系”节点
。
将显示三种类型的关系节点:特化、聚合以及实现。
- 展开“特化”节点
,然后展开三个泛化节点。
泛化链接显示了 BankAccount 类与其他元素(Checking、Platinum 和 Saving 类)之间的关系。
- (可选)在继续执行下一部分之前,请折叠 BankAccount 类下展开的节点。
查看演示
返回页首
浏览图编辑器
在本部分,您将使用图编辑器的图工具栏按钮查看不同 UML 布局下的应用程序。
- 双击位于图编辑器顶部的 "BankClassDiagram" 标签。
此操作将会放大类图编辑器,使其占据整个 IDE 的窗口空间。
注意:这是一个切换操作:要撤消此操作,请再次双击 BankClassDiagram 标签。
- 在展开的图编辑器中,单击图工具栏上的“适应窗口大小”按钮
,以在展开的编辑器中全屏显示该图。
注意:请注意图工具栏中的缩放级别百分比字段。您可以在此字段中键入不同的数字来控制图的大小。
- 选择图工具栏上的“对称结构布局”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图排列成对称布局样式。
- 选择图工具栏上的“分层结构布局”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图重新排列成分层布局样式(所有元素都位于 bankpack 包的下面)。
- 选择图工具栏上的“正交结构布局”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图重新排列成矩形布局样式。
查看演示
返回页首
使用“概览”窗口
在本部分,将使用“概览”窗口的功能来获得图编辑器中图的可缩放视图。
- 双击位于已展开的图编辑器顶部的 "BankClassDiagram" 标签。
IDE 将重新呈现多窗口视图。
- 在图工具栏上,从缩放下拉列表中选择 "50%",然后单击“适应窗口大小”按钮
。
通过使用“适应窗口大小”按钮,图将从 50% 大小的版本进行缩放,以便您可以更好地阅读标签。
- 单击图工具栏上的“概览”窗口按钮
以打开“概览”窗口。
将出现一个显示整个图的小型可缩放窗口。窗口中的蓝色方框指示图编辑器中显示的内容。
注意:您可能需要放大“概览”窗口,或者在缩放下拉列表中选择更大的百分比来查看该蓝色方框。
- 将蓝色方框拖至 BankAccount 元素上。
此操作会在图编辑器的中心位置显示 BankAccount 元素。
- 要放大元素,请单击位于蓝色方框任意边角的句柄并缩小方框。调整方框的位置可以放大图的特定部分。
- 要缩小元素,请单击位于蓝色方框任意边角的句柄并放大方框。
请注意,IDE 此时会缩小图的比例。
- 单击位于“概览”窗口右上角的 "X",或者再次单击“概览”窗口按钮以关闭“概览”窗口。
- 再次单击图工具栏上的“适应窗口大小”按钮
。
查看演示
返回页首
为类生成依赖关系图
现在,将为 BankApp 应用程序中的一个类生成依赖关系图。
- 双击 "BankClassDiagram" 标签以切换至该图的全屏视图。
- 右键单击图编辑器中的 BankAccount 类,然后从弹出式菜单中选择“生成依赖关系图”。
IDE 将创建一个依赖关系图,并在图编辑器中打开一个“BankAccount依赖关系”标签以显示新图。现在,请将注意力集中在图编辑器中显示 BankAccount 依赖关系图的标签上。BankAccount 依赖关系图显示了以下依赖关系链接:
- 与 Account 接口之间的实现关系
- 与 History 类之间的可导航聚合链接
注意:使用此选项可以创建一个图,其中显示了任意给定对象的所有依赖关系。
- 再次双击 "BankClassDiagram" 标签以切换至 IDE 的多窗口视图。
- 在“项目”窗口中,展开 "UMLProject" >“模型”> "bankpack" 文件夹下的 "BankAccount" 类节点。
您会看到已添加了“BankAccount依赖关系”节点
,该节点表示刚创建的依赖关系图。
查看演示
返回页首
为操作生成序列图
现在,将为应用程序的 withdraw 操作生成序列图,并查看它是如何显示为一幅图并且如何显示“项目”窗口中 UML 项目的元素。
- 单击图编辑器中的“BankAccount依赖关系”标签。
- 选择 BankAccount 元素,然后调整缩放比例,以便您可以轻松阅读其操作标签。
- 在图编辑器中,右键单击 withdraw 操作,然后从弹出式菜单中选择“逆向工程操作”。
将显示“创建新图”对话框。
- 在“图类型”列表中,选择“序列图”。
- 在“图名称”字段中,键入 withdrawSD。
- 接受“名称空间”字段中的缺省值,然后单击“完成”。
图编辑器中将显示一个序列图。
- 展开图编辑器,然后调整缩放比例,以便可以轻松查看新的序列图。
该序列图显示了控制流、行为序列以及并发的进程和激活。
- 在“项目”窗口的 "BankAccount" 类节点下,展开“操作”节点,然后展开 "public void withdraw" 操作节点。
您会看到新的 "withdraw" 序列图节点
。
- 展开 "withdraw" 节点,以在“项目”窗口中显示序列图元素。
查看演示
返回页首
小结
在本教程中,您了解了如何通过将 Java 应用程序的数据导入到 UML 模型中对该应用程序执行逆向工程。具体执行的任务如下所示:
- 通过导入的 Java 应用程序生成类图
- 浏览“项目”窗口的各项功能以显示应用程序的元素
- 使用图工具栏中的按钮来查看不同 UML 布局下的应用程序
- 使用“概览”窗口作为查看工具
- 为应用程序的一个类生成依赖关系图
- 为操作生成序列图,并查看它是如何显示为一幅图并且如何显示“项目”窗口中 UML 项目的元素
返回页首