FeaturesDocs & SupportCommunityBlogsPartners

UML:对 Java 应用程序执行逆向工程

注意:当前的发行版为 NetBeans IDE 6.5。如果您使用的是 NetBeans IDE 6.0 或 6.1,请参见 UML:逆向工程

在本教程中,您将了解如何对现有 Java 应用程序的源代码执行逆向工程,使其转换为 UML 项目。在 UML 项目中,所有的类和其他应用程序元素都表示在“项目”窗口中的 UML 项目节点下,而原始 Java 代码保留为其原始状态。本文档将按照“目录”中列出的主题链接内容,指导您逐步完成一些基本的任务。

预计时间:25 分钟

目录

本页上的内容适用 NetBeans IDE 6.0 和 6.1

前提条件

要使用本教程,您必须在系统中安装 IDE,并且应该熟悉 IDE 的基本组成部分。此外,还应该对 Java 编程语言和 UML 有基本的了解。有关 IDE 的基础知识,请参见联机帮助中的“IDE 基础知识”主题。http://www.uml.org/ 是 UML 资源的官方网站,其中提供了很好的 UML 建模技术及理论资源。

系统要求

本教程假设您的系统符合 NetBeans 6.1 发行说明的“系统要求”部分中指定的要求。

本教程所需要的软件

要学习本教程,您需要具备下表中列出的软件和资源。

软件或资源 要求的版本
NetBeans IDE 版本 6.5
Java Development Kit (JDK) 版本 6
版本 5

创建样例 Java 和 UML 项目

在本部分中,您将使用“新建项目”向导创建 IDE 提供的样例 Java 项目和 UML 项目。

  1. 从 IDE 的主菜单中,选择“文件”>“新建项目”。此时将打开“新建项目”向导。
  2. 在“选择项目”页中,展开“类别”窗格中的“样例”节点,然后选择 "UML" 节点。“项目”面板更新为可用的 UML 样例项目。
  3. 在“项目”面板中,选择“UML 银行应用程序样例”并单击“下一步”。
  4. 在“名称和位置”页中,保留 Java 项目名称的缺省值 UMLBankAppSample
  5. 对于“项目位置”字段,请单击“浏览”导航到要用于保存样例项目文件的文件夹。请注意,当您更改“项目位置”字段中的值时,IDE 会自动更新“Java 项目文件夹”和“UML 项目文件夹”字段中的值。
  6. 保留 UML 项目名称的缺省值 UMLBankAppSample-Model
  7. 单击“完成”。此时将出现“正在打开项目”进度对话框。UMLBankAppSampleUMLBankAppSample-Model 项目将出现在“项目”窗口中。

 查看演示

返回页首

在“项目”窗口中浏览 UML 项目

本部分将指导您在“项目”窗口中浏览表示 UMLBankAppSample 应用程序元素的各个功能,以了解该应用程序的各个部分。

  1. 从主菜单中,选择“窗口”>“属性”以打开“属性”窗口。
  2. 在“项目”窗口中,展开 "UMLBankAppSample-Model">“模型”> "bankpack" 节点。
  3. 展开 "BankAccount" 节点及其“属性”节点。
    BankAccount 类的所有属性都包含在此文件夹中。如果少于三个属性,则这些属性将出现在类节点(不包含“属性”文件夹)下。
  4. 选择标有 "private double balance" 的“属性”节点 “属性”节点图标的图像
    “属性”窗口显示该属性及其属性的名称。
  5. 在“项目”窗口的 BankAccount 类的节点下,展开“操作”节点 显示“操作”节点图标的图像
    BankAccount 类的所有操作都会出现在此节点下。
  6. BankAccount 类下,展开“关系”节点 显示“关系”节点图标的图像
    此时将显示三种类型的关系的节点:“特化”、“聚合”和“实现”。
  7. 展开“特化”节点 显示“泛化”图标的图像,然后展开三个“泛化”节点。
    “泛化”链接显示 BankAccount 类与其他元素(CheckingPlatinumSaving 类)之间的关系。
  8. (可选)继续学习下一部分之前,请关闭 BankAccount 类下展开的节点。

     查看演示

    返回页首

通过逆向工程创建另一个 UML 项目

