UML随手记

介绍

Unified Modeling Language (UML)又称统一建模语言或标准建模语言,于1997年OMG 组织(Object Management Group对象管理组织)发布。

UML 是一种编制软件蓝图的标准化语言,它的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML 提出了一套 IT 专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划。UML支持面向对象的技术,能够准确的方便地表达面向对像的概念,体现面向对象的分析和设计风格。

作用

UML 统一了Booch、OMT、OOSE和其他面向对象方法所涉及的基本概念和建模符号。

在进行项目的时候,通过使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等一些逻辑思维。

特点

  • 面向对象
  • 可视化,表达能力强
  • 独立于过程
  • 独立于程序设计
  • 容易掌握使用

组成

  • 事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象
  • 关系(Relationships):关系把事物紧密联系在一起
  • 图(Diagrams ):图是事物和关系的可视化表示

分类

UML 的核心是图表,大致可以将这些图归类为结构图和行为图。

  • 结构图是由像静态图,如类图,对象图等静态图;
  • 行为图是由像序列图,协作图等动态图;

一个系统的静态和动态特性是通过使用这些图的可视化。


UML构建模块

UML 的构建块的定义如下:

  • 事物:事物是实体抽象化的最终结果,是 UML 构建块最重要的组成部分。
  • 关系:它显示元素是如何彼此相关联,此关联描述的一个应用程序的功能。
  • 图:图是事物集合的分类,图的视觉效果是整个过程中最重要的部分。图的整个讨论的最终输出所有要素,关系用于使一个完整的UML图。

事物

事物的分类如下:

结构事物

结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素。

  • A 类(class):类是指具有相同属性、方法、关系和语义的对象的集合;

img

下面的图表示的 UML 类,该图被分为四个部分。

  • 顶端部分被用来命名类。
  • 第二个是用来显示类的属性。
  • 第三部分是用来描述由类执行的操作。
  • 第四部分是可选的显示附加组件

img

活动类表示法:活动类类似于一类具有扎实的边界,活动类一般是用来描述一个系统的并发行为。

img

类是用来表示对象,对象可以是任何性质和职责。

对象表示以同样的方式作为类。唯一的区别是有下划线的名称,由于对象是实际执行的一类被称为类的实例。因此,它具有相同的使用作为类,如下图所示。

img

  • B 接口(interface):接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作;

img

接口是用圆来表示,如下所示。它有一个名称,一般写成下面的圆圈。

img

接口是用来描述的功能,而不执行。界面就像一个模板,定义不同的功能但不执行。当一个类实现了接口,也按要求实现功能。

  • C 协作(collaboration):协作定义元素之间的相互作用;

img

协作表示由 eclipse 虚线如下所示。它有一个名字,里面写 eclipse。

img

协作表示职责,一般职责在一组。

  • D 用例(use case):用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;

img

用例表示它里面的一个名字作为 eclipse。它可能包含更多的责任。用例是用来捕捉系统的高层次功能。

img

  • E 组件(component):组件描述物理系统的一部分;

img

UML 中的一个组件,如下图所示名称里面。在必要时,可以添加额外的元素。

img

元器件是用来表示系统的任何部分的 UML 图。

  • F 节点(node):一个节点可以被定义为在运行时存在的物理元素;

img

如下图所示,同一个名字。一个节点表示一个物理的系统组件。

img

节点用来表示物理系统的一部分,如服务器,网络等。

角色表示法:某些内部或外部的与系统进行交互的实体,可以被定义为一个角色。

img

初始状态表示法:初始状态被定义,以显示开始的一个过程。这个符号存在于大多数图。

img

初始状态的表示法的用法是显示一个过程的起点。

最终状态表示法:最终状态是用来显示的一个过程的结束。这种表示法也可以用来在大部分的图中描述的目的。

img

最终状态表示法的用法是显示一个过程的终止点。

行为事物

行为事物指的是 UML 模型中的动态部分,代表语句里的 “动词”,表示模型里随着时空不断变化的部分。

UML 有一个强大的功能集,代表软件和非软件系统的动态部分。这些功能包括交互和状态机。

相互作用可分为两种类型:

  • 顺序(序列图)
  • 协作(协作图)
  • A 交互:交互被定义为一种行为,包括一组元素之间的消息交换来完成特定的任务。

img

交互基本上是两个 UML 组件之间的信息交换。下图表示交互中使用不同的符号。

img

交互是用来表示一个系统的组件之间的通信。

  • B 状态机:状态机由一系列对象的状态组成,它是有用的,一个对象在其生命周期的状态是很重要的。

