UML:对 Java 应用程序执行逆向工程
由 Sherry Barkodar 创建,Cindy Castillo 和 Bob May 维护。
2007 年 11 月 [修订号:V1-3]
本文适用于 NetBeans IDE 6.0 发行版
在本教程中,您将了解如何对现有 Java 应用程序源代码执行逆向工程,以将其转换为 UML 项目。在 UML 项目中,所有类以及其他应用程序元素均显示在“项目”窗口的 UML 项目节点下,而原始的 Java 代码则会保留为原来的状态。本文档将按照“目录”中列出的主题链接内容,指导您逐步完成一些基本的任务。
预计时间:25 分钟
目录
前提条件
要使用本教程,您必须在系统上安装 IDE,并且应该对 IDE 的基本部分比较熟悉。此外,您还应具备 Java 编程语言和 UML 方面的基本知识。有关 IDE 的基础知识,请参阅在线帮助中的 IDE Basics 主题。官方 UML 资源页面提供了许多有用的 UML 技巧和理论,地址为 http://www.uml.org/。
系统需求
本教程假定您的系统满足 NetBeans 6.0 发行说明 的“系统需求”部分所指定的需求。
本教程所需要的软件
开始之前,需要在您的计算机中下载并安装以下软件:
创建示例 Java 和 UML 项目
在本节中,使用“新建项目”向导创建随 IDE 提供的示例 Java 项目和 UML 项目。
- 从 IDE 的主菜单中,选择“文件”>“新建项目”。
此时将打开“新建项目”向导。
- In the Choose Project page, expand the Samples node in the Categories pane and select the UML node.
The Projects pane is updated with the available UML sample project.
- 在“项目”面板中,选择“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-Model1。
- 对于“项目位置”字段,保留默认值,这是保存 UML 示例项目的目录。
如果想要使用一个不同的文件夹,单击“浏览”导航到该文件夹,然后单击“打开”。
- 单击 OK 按钮。
将显示“正在打开项目”进度对话框。
“项目”窗口中会出现 UMLBankAppSample-Model1 项目。
观看演示
回到顶部
生成类图
在本部分中,为在上一部分中导入的 UMLBankAppSample 应用程序生成类图。
- 在“项目”窗口的 UMLBankAppSample-Model 节点下,展开“模型”节点,然后展开该节点下的 "bankpack" 节点。
- 通过在选择时按住 Shift 键或 Ctrl 键,选择 bankpack 文件夹以及该文件夹下的所有元素。
- 右键单击选定的元素,然后从弹出菜单中选择“通过选定的元素创建图”。
将显示“创建新图”向导。
- 在“图类型”列表中选择“类图”。
- 在“图名称”字段中输入 BankClassDiagram, 保留“名称空间”字段中的 UMLBankAppSample-Model,然后单击“完成”。
IDE 将执行以下操作:
- 在模型节点下创建 BankClassDiagram 节点
- 在图编辑器中显示新图
- 打开 Modeling Palette
注意:新的 BankClassDiagram 图包含了步骤 2 中选择的所有元素。
观看演示
回到顶部
浏览图编辑器
在本部分,您将使用图编辑器的图工具栏按钮查看不同 UML 布局下的应用程序。
- 双击位于图编辑器顶部的“BankClassDiagram”选项卡。
此操作将会放大类图编辑器,使其占据整个 IDE 的窗口空间。
注意:这是一个切换操作:要撤消此操作,请再次双击BankClassDiagram选项卡。
- 在展开的图编辑器中,单击图工具栏上的“适应窗口大小”按钮
。,以在展开的编辑器中全屏显示该图。
注意:注意:请注意图工具栏中的缩放级别百分比字段。您可以在此字段中键入不同的数字来控制图的大小。
- 选择图工具栏上的“对称结构布局”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图排列成对称布局样式。
- 选择图工具栏上的“分层结构布局”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图重新排列成分层布局样式(所有元素都位于 bankpack 包的下面)。
- 选择图工具栏上的“正交结构布”按钮
,然后在“布局”警告对话框中单击“是”。
IDE 会将 BankClassDiagram 图重新排列成矩形布局样式。
观看演示
回到顶部
使用“概览”窗口
在本部分,将使用“概览”窗口的功能来获得图编辑器中图的可缩放视图。
- 双击位于已展开的图编辑器顶部的 "BankClassDiagram" 选项卡。
IDE 将重新呈现多窗口视图。
- 在图工具栏上,从缩放下拉列表中选择 "50%",然后单击“适应窗口大小”按钮
。
通过使用“适应窗口大小”按钮,图将从 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" 节点,以在“项目”窗口中显示序列图元素。
观看演示
回到顶部
关于合并标记的一点说明
UML 使用合并标记来帮助您保持源和模型的同步。当从 UML 项目调用“代码生成”操作时,默认情况下 IDE 会添加合并标记。如果 UML 项目是通过对现有 Java 项目执行逆向工程创建的,则没有针对现有源元素的合并标记。
要添加合并标记:
- 创建或打开 Java 项目。
- 右键单击 Java 项目节点,并选择“逆向工程”选项。确保选中“创建新 UML 项目”。单击“确定”。
- 确保能够完成逆向工程。输出窗口会显示 "Task Successful"。
- 右键单击新创建的 UML 项目节点 -> “生成代码...”
- 从“目标项目”下拉列表中选择 Java 项目。选择“将合并标记添加到现有源元素”。单击“确定”。
现在源和模型已经同步了,而且所有源元素都拥有合并标记。可以安全地在源和模型之间来回转换。但是,每次转换之前,需要适当调用“逆向工程”或“代码生成”。
回到顶部
结束语
回到顶部
未来计划
回到顶部
>> 更多 UML 建模文档