在本教程的第一部分中,您已装入了 UMLBankAppSample Java 项目,以及使用逆向工程功能生成的 UML 项目 UMLBankAppSample-Model。在本部分中,您将通过对在前一部分中使用的同一个 UMLBankAppSample Java 项目执行逆向工程来逐步创建另一个 UML 项目。

  1. 在“项目”窗口中,右键单击 "UMLBankAppSample" 节点并选择“逆向工程”。
    此时将出现“逆向工程”对话框。
    请注意,“选定的节点”字段包含的 UMLBankAppSample 值不可编辑。
  2. 保持“逆向工程”列中的复选框处于选中状态。
  3. 选择“创建新的 UML 项目”按钮。
  4. 在“项目名称”字段中,接受缺省值 UMLBankAppSample-Model1
  5. 对于“项目位置”字段,保留缺省值,即保存 UML 样例项目的目录。
    如果要使用其他文件夹,请单击“浏览”导航至该文件夹,然后单击“打开”。
  6. 单击“确定”。
    此时将出现“正在打开项目”进度对话框。
    UMLBankAppSample-Model1 项目将出现在“项目”窗口中。

 查看演示

返回页首

生成类图

在本部分中,您将为已在前一部分中导入的 UMLBankAppSample 应用程序生成类图。

  1. 在“项目”窗口中的 "UMLBankAppSample-Model" 节点下,展开“模型”节点,然后展开该节点下方的 "bankpack" 节点。
  2. 通过在选择时按住 Shift 键或 Ctrl 键,选择 "bankpack" 文件夹及 "bankpack" 文件夹下的所有元素。
  3. 右键单击选定元素,然后从下拉式菜单中选择“通过选定的元素创建图”。
    此时将出现“创建新图”向导。
  4. 在“图类型”列表中,选择“类图”。
  5. 在“图名称”字段中键入 BankClassDiagram,在“名称空间”字段中保留 UMLBankAppSample-Model,然后单击“完成”。
    IDE 将执行以下操作:
    • 在“模型”节点下创建 "BankClassDiagram" 节点。
    • 在图编辑器中显示新图
    • 打开建模组件面板
    注意:新的 BankClassDiagram 图包含您在步骤 2 中选择的所有元素。

 查看演示

返回页首

浏览图编辑器

在本部分,您将使用图编辑器的图工具栏按钮查看不同 UML 布局下的应用程序。

  1. 双击图编辑器顶部的 "BankClassDiagram" 标签。
    此操作将伸展类图编辑器来充满整个 IDE 窗口空间。

    注意:这是一个切换操作:要撤销此操作,请再次双击 "BankClassDiagram" 标签。
  2. 在展开的图编辑器中,单击图工具栏中的“适当地调整图大小”显示“适应窗口大小”图标的图像,以便在展开的编辑器中完整地显示该图。

    注意:请注意图工具栏中的缩放级别百分比字段。通过在此字段中键入不同的数字,您可以调整图的大小。
  3. 选择图工具栏中的“分层结构布局”显示“分层结构样式”工具图标的图像 按钮,然后在“布局”警告对话框中单击“是”。
    IDE 会将 BankClassDiagram 图重新排列到分层结构布局样式中,将所有的元素放在 bankpack 包下。

返回页首

 

使用“导航”窗口

在这里,请使用“导航”窗口的功能来获取图编辑器中图的可缩放视图。

  1. 双击展开的图编辑器顶部的 "BankClassDiagram" 标签。
    IDE 将返回到多窗口视图。
  2. 从缩放下拉列表中选择 50%,然后单击图工具栏上的“适当地调整图大小”按钮 显示“适应窗口大小”图标的图像
    使用“适当地调整图大小”按钮,图可以从 75% 大小的版本进行缩放,以便您可以更好地读取标签。
  3. 单击“导航”窗口中的相应栏,以显示图的导航窗口视图。
    此时将出现一个小的可缩放窗口,其中显示整个图。该窗口中的蓝色框指示图编辑器中出现的内容。
    注意:您可能需要放大“概览”窗口或在缩放下拉式列表中选择一个较高的比例,才能看到蓝色框。
  4. 将蓝色框拖至 BankAccount 元素上。
    此操作会在图编辑器的中心位置显示 BankAccount 元素。
  5. 要放大元素,请单击位于蓝色方框任意边角的控柄并缩小方框。调整该框的位置,以放大图的某个特定部分。
  6. 要缩小图,请单击蓝色框的一个手柄,并增大该框的大小。
    请注意,IDE 此时会缩小图的比例。
  7. 单击位于右上角的 X 可关闭“图”窗口。
  8. 在图工具栏中再次单击“适应窗口大小”按钮 显示“适应窗口大小”图标的图像