img

img

状态机是用来描述一个系统组件的不同状态。状态可以是活动,空闲或任何其他根据情况。

分组事物

可以把分组事物看成是一个”盒子”,模型可以在其中被分解。目前只有一种分组事物,即包(package)。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。

  • 包:封装是唯一一个分组事物可收集结构和行为的东西。

img

img

注释事物

注释事物可以被定义为一种机制来捕捉UML模型元素的言论,说明和注释。注释是唯一一个注释事物。

  • 注释:注释用于渲染意见,约束等的UML元素。

img

如:

img

关系

定义了四种关系:

A 依赖关系:

依赖是两件事物之间的语义联系,其中一个事物的变化也影响到另一个事物。

img

依赖关系的虚线箭头表示,如下所示。箭头代表的独立元素,另一端的依赖元素。

img

依赖关系是用来表示一个系统的两个元素之间的依赖。

B 协作:

一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系);

img

联合会(无)两侧的箭头的虚线表示。两端代表两个相关联的元素,如下所示。在两端(1,*等)的多样性也提到多少对象相关。

img

协作是用来表示一个系统的两个元素之间的关系。

C 泛化:

泛化可以被定义为一个专门的元件连接关系与一个广义的元素,它基本上描述了在对象世界中的继承关系,是一种一般化-特殊化的关系;

img

泛化为代表的空心箭头,如下图所示箭头的一端表示的父元素而另一端表示子元素。

img

泛化是用来描述一个系统的两个元素的亲子关系。

D 实现:

类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。

img

UML 类图:

类图是使用面向对象的社会最流行的 UML 图。它描述了在一个系统中的对象和他们的关系,能够让我们在正确编写代码以前对系统有一个全面的认识。

一个单独的类图描述系统的一个具体方面,收集类图表示整个系统。基本上,类图表示系统的静态视图。

类图是唯一可以直接映射到面向对象的语言UML图。因此,它被广泛应用于开发者社区。

UML 对象图:

对象图(Object Diagram)描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。

在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例。

UML 组件图:

组件图是一种特殊的UML图来描述系统的静态实现视图。组件图包括物理组件,如库,档案,文件夹等。

此图是用来从实施的角度。使用一个以上的元件图来表示整个系统。正向和逆向工程技术的使用,使可执行文件组件图。

UML 部署图:

组件图是用来描述一个系统的静态部署视图。这些图主要用于系统工程师。

部署图是由节点和它们之间的关系。一个高效的部署图是应用软件开发的一个组成部分。

UML 用例图:

用例图是从用户角度描述系统功能,并指出各功能的操作者,用来捕捉系统的动态性质。

一个高层次的设计用例图是用来捕捉系统的要求,因此它代表系统的功能和流向。虽然用例图的正向和反向工程是不是一个很好的选择,但他们仍然在一个稍微不同的方法来模拟它。

UML 交互图:

交互图,用于捕获系统的动态性质。

交互图包括序列图和协作图,其中:序列图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显示对象间的动态合作关系。

UML 状态图:

状态图是一个用于模拟系统的动态性质的五个图。这些图用来模拟一个对象的整个生命周期。

一个对象的状态被定义为对象所在的条件下,特定的时间和对象移动对其他状态,在某些事件发生时。状态图还用于正向和反向工程。

状态图着重描述从一个状态到另一个状态的流程,主要有外部事件的参与。

UML 活动图:

活动图是 UML 的动态模型的一种图形,一般用来描述相关用例图,活动图是一种特殊的状态图。

准确的活动图定义:活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。


UML建模类型

为了区分 UML 模型, UML 建模用不同类型的不同的图。接下来介绍三个重要类型的UML建模:

(1)结构建模:

结构建模具有捕捉静态的功能,包括下列各项:

  • 类图
  • 对象图
  • 部署图
  • 包图
  • 复合结构图
  • 组件图

结构模型代表的系统架构,这个框架的所有其他组件存在的地方。因此,类图,组件图和部署图的部分结构建模。它们都代表的元素和机制将它们组装。

但是,从来没有的结构模型描述系统的动态行为。类图中是最广泛使用的结构图。

(2)行为建模:

行为建模描述了在系统中的相互作用,代表之间的交互的结构图,行为建模显示系统的动态性质,包括下列各项:

  • 活动图
  • 交互图
  • 用例图

所有上述的显示在一个系统中流动的动态序列。

(3)架构建模:

架构建模表示的是一个系统的总体框架,它包含了系统的结构和行为的元素。架构建模可以被定义为整个系统的蓝图。包图是根据架构模型进行的。