FeaturesPluginsDocs & SupportCommunityPartners

UML 建模:创建活动图

本教程适用于 NetBeans™ 5.5 集成开发环境 (Integrated Development Environment, IDE) 以及 NetBeans 5.5 UML 建模模块。

在本教程中,您将了解如何使用 IDE 的 UML 建模功能来创建简单的 UML 活动图。本教程将使用典型的方法步骤来创建活动图,并为您介绍一些 UML 建模模块提供的功能。本教程的目的并不在于向您传授 UML 概念或 Java 编程语言。

有关使用 NetBeans IDE 的更多信息,请参见 NetBeans Web 站点中的文档和支持页。

先决条件

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

系统要求

本教程假定您的系统满足 NetBeans 5.5 UML 建模模块发行说明中指定的要求。

本教程所需的软件

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

目录

返回页首


活动图 - 概述

活动图是任何系统中的活动、活动之间的数据流或判断的可视表示。单击活动图的图编辑器标签时,将在 IDE 的建模组件面板中显示一组特定的图标。活动图可以表示内容非常广泛的业务流程。

该图具有以下用途:

  • 描述活动以及活动之间的数据流或判断
  • 提供内容广泛的业务流程图
  • 描述在一个用例内发生的活动
  • 使用完全不同的符号显示多个不同的活动
  • 显示并行线程

下面提供了创建活动图时所要执行的任务。该表和下面的步骤描述了一种创建活动图的方法。

  1. 建立活动图
    • 创建 UML 项目
    • 创建一个包含空活动图的包
  2. 放置分区
    • 添加分区
    • 添加子分区
  3. 标识操作状态
    • 添加元素
      • 添加活动组
      • 添加调用
      • 添加初始节点元素
      • 添加水平分叉元素
      • 添加活动终结节点和判断节点
  4. 放置边和依赖关系
    • 添加活动边
    • 添加依赖关系
    • 标记边
  5. 使用组种类和条件
    • 为活动边添加触发条件
    • 选择并修改组种类

返回页首


建立活动图

要创建活动图,您必须先创建 UML 项目和一个包含空活动图的 Java 包。本部分包含以下步骤:


创建 UML 项目

  1. 从主菜单中,选择“文件”>“新建项目”,然后执行以下操作:
    1. 在“类别”下选择 "UML"。
    2. 在“项目”下选择“与平台无关的模型”。
    3. 单击“下一步”。
  2. 键入 ActivityDiagProj 作为项目名称,键入 ActivityDiagTut 作为项目的位置。
    请注意,在键入项目名称后,IDE 会自动建议将此名称用作项目文件夹的名称。
  3. 单击“完成”。
    将打开新建向导,并显示“创建新图”页。
  4. 就本示例而言,请单击“取消”。
    IDE 将执行以下操作:
    • 创建与平台无关的空建模项目
    • 在“项目”窗口中显示项目图标

返回页首

创建一个包含活动图的包

  1. 在“项目”窗口中,右键单击“模型”节点。
  2. 从弹出式菜单中选择“添加”>“包”。
  3. 在“名称”字段中,键入 ActDiagPkg 作为包的名称。
  4. 接受“名称空间”字段中的缺省值。
  5. 选中“创建指定了作用域的图”复选框。
  6. 在“图名称”字段中,键入 actDiagram 作为图的名称。
  7. 从“图类型”列表中选择“活动图”,然后单击“完成”。
    IDE 将执行以下操作:
    • 使用您输入的包名称在“模型”节点下创建一个包节点
    • 在包节点下创建一个图节点
    • 在图编辑器中显示新图(此时该图为空图)
    • 打开建模组件面板,其中显示了用于构建活动图的图标

    IDE 应当与下面的图类似:

    屏幕截图:最初建立活动图时的 IDE

返回页首


放置分区

可以使用 IDE 为活动图添加分区。分区元素用于分隔各个节点和边,以限制所包含的节点并显示这些节点视图。

  1. 从建模组件面板的“数据”类别中,选择 "Partition" 图标 "Partition" 图标
  2. 在图编辑器中单击鼠标左键,在图上放置一个分区元素。
    这会在图编辑器中放置一个未命名的分区元素。
  3. 在图编辑器中的任意位置单击鼠标右键以取消选择 "Partition" 图标。
  4. 向图编辑器的左侧拉伸该矩形框。
  5. 在选定该分区元素的情况下,单击鼠标右键,然后从弹出式菜单中选择“分区”>“将分区列添加到右侧”。
  6. 扩展分区的右列。
  7. 双击分区顶部的 Unnamed 一词并键入 Bank 以命名该分区。
  8. 按 Enter 键。
  9. 双击左列中的 Unnamed 一词并键入 Bank Lobby 以命名左列。
  10. 将右列命名为 Teller
    此时,活动图应当与下面的图类似。

    屏幕截图:标记了分区的活动图

返回页首


标识操作状态

本部分包含以下步骤:

添加活动组

  1. 从建模组件面板的“基本”类别中,选择 "Activity Group" 图标 "Activity Group" 图标
  2. 在图编辑器的 "Bank Lobby" 子分区内单击鼠标左键,将活动组元素放在图的左子分区内。
    这会将活动组嵌套在 Bank Lobby 子分区内。
  3. 单击鼠标右键以取消选择该图标。
  4. 双击新活动组上的 Unnamed 一词,键入 Customer,然后按 Enter 键。
  5. 选择刚添加的活动组。移动并放大该活动组使其几乎填充此子分区的整个区域。

返回页首

