您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
业务架构设计
4月18-19日 在线直播
基于UML和EA进行系统分析设计
4月25-26日 北京+在线
AI 智能化软件测试方法与实践
5月23-24日 上海+在线
     
   
 
 订阅
UML 建模:创建序列图
 
 
 
 
   次浏览      
2007-12-7
 
编辑推荐:
本文主要介绍如何进行UML的序列图建模,希望对您的学习有所帮助。
本文来源于gceclub.sun.com.cn ,由火龙果软件Alice编辑,推荐。

本教程适用于 Sun Java Studio Enterprise 8 和 8.1 版本。

本教程要求您首先完成其配套教程,即使用 UMLTutorialProject 创建类图和协作图。因此,在学习本序列图教程之前,请首先完成 UML 建模:创建类图以及 UML 建模:创建协作图。

在本教程中,您将了解如何使用 Sun Java Studio Enterprise 集成开发环境 (Integrated Development Environment, IDE) 的 UML 建模功能来创建 UML 序列图。序列图是一种对系统中协作对象组之间的交互关系的可视表示。序列图由称为生命线的垂直线条组成。每个生命线元素表示一个给定对象的生命。生命线通过水平线条相连,这些水平线条表示从方案中的一个对象传输至下一个对象的消息。

要使用本教程,您必须在系统中安装 Java Studio Enterprise IDE,并且应该熟悉 IDE 的基本组成部分。同时,还应该对 Java 编程语言和 UML 建模有基本的了解。要了解 Java Studio Enterprise IDE 的基础知识,请参见联机帮助中的“IDE 基础知识”主题。

目录

使用序列图

序列图是一个模型,用于描述对象组如何随着时间在某些行为方面进行协作。序列图捕获单个用例的行为,并显示特定用例的时间框架中的对象以及这些对象之间传递的消息。序列图并不显示对象之间的关系。

序列图具有以下用途:

  • 当不同的类中存在多个简短的方法时,描述控制流的整体序列。
  • 显示并发进程和激活。
  • 显示在协作图中难以描绘的时间序列。
  • 显示涉及类交互而与对象无关的一般形式。

创建序列图

本教程将使用 UML 建模:创建类图教程中创建的类图以及 UML 建模:创建协作图教程中创建的协作图。在开始执行下列步骤之前,请首先完成这些教程。

本部分包含以下步骤:

生成序列图
  1. 启动 IDE(如果需要)。
  2. 在“项目”窗口中,右键单击 "UMLTutorialProject" >“模型”> "CollaborationDiagram" 节点,然后从弹出式菜单中选择“通过选定的元素创建图”。
    将打开新建向导,其中显示“创建新图”页。
    注意:  您可以从弹出式菜单列出的两类可用交互图中选择一种类型:协作图和序列图。这些图着重描述对象之间的交互关系。
  3. 在“图类型”列表中,选择“序列图”。
  4. 在“图名称”字段中,键入 SequenceDiagram。
  5. 保留“名称空间”字段中的缺省设置,然后单击“完成”。
  6. IDE 将执行以下操作:
    • 在“项目”窗口的 "CollaborationDiagram" 节点下创建 SequenceDiagram 节点。
    • 在图编辑器中显示新图(该图由来自协作图的生命线元素和消息构成)。
    • 打开建模组件面板,并显示在创建序列图过程中使用的图标。
    生成的序列图应当与下面的图类似。

    屏幕截图:生成的序列图

完善生成的图

事务中的对象会被绘制成点状垂直线条,其名称显示在顶部。由于在创建序列图时无法预定义生命线元素的顺序,因此您需要在此时对它们进行重新排序。

  1. 选择标记为 User 的生命线,然后将其移至图的左侧。
  2. 对其余的生命线元素进行重新排序,使其均匀地分布于图编辑器中。请按以下顺序从左到右依次放置生命线:
     
    • User
    • ATM
    • Consortium
    • Branch
    此时,序列图应当与下面的图类似。

    屏幕截图:对生命线元素进行重新排序后的序列图

     

添加自调用消息元素

