UML 2.0 – 概述
UML 2.0在统一建模语言的世界里完全是一个不同的层面。它在本质上更加复杂和广泛。与UML 1.5版本相比,文档的范围也有所增加。UML 2.0增加了新的功能,使其使用更加广泛。
UML 2.0增加了正式和完全定义的语义的定义。这种新的可能性可以被用于模型的开发,相应的系统可以从这些模型中生成。然而,为了利用这一新的维度,必须做出相当大的努力来获取知识。
UML 2.0的新维度
在UML 2.0的最新版本中,UML的结构和文档被完全修改。现在有两个文件可以描述UML —
- UML 2.0基础设施定义了UML所基于的语言的基本构造。这一部分与UML的用户没有直接关系。它更多地是针对建模工具的开发者。这个领域不在本教程的范围内。
-
UML 2.0上层结构定义了UML 2.0的用户构造。它指的是那些用户将在直接层面上使用的UML元素。这是UML用户社区的主要焦点。
创建UML的这个修订版是为了实现重组和完善UML的目标,以便简化可用性、实现和适应性。
UML的基础设施被用来 −
- 提供一个可重用的元语言核心。这被用来定义UML本身。
-
提供调整语言的机制。
UML的上层结构被用来 —
- 为基于组件的开发提供更好的支持。
-
改进架构规范的构造。
-
为行为的建模提供更好的选择。
需要注意的是上述的主要划分。这些划分是用来提高UML的可用性,并定义对其使用的清晰理解。
还有一个维度,在这个新版本中已经提出。它是一个全新的对象约束语言(OCL)和图表互换的建议。这些功能共同构成了完整的UML 2.0包。
UML 2.0中的建模图
交互建模
UML 2.0中描述的交互图与早期版本不同。然而,基本概念仍然与早期版本相同。主要的区别是UML 2.0中的图的增强和附加功能。
UML 2.0以下列四种不同的方式对对象交互进行建模。
- 序列图 是对象间交互的时间依赖性视图,以完成系统的行为目标。时间序列与早期版本的序列图类似。一个交互可以在系统设计中的任何抽象层次上进行设计,从子系统的交互到实例层次。
-
通信图是 UML 2.0中增加的一个新名称。通信图是对象间信息传递的结构视图,取自UML 1.4和早期版本的协作图概念。它可以被定义为协作图的一个修改版本。
-
Interaction Overview diagram 也是UML 2.0中新增加的内容。交互概述图描述了一组交互组合成逻辑序列的高级视图,包括在交互之间导航的流控逻辑。
-
在UML 2.0中还增加了 时序图 。它是一个可选的图,旨在指定在交互过程中发送和接收信息的时间限制。
从上面的描述中,需要注意的是,所有图的目的都是为了发送/接收消息。这些消息的处理是对象内部的。因此,对象也有接收和发送消息的选项,这里涉及到另一个重要的方面,叫做接口。现在这些接口负责接受和发送消息给对方。
因此,我们可以得出结论,UML 2.0中的交互是以不同的方式描述的,这就是为什么新的图名出现的原因。如果我们分析新的图,那么很明显,所有的图都是基于早期版本中描述的交互图而创建的。唯一的区别是在UML 2.0中增加了额外的功能,使图表更有效和更有目的性。
建模合作
正如我们已经讨论过的,协作被用来模拟对象之间的共同交互。我们可以说,协作是一种互动,其中一组消息由一组具有预先定义的角色的对象来处理。
需要注意的是早期版本的协作图和UML 2.0版本的协作图之间的区别。为了区别,在UML 2.0中,协作图的名称已经改变。在UML 2.0中,它被命名为 通信图。
因此,协作被定义为一个具有属性(properties)和行为(operations)的类。协作类上的隔间可以由用户定义,可用于交互(序列图)和结构元素(复合结构图)。
下图是观察者设计模式的模型,即一个作为可观察项目的对象和任意数量的作为观察者的对象之间的协作。
建立通信模型
通信图与早期版本的协作图略有不同。我们可以说它是早期UML版本的一个缩减版本。通信图的区别因素是对象之间的联系。
这是一个可视化的链接,在序列图中是没有的。在序列图中,即使对象之间没有联系,也只显示对象之间传递的信息。
通信图是用来防止建模者犯这个错误的,它使用对象图格式作为消息传递的基础。通信图上的每个对象被称为对象生命线。
通信图中的消息类型与顺序图中的相同。通信图可以模拟同步、异步、返回、丢失、找到、对象创建等消息。
下图显示了一个有三个对象和两个链接的对象图,构成了通信图的基础。通信图上的每个对象被称为对象生命线。
交互建模概述
在实际使用中,一个序列图被用来为一个单一的场景建模。许多序列图被用来完成整个应用。因此,在为单一场景建模时,有可能忘记整个过程,这可能会引入错误。
为了解决这个问题,新的交互概述图结合了来自活动图的控制流和来自序列图的消息传递规范。
活动图使用活动和对象流来描述一个过程。交互概述图使用交互和交互的发生。序列图中的生命线和消息只出现在交互或交互发生中。然而,参与交互概述图的生命线(对象)可以与图名一起列出。
下图是一个带有决策钻石、框架和终止点的交互概述图。
计时图的建模
这个图的名字本身就描述了该图的目的。它基本上是处理事件在整个生命周期中的时间。
因此,时序图可以被定义为一个特殊目的的交互图,用于关注一个对象在其生命周期内的事件。它基本上是状态机和交互图的混合物。时序图使用以下时间线
- 状态时间线
-
一般价值时间线
时序图中的生命线在一个框架的内容区域内形成一个矩形空间。它通常是水平排列的,从左到右阅读。多条生命线可以在同一框架内堆叠,以模拟它们之间的互动。
总结
UML 2.0是一个增强的版本,其中增加了新的功能,使其更加可用和高效。在UML 2.0中,有两个主要类别,一个是UML超级结构,另一个是UML基础设施。虽然新的图表是基于旧的概念,但它们仍然有一些额外的功能。
UML 2.0提供了四种交互图,顺序图,通信图,交互概述图,以及一个可选的时间图。所有这四个图都使用框架符号来包含一个交互。框架的使用支持将交互作为交互发生的重用。