概述
UML由图和元模型组成,主要包括3个基本构造块:事物(Things)、关系(Relationships)和图(Diagrams)
1、四种事物
事物是实体抽象化的最终结果,是模型中的基本成员,UML中包含结构事物、行为事物、分组事物和注释事物。
结构事物(Structural Things)
结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素共有以下7种。
-
类(Class) :是指具有相同属性、方法、关系和语义的对象的集合。一个典型的类图如图1-1 所示。
-
接口(Interface) :是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作。
-
协作(Collaboration) : 描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模。一个典型的协作如图1-3所示。
用例(UseCase):用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标。用例的示意图如图1-4所示。
-
活动类(ActiveClass):活动类的对象有一个或多个进程或线程。活动类和类很相像,只是它的对象代表的元素的行为和其他的元素是同时存在的。典型的活动类图如图1-5所示。
-
组件(Component):组件是物理的、可替换的部分,包含接口的集合,例如 COM+、JavaBean等。典型的组件图如图1-6所示。
-
节点(Node) :节点是系统在运行时存在的物理元素,代表一个可计算的资源,通常占用些内存和具有处理能力,如图1-7所示。
行为事物(Behavioral Things)
行为事物指的是 UM,模型中的动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含两类。 -
交互(Ineraction) :交互是由一组对象之间在特定上下文中,为达到特定的目的而进行的系列消息交换而组成的动作,如图1-8所示。
-
状态机(State Machine) :状态机由一系列对象的状态组成,如图1-9所示。
2、四种关系
关系是将事物联系在一起的方式,UML中定义了4种关系。
-
依赖(Dependencies) 两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义,如图 1-12 所示。
-
关联(Association) 一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系),如图1-13 所示。
-
泛化(Generalization) 一种一般化一特殊化的关系,如图1-14所示展示了依赖、关联和泛化3种不同的关系
-
实现(Realization) 类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。实现(Realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约。在以下两种情况中将出现实现关系:在接口和实现它们的类或构件之间及在用例和它们的协作之间。实现的结构图如图 1-15所示。
3、十种图
图是事物集合的分类,UML中共包含10种图。
-
用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系。
-
类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构)。
-
对象图:是类图的一种实例化图(对象图是对类图的一种实例化)。
-
包图:是一种分组机制。
-
组件图:展示程序代码的物理结构(描述程序代码的组织结构,各种组件之间的依赖关系)
-
部署图:展示软件在硬件环境中(特别是在分布式及网络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构)。
- 状态图:描述一类对象具有的所有可能的状态及其转移关系。
-
活动图:展示系统中各种活动的执行流程。
-
序列图:展示对象之间的一种动态协作关系(一组对象组成,随时间推移对象之间交换消息的过程,突出时间关系)。
-
协作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)。
4、UML图分类
分类 | 类型 | 包含 | 作用 |
---|---|---|---|
静态建模 | 用例图 | 用例图 | 描述需求 |
静态建模 | 静态图 | 类图、对象图、包图 | 描述类结构 |
静态建模 | 实现图 | 组件图、部署图 | 描述软件结构 |
动态建模 | 行为图 | 状态图、活动图 | 描述动态模型 |
动态建模 | 交互图 | 序列图、协作图 | 描述交互关系 |