添加调用

  1. 从建模组件面板的“基本”类别中,选择 "Invocation" 图标 "Invocation" 图标
  2. 在 Bank Lobby 子分区的 Customer 活动组元素内单击鼠标左键,将两个调用元素放在该图上,其中一个元素在另一个元素的正下方。
  3. 取消选择该图标。
  4. 移动调用元素并调整其大小,使其完全包含在 Customer 活动组内,如下图所示。

    屏幕截图:带有分区和调用的活动图

  5. 双击刚添加的且位于上方的调用节点,键入 Approach Teller Counter,然后按 Enter 键以标记该元素。
  6. 选择位于下方的调用节点,并将其命名为 Enter Transaction
  7. 在 Teller 子分区中再放置六个调用元素,并使用以下名称进行命名:
    • Receive Transaction Request
    • Search Customer Info
    • Send to Customer Service
    • Process Transaction
    • Update Account Info
    • Notify Customer
    此时,活动图应当与下面的图类似。

    屏幕截图:标记了调用的活动图

返回页首

添加初始节点元素

  1. 从建模组件面板的“基本”类别中,选择 "Initial Node" 图标 "Initial Node" 图标
  2. 在 Bank Lobby 子分区内、且位于 Approach Teller Counter 元素的左侧,单击鼠标左键。
  3. 取消选择该图标。

返回页首

添加水平分叉元素

  1. 在建模组件面板的“控制”类别中,单击 "Horizontal Fork" 图标 "Horizontal Fork" 图标
  2. 将表示水平分叉元素的条形图标放在 Update Account Info 和 Notify Customer 调用元素的上方。
  3. 取消选择该图标。
  4. 拉伸该条形图标,使其宽度相当于这两个调用元素的宽度。
  5. 将另一个水平分叉元素放在 Update Account Info 和 Notify Customer 调用元素的下方,并且拉伸该条形图标,使其宽度相当于这两个调用元素的宽度。

返回页首

添加活动终结节点和判断节点

  1. 从建模组件面板的“基本”类别中,选择 "Activity Final Node" 图标 "Activity Final Node" 图标
  2. 将终结节点放在下面的水平分叉元素的下方。
  3. 取消选择活动终结节点图标。
  4. 从建模组件面板的“控制”类别中,选择 "Decision" 图标 "Decision" 图标
  5. 将判断元素放在位于 Search Customer Info 与 Send to Customer Service 元素之间的流上。
    此时,活动图应当与下面的图类似。

    屏幕截图:带有控制元素的活动图
  6. 取消选择判断图标。

返回页首


放置边和依赖关系

本部分包含以下步骤:

添加一个活动边元素

  1. 从建模组件面板的“基本”类别中,选择 "Activity Edge" 图标 "Activity Edge" 图标
    可以使用活动边将初始节点元素与调用元素连接起来。
  2. 单击初始节点元素,然后再单击标记为 Approach Teller Counter 的调用元素。
    现在,活动边链接会将两个元素连接起来。这些活动边链接的标签通常是隐藏的,您需要让这些标签显示出来。
  3. 在图编辑器中的任意位置单击鼠标右键以取消选择该图标。
  4. 选择并右键单击活动边元素。
  5. 从弹出式菜单中选择“标签”>“显示名称”。
    该链接将被标记为带有突出显示的文本 Unnamed
  6. 要命名该链接,请键入 Initiate Cash Withdrawal,然后按 Enter 键。

返回页首

添加多个活动边元素

  1. 从建模组件面板的“基本”类别中,选择 "Activity Edge" 图标。
  2. 绘制以下链接:
    • 从 Approach Teller Counter 至 Enter Transaction 的链接
    • 从 Enter Transaction 至 Receive Transaction Request 的链接
    • 从 Receive Transaction Request 至 Search Customer Info 的链接
    • 从 Search Customer Info 至判断节点的链接
    • 从判断节点至 Send to Customer Service 的链接
    • 从判断节点至 Process Transaction 的链接
    • 从 Process Transaction 至上面的水平分叉元素的链接
    • 从上面的水平分叉元素至 Update Account Info 和 Notify Customer 的链接
    • 从 Notify Customer 至下面的水平分叉元素的链接
    • 从 Update Account Info 至下面的水平分叉元素的链接
    • 从下面的水平分叉元素至终结状态元素的链接
  3. 单击鼠标右键以取消选择该图标。
    此时,活动图应当与下面的图类似:

    屏幕截图:带有活动边元素的活动图

返回页首


使用组种类和条件

本部分包含以下步骤:

为活动边添加触发条件
通过使用 UML 建模功能,您可以在属性窗口或图编辑器中为活动图添加触发条件。
  1. 在图编辑器中,右键单击判断节点和 Send to Customer Service 元素之间的活动边元素。
  2. 从弹出式菜单中选择“标签”>“显示触发条件”。
  3. 在触发条件方括号内,键入 No Customer Info,然后按 Enter 键。
  4. 对于判断节点和 Process Transaction 之间的活动边,请重复第 2 步和第 3 步。为此触发条件键入 Customer Info

返回页首

选择并修改组种类属性

在 IDE 中,活动组用于描述活动流中的循环。例如,活动组标注了流中存在的迭代。IDE 的 UML 建模功能提供了以下三个组种类:

  • 迭代
  • 结构化
  • 可中断
  1. 在图编辑器中,选择标记为 Customer 的活动组。
  2. 在属性窗口的 "GroupKind" 属性行中,单击向下方向键。
  3. 从下拉列表中选择“结构化”。
    图中的 Customer 活动组将被重新标记为结构化组。
    完成的活动图应当与下面的图类似:


    屏幕截图:完成的活动图

返回页首


小结

在本文中,您为一个简单的银行应用程序创建了活动图。您了解了如何使用 UML 建模模块提供的功能来创建一个典型的活动图。

有关 NetBeans 5.5 UML 建模模块的详细信息,请参阅 IDE 中的联机帮助并访问 NetBeans 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   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by