返回页首

为类生成依赖关系图

现在,应为 BankApp 应用程序中的某个类生成依赖关系图。

  1. 双击 "BankClassDiagram" 标签,以切换到图的完整视图。
  2. 右键单击图编辑器中的 BankAccount 类,然后从弹出式菜单中选择“生成依赖关系图”。
    IDE 将创建一个依赖关系图,并打开图编辑器中的 "BankAccountDependencies" 标签以显示新图。现在,请将注意力集中在图编辑器中显示 BankAccount 依赖关系图的标签上。BankAccount 依赖关系图显示以下依赖关系链接:
    • Account 接口的实现关系
    • 指向 History 类的可导航聚合链接
    注意:通过使用此选项,可以创建一个图,该图中显示任何给定对象的所有依赖关系。
  3. 再次双击 "BankClassDiagram" 标签,以切换到 IDE 的多窗口视图。
  4. 在“项目”窗口中,展开 "UMLProject" >“模型”> "bankpack" 文件夹下的 BankAccount 类节点。
    您将看到已添加了“BankAccount依赖关系”节点 显示“BankAccount依赖关系”节点图标的图像,该节点表示您刚刚创建的依赖关系图。

返回页首

为操作生成序列图

现在应为应用程序的 withdraw 操作生成一个序列图。并查看它是如何作为图显示以及作为“项目”窗口中 UML 项目的元素显示的

  1. 单击图编辑器中的“BankAccount依赖关系”标签.
  2. 选择 BankAccount 元素并调整缩放,以便您可以方便地读取操作标签。
  3. 在图编辑器中,右键单击 withdraw 操作,然后从弹出式菜单中选择“逆行工程操作”。
    此时将出现“创建新图”对话框。
  4. 在“图类型”列表中,选择“序列图”。
  5. 在“图名称”字段中,键入 withdrawSD
  6. 接受“名称空间”字段中的缺省值并单击“完成”。
    序列图将出现在图编辑器中。
  7. 展开图编辑器并调整缩放比例,使您可以方便地检查新的序列图。
    序列图显示控制流、行为序列,以及并发处理和激活。
  8. 在“项目”窗口中的 "BankAccount" 类节点下,展开“操作”节点,然后展开 "public void withdraw " 操作节点。
    您将看到新的 "withdraw" 序列图节点 序列图节点的图像
  9. 展开 "withdraw" 节点以查看在“项目”窗口中表示的序列图的元素。

返回页首

合并标记上的注释

UML 使用合并标记帮助您使源与模型始终保持同步。从 UML 项目中调用“代码生成”操作时,缺省情况下 IDE 会添加合并标记。如果已通过对现有 Java 项目执行反向工程创建了 UML 项目,则没有与现有源元素对应的合并标记。

添加合并标记:

  1. 创建或打开 Java 项目。
  2. 右键单击 Java 项目节点,然后选择“逆向工程”。验证是否选中了“创建新的 UML 项目”。单击“确定”。
  3. 确保逆向工程完成。输出窗口将显示“任务成功”。
  4. 右键单击新创建的 UML 项目节点 ->“生成代码...”
  5. 从“目标项目”下拉式列表中选择该 Java 项目。选择“在现有源元素中添加合并标记”。单击“确定”。

您的源和模型将立即同步,且所有的源元素都将具有合并标记。您可以在源与模型之间安全地来回切换。但是,每次切换之前,您应相应地调用“逆向工程”或“代码生成”。

返回页首

小结

  • 在本教程中,您了解了如何通过将 Java 应用程序的数据导入到 UML 模型中来对该应用程序执行逆向工程。现在,您已学会了如何执行以下任务:

    • 通过导入的 Java 应用程序生成类图
    • 浏览“项目”窗口中表示该应用程序元素的功能。
    • 使用图工具栏的按钮查看各种 UML 布局下的应用程序。
    • 使用“导航”窗口作为查看工具。
    • 为某个应用程序类生成依赖关系图。
    • 为操作生成序列图,并查看它是如何显示为一幅图并且如何显示“项目”窗口中 UML 项目的元素。

返回页首

后续步骤

  • 要了解有关 UML 功能的详细信息,请完成“开发应用程序”教程。

  • 要发送意见和建议、获得支持以及随时了解 NetBeans IDE J2EE 开发功能的最新进展,请加入 nbusers@netbeans.org 邮件列表。

 

 

返回页首

Companion
Projects:
                  Powered by: