UML 建模:对 Java 应用程序执行逆向工程
最后更新日期:2007 年 10 月
本教程适用于 NetBeans™ 6.0 集成开发环境(IDE)。
在本教程中,您将使用随 IDE 提供的示例 Java 和 UML 示例项目,了解如何对现有 Java 应用程序源代码执行逆向工程,以将其转换为 UML 项目。所有类以及其他应用程序元素均显示在“项目”窗口的 UML 项目节点下,而原始的 Java 代码则会保留为在 Java 项目节点的原始状态。本文档将按照“目录”中列出的主题链接内容,指导您逐步完成一些基本的任务。
有关如何使用 NetBeans IDE 的更多信息,请参阅 NetBeans 网站上的支持和文档。
注意:无论您在何处看到
图标,都可以单击此图标以查看教程中所描述步骤的详细交互式演示。
目录
前提条件
要使用本教程,您必须在系统上安装 IDE,并且应该对 IDE 的基本部分比较熟悉。此外,您还应具备 Java 编程语言和 UML 方面的基本知识。有关 IDE 的基础知识,请参阅在线帮助中的 IDE Basics 主题。官方 UML 资源页面提供了许多有用的 UML 技巧和理论,地址为 http://www.uml.org/。
系统需求
本教程假定您的系统满足 NetBeans 6.0 发行说明 的“系统需求”部分所指定的需求。
本教程所需要的软件
开始之前,需要在您的计算机中下载并安装以下软件:
回到顶部
创建示例 Java 和 UML 项目
在本节中,使用“新建项目”向导创建随 IDE 提供的示例 Java 项目和 UML 项目。
- 从 IDE 的主菜单中,选择“文件”>“新建项目”。
此时将打开“新建项目”向导。
- 在“选择项目”页面中,展开“类别”面板中的示例节点,并选择 UML 节点。
“项目”面板更新为可用的 UML 示例项目。
- 在“项目”面板中,选择“UML 空白应用程序示例”并单击“下一步”。
- 在“名称和位置”页面中,将 Java 项目名称保留为默认值 UMLBankAppSample。
- 对于“项目位置”字段,单击“浏览”导航到想要保存示例项目文件的文件夹。
注意,当更改“项目位置”字段中的值时,IDE 会自动更新“Java 项目文件夹”和“UML 项目文件夹”字段中的值。
- 将 UML 项目名称保留为默认值 UMLBankAppSample-Model。
- 单击 Finish 按钮。
将显示“正在打开项目”进度对话框。
“项目”窗口中出现 UMLBankAppSample 和 UMLBankAppSample-Model 项目。
观看演示
回到顶部
在“项目”窗口中浏览 UML 项目
本部分将指导您在“项目”窗口中浏览表示 UMLBankAppSample 应用程序元素的各个功能,以了解该应用程序的各个部分。
- 从主菜单中,选择窗口 > 属性,打开“属性”窗口。
- 在“项目”窗口中,展开UMLBankAppSample-Model> Model > bankpack节点。
- 展开BankAccount节点及其属性节点。
BankAccount类的所有属性都包含在此文件夹中。如果属性的数目少于三个,那么这些属性将直接显示在类节点下,而不是“属性”文件夹中。
- 选择标记为private double balance的属性节点
。
“属性”窗口将显示该属性的名称及其属性。
- 在“项目”窗口的 BankAccount 类节点下,展开操作节点
。.
BankAccount 类的所有操作均显示在此节点下。
- 在 BankAccount 类下,展开关系节点
。
将显示三种类型的关系节点: 特化、聚合以及实现。
- 展开特化节点
,然后展开三个泛化节点。
“泛化”链接显示了 BankAccount 类与其他元素(Checking、Platinum 和 Saving 类)之间的关系。
- (可选)在继续执行下一部分之前,请折叠 BankAccount 类下展开的节点。
观看演示
回到顶部
通过逆向工程创建另一个 UML 项目
在本教程的第 1 部分中,您装载了 UMLBankAppSample Java 项目和 UMLBankAppSample-Model UML 项目,它们是使用逆向工程特性生成的。在本部分中,通过对前一部分中使用的同一个 UMLBankAppSample Java 项目进行逆向工程,逐步创建另一个 UML 项目。
- 在“项目”窗口中,右键单击UMLBankAppSample节点,然后选择“逆向工程”。
将显示“逆向工程”对话框。
注意,“选择节点”字段包含不可编辑的 UMLBankAppSample 值。
- 保持“逆向工程”列中的复选框处于选中状态。
- 选择“创建新 UML 项目”按钮。
- 在“项目名称”字段中,输入 UMLBankAppSample-MyModel。
- 对于“项目位置”字段,保留默认值,这是保存 UML 示例项目的目录。
如果想要使用一个不同的文件夹,单击“浏览”导航到该文件夹,然后单击“打开”。
- 单击 OK 按钮。
将显示“正在打开项目”进度对话框。
“项目”窗口中会出现 UMLBankAppSample-MyModel 项目。
观看演示
回到顶部
生成类图
在本部分,您将为上一部分创建的 UMLBankAppSample 应用程序生成类图。
- 在“项目”窗口中,在 UMLBankAppSample-MyModel 节点下,展开 Model > bankpack 节点。
- 通过在选择时按住 Shift 键或 Ctrl 键,选择 bankpack 文件夹以及该文件夹下的所有元素。
- 右键单击选择的元素,并选择“从选择的元素创建图”。
将显示“创建新图”向导。
- 在“图类型”列表中选择“类图”。
- 在“图名称”字段中键入 BankClassDiagram,保留“名称空间”字段中的 UMLBankAppSample-MyModel,然后单击“完成”。
IDE 将执行以下操作:
- 在模型节点下创建 BankClassDiagram 节点
- 在图编辑器中显示新图
- 打开 Modeling Palette
注意:新的 BankClassDiagram 图包含了步骤 2 中选择的所有元素。
观看演示
回到顶部
浏览图编辑器
在本部分,您将使用图编辑器的图工具栏按钮查看不同 UML 布局下的应用程序。
- 双击位于图编辑器顶部的 "BankClassDiagram" 选项卡。
此操作将会放大类图编辑器,使其占据整个 IDE 的窗口空间。
注意:这是一个切换操作:要撤消此操作,请再次双击BankClassDiagram选项卡。
- 在展开的图编辑器中,单击图工具栏上的“适应窗口大小”按钮
。,以在展开的编辑器中全屏显示该图。
注意:注意:请注意图工具栏中的缩放级别百分比字段。您可以在此字段中键入不同的数字来控制图的大小。
- 选择图工具栏上的“对称结构布局”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图排列成对称布局样式。
- 选择图工具栏上的“分层结构布局”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图重新排列成分层布局样式(所有元素都位于 bankpack 包的下面)。
- 选择图工具栏上的“正交结构布”按钮
,然后在“布局”警告对话框中单击“是”。
DE 会将 BankClassDiagram 图重新排列成矩形布局样式。
观看演示
回到顶部
使用“概览”窗口
在本部分,将使用“概览”窗口的功能来获得图编辑器中图的可缩放视图。
- 双击位于展开的图编辑器顶部的“BankClassDiagram”选项卡。
IDE 将重新呈现多窗口视图。
- 在图工具栏上单击“适应窗口大小”按钮
,然后从缩放下拉列表中选择 75%。
使用缩放下来列表,图将缩放到 75% 大小的版本,以便您可以更好地阅读选项卡。
- 单击图工具栏上的“概览”窗口按钮
以打开“概览”窗口。
将出现一个显示整个图的小型可缩放窗口。窗口中的蓝色方框指示图编辑器中显示的内容。
注意:您可能需要放大“概览”窗口,或者在缩放下拉列表中选择更大的百分比来查看该蓝色方框。
- 将蓝色方框拖至 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 项目的元素
回到顶部