自调用消息图元素表示调用对象时使用的消息。本图中表示的内部操作是对 ATM 对象中现有现金的验证。

  1. 您可能需要延长生命线元素,以便放置消息元素。要延长生命线,请按照下列步骤操作:
     
    1. 选择 User 生命线元素。
    2. 单击底部中心的蓝色框,然后向下拖动该框以延长生命线。
    3. 重复执行步骤 a 和 b 以延长其余的生命线,直至序列图与下面的图类似。

      屏幕截图:延长了生命线的序列图

  2. 从建模组件面板的“基本”类别中,选择 "Message To Self" 图标 "Message To Self" 图标
  3. 单击延长的 ATM 生命线元素的下面部分。
    IDE 将在此生命线上放置一个自调用消息元素。
  4. 在图编辑器中的任意位置单击鼠标右键以取消选择 "Message To Self" 图标。
  5. 在自调用消息元素中,单击下面的消息箭头。
    属性窗口中将显示该消息的属性。
  6. 在属性窗口的“名称”字段中,键入 validateCashOnHandOperation,然后按 Enter 键。
  7. 右键单击自调用消息元素中上面的消息箭头,然后从弹出式菜单中选择“操作”。下图指示了放置光标的位置。请注意位于顶部箭头上方的双横线。

    屏幕截图:自调用消息中的光标放置

  8. 从弹出式菜单中选择“操作”>“添加操作”。
    将打开一个单行编辑器,并显示以下信息:
    可视性 returnType 名称(参数) {属性, ...}
      
  9. 按照如下所示定义操作:
    public boolean getIsOperating
      
    消息的上面部分将被标记为下图所示的内容。

    屏幕截图:带有标签的自调用消息

使用调用消息元素

由于 validateCashOnHand 操作是 ATM 类的一部分,因此需要在生命线上放置一个消息流来调用该操作。

  1. 从建模组件面板的“基本”类别中,选择 "Synchronous Message" 图标 "Synchronous Message" 图标
  2. 在 User 生命线元素(标记为 :User)的现有蓝条下面单击鼠标左键。
  3. 在您第一次单击位置右侧的 ATM 生命线元素上再次单击鼠标左键。

    图中将显示一个消息和一个返回消息。
    注意:  如果不希望图中显示返回消息,请在图编辑器的空白区域单击鼠标右键,然后从弹出式菜单中取消选择“显示所有返回消息”。

  4. 在图编辑器中的任意位置单击鼠标右键以取消选择 "Synchronous Message" 图标。
  5. 右键单击刚创建的消息,然后从弹出式菜单中选择“操作”>“添加操作”。
  6. 键入 validateCashOnHand,然后按 Enter 键。
    IDE 将在图中标记该消息,并将其作为操作添加到类图的 ATM 类中。在“项目”窗口中,展开 "ATM" 类节点,确认操作列表与下图所示的内容类似。

    屏幕截图:在“项目”窗口中展开的 ATM 类

 

使用自动扩展消息选项

为了便于设计过程的顺利进行,IDE 提供了一个自动扩展消息的选项。如果将自动扩展设置为选定状态,则在图中放置新消息时,其占用的空间便会扩展为消息的宽度。

  1. 在位于生命线元素上方的灰色标题区域中,右键单击 User 和 ATM 元素名称之间的区域,以便设置自动扩展选项。
    将打开一个弹出式菜单。
  2. 选择“将宽度设置为消息宽度”。
    两个元素名称之间的跟踪栏中将显示一个指示器,如下图所示。

    屏幕截图:选定“将宽度设置为消息宽度”选项的序列图

     

  3. 重复执行以上步骤,在 ATM 和 Consortium 元素之间以及 Consortium 和 Branch 元素之间设置消息宽度选项。

 

使用 "Create Message" 图标

通过使用 "Create Message" 图标,可以创建生命线元素或实例。

  1. 从建模组件面板的“基本”类别中,选择 "Create Message" 图标 "Create Message" 图标
  2. 单击 Branch 生命线的下面部分。

     
    注意:  请务必在线条上单击鼠标左键,否则不能正确绘制链接。

  3. 向 Branch 生命线的右侧绘制链接,然后再次单击鼠标左键。
    图中将放置一个消息和一条生命线,如下图所示。

    屏幕截图:添加了消息的 Branch 生命线

  4. 按 Esc 键以取消选择该图标。
  5. 选择新的生命线。
    属性窗口将显示此生命线元素的属性。
  6. 在属性窗口的“表示类元”行中,单击向下箭头。
    将显示一个下拉列表。
  7. 从下拉列表中选择 "CashierStation",然后按 Enter 键。
  8. 在图编辑器中单击鼠标左键以查看此带有标签的生命线元素。
     
    注意:  您可以适当放宽新的生命线元素,直至看到其完整的名称 CashierStation 为止。
    此时,序列图应当与下面的图类似。

    屏幕截图:包含新生命线的序列图

添加异步链接

