第十章——UML建模(下午第三道,15)
第十章——UML建模(下午第三道,15)
概述
统一建模语言(UML)是面向对象软件的标准化建模语言。
UML由三个要素构成:
- UML的基本构造块
- 支配这些构造块如何放置在一起的规则
- 运用于整个语言的些公共机制。
UML的词汇表包含3种构造块:事物、关系、图
事物是对模型中最具代表性的成分的抽象,关系把事物结合在一起,图聚集了相关的事物。
事物包括结构事物、行为事物、分组事物和注释事物。
- 结构事物(Structural Thing)。通常是模型的静态部分,描述概念或物理元素。结构事物包括类(Class)、接口(lnterface)、协作(Collaboration)、用例(Use Case)、主动类(Active Class)、构件(Component)和节点(Node)。
- 行为事物(Behavior Thing)。是UML模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为。共有两类主要的行为事物:交互(Interaction)和状态机(StateMachine)。
- 分组事物(Grouping Thing)。是UML模型的组织部分。它们是一些由模型分解成的“盒子”。在所有的分组事物中,最主要的分组事物是包(Package)。
- 注释事物(Annotational Thing)。是UML模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素。注解(Note)是一种主要的注释事物。注解是一个依附于一个元素或者一组元素之上,对它进行约束或解释的简单符号。
UML中有4种关系:依赖、关联、泛化和实现。
- 依赖(Dependency)。 依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。
- 关联(Association)。关联是一种结构关系,它描述了一组链,链是对象之间的连接。聚合(Aggregation)是一种特殊类型的关联,它描述了整体和部分间的结构关系。组合(Composition)也是一种特殊类型的关联,它同样体现了整体与部分间的关系,但比聚合更强,也称为强聚合。
- 泛化(Generalization)。泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。
- 实现(Realization)。实现是类元之间的语义关系,其中一个类元制定了由另一个类元保证执行的契约。在两种地方要遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。
类图
类图(Class Diagram)展现了一组对象、接口、协作及其之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。
类图给出了系统的静态设计视图,包含主动类的类图给出了系统的静态进程视图。作为模型管理视图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。
类图用于对系统的静态视图建模。这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。
当对系统的静态设计建模时,通常以下述3种方式之一使用类图:对系统的词汇建模;对简单的协作建模;对逻辑数据库模式建模。
用例图
用例图(Use Case Diagram)展现了一组用例、参与者(Actor)以及两者之间的关系。用例图通常包括用例、参与者、扩展关系、包含关系。
用例图用于对系统的静态用例视图进行建模,主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。
当对系统的静态用例视图建模时,可以用下列两种方式来使用用例图:对系统的语境建模;对系统的需求建模。
包含关系:<<include>>
扩展关系:<<extend>>
顺序图
顺序图(或称序列图)和协作图均被称为交互图,它们用于对系统的动态方面进行建模。
一张交互图显示的是一个交互,由一组对象及其之间的关系组成,包含它们之间可能传递的消息。
顺序图是强调消息时间序列的交互图。协作图则是强调接收和发送消息的对象的结构组织的交互图。
交互图用于对一个系统的动态方面建模。在大多数情况下,它包括对类、接口、构件和节点的具体的或原型化的实例及其之间传递的消息进行建模。交互图可以单独使用,用于可视化、详述、构造和文档化一个特定的对象群体的动态方面,也可以用来对一个用例的特定控制流进行建模。
顺序图:
活动图
活动图(Activity Diagram)是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。
活动图专注于系统的动态视图,它对于系统的功能建模特别重要,并强调对象间的控制流程。
状态图
状态图(State Diagram)展现了一个状态机,它由状态、转换、事件和活动组成。状态图关注系统的动态视图,对于接口、类和协作的行为建模尤为重要,强调对象行为的事件顺序。
状态图通常包含简单状态和组合状态、转换(事件和动作)。
状态图关注系统的动态视图,它对接口、类和协作的行为建模尤为重要,它强调对象行为的事件顺序。
通信图
通信图(Communication Diagram)强调收发消息的对象的结构组织。通信图强调参加交互的对象的组织。
产生一张通信图,如图所示,首先要将参加交互的对象作为图的顶点,然后把连接这些对象的链表示为图的弧,最后用对象发送和接收的消息来修饰这些链。这就提供了在协作对象的结构组织的语境中观察控制流的一个清晰的可视化轨迹。
特点:通信图有路径,顺序号
构件图
构件图(Component Diagram)展现了一组构件之间的组织和依赖。构件图专注于系统的静态实现视图。如图所示,它与类图相关,通常把构件映射为一个或多个类、接口或协作。