深度剖析UML序列图中的组合碎片

开发 架构
UML序列图有很多值得学习的地方,本文向大家介绍一下UML序列图中的组合碎片,组合碎片主要包括跳转和并行两大部分,希望通过本文你能学到更多知识。

本文和大家重点讨论UML序列图中的组合碎片的概念,在本文前面“基础”的段落中呈现的,我介绍了“变体”,“选择项”,和“循环”的组合碎片。这些三个组合碎片是大多数人将会使用最多的。

组合碎片(跳转和并行)

在本文前面“基础”的段落中呈现的,我介绍了“变体”,“选择项”,和“循环”的组合碎片。这些三个组合碎片是大多数人将会使用最多的。然而,有二个其他的组合碎片,大量共享的人将会发现有用——跳转和并行。

UML序列图中跳转

跳转组合碎片几乎在每个方面都和选择项组合碎片一致,除了两个例外。首先,跳转的框架namebox的文本“break”代替了“option”。其次,当一个跳转组合碎片的消息运行时,封闭的交互作用的其他消息将不会执行,因为序列打破了封闭的交互。这样,跳转组合碎片非常象C++或Java的编程语言中的break关键字。

 

图16:来自图8的UML序列图片段的重构,片段使用跳转代替变体

跳转最常用来做模型异常处理。图16是图8的重构,但是这次图16使用跳转组合碎片,因为它把balance<amount的情况作为一个异常对待,而不是一个变体流。要阅读图16,你从序列的左上角开始,向下读。当序列到达返回值“balance”的时候,它检查看看是否余额比金额更少。如果余额不少于金额,被传递的下一个消息是addDebitTransaction消息,而且序列正常继续。然而,在余额比金额更少的情况下,然后序列进入跳转组合碎片,它的消息被传递。一旦跳转组合的消息的已经被传递,序列不发送任何其它消息就退出(举例来说,addDebitTransaction)。
注意有关跳转的一件重要的事是,它们只引起一个封闭交互的序列退出,不必完成图中描述的序列。在这种情况下,跳转组合是变体或者循环的一部分,然后只是变体或循环被退出。

UML序列图中并行

今天的现代计算机系统在复杂性和有时执行并发任务方面不断进步。当完成一个复杂任务需要的处理时间比希望的长的时候,一些系统采用并行处理进程的各部分。当创造一个UML序列图,显示并行处理活动的时候,需要使用并行组合碎片元件。
并行组合碎片使用一个框架来画,你把文本“par”放在框架的namebox中。然后你把框架的内容段用虚线分为水平操作元。框架的每个操作元表示一个在并行运行的线程。

 

图17:oven是并行做两个任务的对象实例

图17可能没有举例说明做并行活动的对象的***的计算机系统实例,不过提供了一个容易理解的并行活动序列的例子。序列如这样进行:hungryPerson传递cookFood消息给oven对象。当oven对象接收那个消息时,它同时发送两个消息(nukeFood和rotateFood)给它本身。这些消息都处理后,hungryPerson对象从oven对象返回yummyFood。

总结

UML序列图是一个用来记录系统需求,和整理系统设计的好图。UML序列图是如此好用的理由是,因为它按照交互发生的时间顺序,显示了系统中对象间的交互逻辑。
 

【编辑推荐】

  1. 图例解析UML序列图中变体和选择项作用
  2. 绘制UML序列图时必须注意的几个问题
  3. 技术分享 Eclipse和UML工具EA的连接方法
  4. 实例解析UML序列图使用
  5. 学习笔记 解析UML序列图中符号和生命线

 

 

责任编辑:佚名 来源: it168.com
相关推荐

2010-07-07 17:14:44

UML序列图

2010-06-11 14:26:28

UML序列图

2010-07-07 17:05:26

UML序列图

2010-07-07 17:23:10

UML序列图

2010-07-05 11:01:05

常用UML图

2010-06-13 12:40:44

UML序列图

2010-07-01 16:38:28

UML序列图

2010-07-06 16:11:52

UML序列图

2009-04-23 14:21:29

UML序列图绘制

2010-07-07 14:33:11

UML序列图

2010-06-09 09:41:33

UML类图

2010-06-13 11:28:39

UML序列图

2010-06-17 18:31:12

绘制UML序列图

2010-07-07 14:28:52

绘制UML序列图

2010-07-12 14:08:59

UML序列图

2010-07-01 16:48:54

UML序列图

2010-07-06 12:54:17

UML序列图

2010-06-11 14:35:18

UML序列图

2010-06-11 16:27:47

UML视图

2010-07-06 14:27:42

Visio绘制UML序
点赞
收藏

51CTO技术栈公众号