统一建模语言UML简介

原准备整理有关23种设计模式的资料,设计模式的图例中,主要使用的是UML的相关视图以及部分关系进行表示,而且在以往的软考 系统设计师以及系统架构设计师的考试内容中也系统地学习了UML的相关内容,故在此汇总相关资料,简要复习以及介绍UML的相关内容,以便后续持续学习以及为读者提供参考,文中不免疏漏之处,望读者不吝指教,不胜感激!

1. UML介绍

UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。

2. UML图

UML图分为静态视图和动态视图:
静态图分为:用例图,类图,对象图,包图,构件图,部署图。
动态图分为:状态图,活动图,协作图,序列图。

(1)用例图
用例图描述了系统提供的一个功能单元。

(2)类图
类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。

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

(4)包图
包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对包中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。

(5)构件图
构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。

(6)部署图
描述了系统运行时进行处理的结点以及在结点上活动的构件的配置。强调了物理设备以及之间的连接关系。

(7)状态图
是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。

(8)活动图
是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。

(9)协作图
交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而写作图按照空间结构布图

(10)序列图-时序图
交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。
序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。

3. UML关系

在UML类图中,常见的有以下几种关系:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)。

各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

(1)泛化
泛化关系是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
在这里插入图片描述
(2)实现
实现关系是一种类与接口的关系,表示类是接口所有特征和行为的实现。
在这里插入图片描述
(3)关联
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
在这里插入图片描述
(4)组合
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
  组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
在这里插入图片描述

(5)聚合
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
  聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
在这里插入图片描述

(6)依赖
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
在这里插入图片描述

4. UML绘制工具

(1) Microsoft Visio
(2)Enterprise Architect(简称EA)

5. 参考资料

[1] https://blog.csdn.net/caozhangyingfei0109/article/details/8534191
[2] https://www.cnblogs.com/huangjinyong/p/12048736.html
[3] https://www.cnblogs.com/yuwenlanleng/p/6581120.html
[4] https://www.cnblogs.com/itplay/p/10671715.html

猜你喜欢

转载自blog.csdn.net/shy871/article/details/119209421