FeaturesPluginsDocs & SupportCommunityPartners

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

本教程适用于 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 建模模块发行说明中指定的要求。

本教程所需的软件

开始之前,您需要在计算机中安装以下软件:

目录

返回页首


打开 Java 项目

在本部分,您需要在 IDE 中打开本教程提供的 BankApp Java 应用程序项目。

  1. 在文件系统中创建一个名为 UMLTut 的目录,然后将 BankApp.zip 文件解压缩到该目录中。
  2. 从主菜单中选择“文件”>“打开项目”。
  3. 浏览至刚创建的 UMLTut 目录,然后选择 BankApp 项目。
  4. 保持“作为主项目打开”复选框处于选中状态,然后单击“打开项目文件夹”。
    将显示一个进度对话框,然后会在“项目”窗口中显示 BankApp 项目节点。

查看演示

返回页首


通过逆向工程创建 UML 项目

现在,将通过对上一部分打开的 BankApp Java 项目执行逆向工程来创建新的 UML 项目。

  1. 从主菜单中,选择“文件”>“新建项目”,然后在“新建项目”向导中执行以下操作:
    1. 在“类别”下选择 "UML"。
    2. 在“项目”下选择“对 Java 项目执行逆向工程”。
    3. 单击“下一步”。
  2. 在“项目名称”字段中,键入 UMLProject
  3. 对于“项目位置”字段,单击“浏览”以导航并选择 UMLTut 文件夹,然后单击“打开”。
  4. 对于“Java 项目”字段,从下拉列表中选择 BankApp
  5. 保持“逆向工程”列中的复选框处于选中状态。
  6. 单击“完成”。
    将显示“正在打开项目”进度对话框。
    “项目”窗口中会出现 UMLProject 项目。

查看演示

返回页首


生成类图

在本部分,您将为上一部分导入的 BankApp 应用程序生成类图。

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

查看演示

返回页首


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

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

  1. 在“项目”窗口中,展开 "UMLProject" >“模型”> "bankpack" 节点。
  2. 展开 "BankAccount" 节点及其“属性”节点。
    BankAccount 类的所有属性均包含在此文件夹中。如果属性的数目少于三个,那么这些属性将直接显示在类节点下,而不是“属性”文件夹中。
  3. 选择标记为 private double balance 的属性节点 “属性”节点图标的图像
    属性窗口将显示该属性的名称及其属性。
  4. 在“项目”窗口的 BankAccount 类节点下,展开“操作”节点 显示“操作”节点图标的图像。
    BankAccount 类的所有操作均显示在此节点下。
  5. BankAccount 类下,展开“关系”节点 显示“关系”节点图标的图像。
    将显示三种类型的关系节点:特化、聚合以及实现。
  6. 展开“特化”节点 显示“泛化”图标的图像。,然后展开三个泛化节点。
    泛化链接显示了 BankAccount 类与其他元素(CheckingPlatinumSaving 类)之间的关系。
  7. (可选)在继续执行下一部分之前,请折叠 BankAccount 类下展开的节点。

查看演示

返回页首


浏览图编辑器

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

  1. 双击位于图编辑器顶部的 "BankClassDiagram" 标签。
    此操作将会放大类图编辑器,使其占据整个 IDE 的窗口空间。

    注意:这是一个切换操作:要撤消此操作,请再次双击 BankClassDiagram 标签。
  2. 在展开的图编辑器中,单击图工具栏上的“适应窗口大小”按钮 显示“适应窗口大小”图标的图像。,以在展开的编辑器中全屏显示该图。

    注意:请注意图工具栏中的缩放级别百分比字段。您可以在此字段中键入不同的数字来控制图的大小。
  3. 选择图工具栏上的“对称结构布局”按钮 显示树状结构样式图标的图像。,然后在“布局”警告对话框中单击“是”。
    IDE 会将 BankClassDiagram 图排列成对称布局样式。
  4. 选择图工具栏上的“分层结构布局”按钮 显示分层结构样式图标的图像。,然后在“布局”警告对话框中单击“是”。
    IDE 会将 BankClassDiagram 图重新排列成分层布局样式(所有元素都位于 bankpack 包的下面)。
  5. 选择图工具栏上的“正交结构布局”按钮 显示正交结构样式图标的图像。,然后在“布局”警告对话框中单击“是”。
    IDE 会将 BankClassDiagram 图重新排列成矩形布局样式。

查看演示

返回页首


使用“概览”窗口

在本部分,将使用“概览”窗口的功能来获得图编辑器中图的可缩放视图。

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

查看演示

返回页首


为类生成依赖关系图

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

  1. 双击 "BankClassDiagram" 标签以切换至该图的全屏视图。
  2. 右键单击图编辑器中的 BankAccount 类,然后从弹出式菜单中选择“生成依赖关系图”。
    IDE 将创建一个依赖关系图,并在图编辑器中打开一个“BankAccount依赖关系”标签以显示新图。现在,请将注意力集中在图编辑器中显示 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" 节点,以在“项目”窗口中显示序列图元素。

查看演示

返回页首


小结

在本教程中,您了解了如何通过将 Java 应用程序的数据导入到 UML 模型中对该应用程序执行逆向工程。具体执行的任务如下所示:

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


返回页首

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by