异步消息元素表示不阻止调用对象的消息。此类消息能够创建新对象、创建新线程以及与现有线程进行通信。

  1. 从建模组件面板的“基本”类别中,选择 "Asynchronous Message" 图标 "Asynchronous Message" 图标
  2. 通过执行以下操作在 Branch 和 CashierStation 生命线之间绘制一条链接:单击 Branch 生命线元素,然后再单击 CashierStation 生命线元素。
  3. 按 Esc 键以取消选择该图标。
  4. 右键单击新链接,然后从弹出式菜单中选择“操作”> "public int getStationID"。
    这将在此消息中添加操作,如下图所示。

    屏幕截图:包含异步消息的序列图

使用组合片段元素

组合片段允许在序列图中直接表示逻辑组件,如备选项、选项、异常、并行合并、循环、求反、临界区域和断言等。组合片段提供了一种方法,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。

  1. 从建模组件面板的“控制”类别中,选择 "Combined Fragment" 图标 "Combined Fragment" 图标
  2. 要绘制组合片段元素以封装消息 public void validateCashOnHand,请在表示该消息的蓝色虚线矩形的外部单击鼠标左键,然后拉伸一个矩形以围住该消息。
    请切记:在单击鼠标左键时不要选定任何生命线元素。该组合片段应如下图所示。

    屏幕截图:围绕消息放置的组合片段

  3. 按 Esc 键以取消选择该图标。
  4. 右键单击组合片段元素中的 "assert" 标签,然后选择“交互运算符”> "loop"。

     
    注意:  loop 交互运算符指定组合片段表示一个循环。每次重复循环时,将计算触发表达式的结果。触发表达式可以包括特定次数的循环迭代。

  5. 右键单击组合片段的标签 "loop",然后从弹出式菜单中选择“交互操作数”>“编辑交互约束”。
    IDE 将在目标组合片段元素中显示一个表达式框。
  6. 双击 "expression" 一词,使表达式框处于可编辑状态,如下图所示。
  7. 屏幕截图:消息中的可编辑表达式框

     
  8. 键入 x < 10,然后按 Enter 键。
  9. 在图编辑器中单击鼠标左键。
    将接受并在框中显示此表达式。此时,序列图应当与下面的图类似。

    屏幕截图:完成的序列图

保存图

完成序列图后,您可以保存该图。

  1. 在图编辑器中,右键单击 "SequenceDiagram" 标签。
  2. 从弹出式菜单中选择“保存文档”。
    将关闭菜单并保存图。
     
    注意:  退出 IDE 时,系统也会提示您是否要保存图。
 

小结

在本教程中,您了解了如何使用现有的协作图来创建序列图。具体执行的任务如下所示:

  • 通过现有的协作图生成序列图
  • 使用建模组件面板中的图标向图中添加消息
  • 向图中添加链接
  • 添加组合片段元素
  • 保存图

有关 Java Studio Enterprise UML 建模的详细信息,请参阅 IDE 中的联机帮助并访问 Java Studio Enterprise 开发者资源门户,以获取有关 UML 建模的教程、视频和其他资源。

   
次浏览       
 
相关文章

用户手册:EA Helper
自然语言自动化生成图
使用iSpace进行多人协作建模
基于模型的软件复用(MBSR)
 
相关文档

AUTOSAR_TR_BSW UML模型建模指南
UML时间图建模(基于EA)
UML 模型框架(基于EA)
UML序列图编写规范
 
相关课程

UML+EA+面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于UML和EA进行系统分析设计

最新活动计划
DeepSeek在软件测试应用实践 4-12[在线]
DeepSeek大模型应用开发实践 4-19[在线]
UAF架构体系与实践 4-11[北京]
AI智能化软件测试方法与实践 5-23[上海]
基于 UML 和EA进行分析设计 4-26[北京]
业务架构设计与建模 4-18[北京]
 
 
最新文章
在EA中内嵌文档- Artifact
EA中模型视图
EA中的实体关系图
使用EA进行风险建模
EA中的项目词汇表
EA的模型导出或导入csv文件
自定义表格(Custom Table)在EA中的使用
Gap Analysis Matrix(差距分析矩阵)
更多...   
MBSE工具
MBSE平台
建模工具 EA
模型库-Model Center
需求管理-ReqManager
自动建模-Modeler
多级仿真-Sys Simulator
代码工程-Code Engineer
文档生成器-DocGenerator
更多...   
成功案例
广汽研究院 SysML+EA+软件分析设计
高合汽车研发部门 建模工具EA、WebEA、学习视频
国汽智联 建模工具EA、模型库、WebEA和iSpace
亿咖通 MBSE工程体系与工具链咨询
中航无人机 MBSE工具链
吉利汽车 购买EA工具
华科汽车零部件 购买EA工具
东风岚图汽车 购买EA工具 以及EA定制开发
更多...