统一建模语言-UML
以下是我在w3cschool学习UML后的笔记。
UML能我们做什么?
我们在进行项目的时候,通过使用UML的面向对象图的方式来更明确、清晰的表达项目中架设思想、项目的结构、执行顺序等一些逻辑思维。
UML特点
- 面向对象
- 可视化
- 表达能力强
- 独立于过程
- 独立于程序设计
- 容易掌握使用
在学习UML之前,我们先回顾一下一些面向对象的基本概念:
- 对象: 对象代表一个实体的基本构建块。
- 类: 类是对象的蓝图。
- 抽象化: 抽象代表现实世界中实体的行为。
- 封装:封装是将数据绑定在一起,并隐藏他们外部世界的机制。
- 继承: 继承是从现有的机制作出新的类。
- 多态性: 定义的机制来以不同的形式存在。
UML模型
UML的模型主要有三部分构成
- 事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象
- 关系(Relationships):关系把事物紧密联系在一起
- 图(Diagrams):图是事物和关系的可视化表示
事物
事物是实体抽象化的最终结果,是UML构建块最重要的组成部分。事物的分类如下:
- 结构事物
- 行为事物
- 分组事物
- 注释事物
结构事物
结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素,接下来是对结构化物件的简要描述:
类
类是指具有相同属性、方法、关系和语义的对象集合:
接口
接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作:
协作
协作定义元素之间的相互作用:
用例
用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标:
组件
组件描述物理系统的一部分:
节点
一个节点可以被定义为运行时存在的物理元素:
行为事物
行为事物指的是UML模型中的(软件和非软件系统的)动态部分,代表语句里的“动词”,表示模型里随着时空不断变化的部分,包含两类:
交互
交互被定义为一种行为,包括一组元素之间的消息交换来完成特定的任务。
状态机
状态机由一系列对象的状态组成,它是有用的,一个对象在其生命周期的状态是很重要的。
分组事物
可以把分组事物看成是一个“盒子”,模型可以在其中被分解,目前只有一种分组事物,即包(package)。结构事物、动作甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。
包
封装是唯一一个分组事物可以收集结构和行为的东西。
注释事物
注释事物可以被定义为一种机制来捕捉UML模型元素的言论,说明和注释。注释是唯一一个注释事物。
注释
注释用于渲染意见,约束等的UML元素。
关系
关系是另一种最重要的构建块UML,它显示元素是如何彼此相关联,此关联描述的一个程序的功能,UML中定义了四种关系:
依赖关系(Dependency)
依赖是两件事物之间的语义联系,其中一个事物的变化也影响到另一个事物。
协作关系(Association)
一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的关系结构)。
泛化关系(Generalization)
泛化可以被定义为一个专门的元件连接关系与一个广义的元素,它基本上描述了在世界中的继承关系,是一种一般化-特殊化的关系。
实现关系(Extensibility)
类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
下面是扩展的UML构建块段
类注释
下面的图表示UML类,该图被分为四个部分。
- 顶端部分被采用来命名类。
- 第二个是用来显示类的属性。
- 第三部分是用来描述由类执行的操作。
- 第四部分是可选的显示附加组件。
活动类表示法
活动类类似于一类具有扎实的边界,活动类一般是用来描述一个系统的并发行为。
对象表示法
由于对象是实际执行的一类被称为类的实例。因此,它具有相同的使用作为类。该对象表示以同样的方式作为类。唯一的区别是下划线的名称,如下图所示。
接口表示法
接口是用圆来表示,如下所示。它有一个名称,一般写成下面的圆圈。
协作表示法
协作表示由 eclipse 虚线如下所示。它有一个名字,里面写 eclipse。
角色表示法
某些内部或外部的与系统进行交互的实体,可以被定义为一个角色。
初始状态表示法
初始状态被定义,以显示开始的一个过程。
最终状态表示法
最终状态是用来显示的一个过程的结束。这种表示法也可以用来在大部分的图中描述的目的。
交互表示法
交互基本上是两个 UML 组件之间的信息交换。下图表示交互中使用不同的符号。
状态机表示法
状态机描述的组件在其生命周期的不同状态。状态可以是活动,空闲或任何其他根据情况。在下面的图中描述的符号。
可扩展性表示法
所有的语言(编程或模型)有某种机制来扩展与其功能类似的语法,语义等。 UML 具有以下机制来提供可扩展性功能。
- 定型观念(代表新元素)
- 标记值 (代表新的属性)
- 约束 (代表界限)
可扩展标记基本上是用来表示一些额外的系统行为的附加元素。这些额外的行为,不包括可用的标准符号。
UML图
UML 图的视觉效果是整个过程中最重要的部分。
UML 图是面向对象的概念的表示。
图是事物集合的分类,UML 中包含多种图:
- 类图:类图描述系统所包含的类、类的内部结构及类之间的关系。类图能够让我们在正确编写代码以前对系统有一个全面认识;
- 对象图:对象图是类图的一个具体实例。对象图显示类的多个对象实例,而不是实际的类,它描述的不是类之间的关系,二十对象之间的关系;
- 组件图:组件图描述代码构建的物理结构以及各种构建之间的依赖关系;
- 用例图:用例图从用户的角度出发描述系统的功能、需求,展示系统外部的各类角色与系统内部的各种用例之间的关系;
- 顺序图:顺序图表示对象之间动态合作的关系;(如果强调时间和顺序,则使用顺序图);
- 协作图:协作图描述对象之间的协作关系;(如果强调上下级关系,则选择协作图)
- 活动图:活动图描述系统中各种活动的执行顺序。
- 状态图:状态图描述一类对象的所有可能的状态以及事件发生时状态的转移条件。状态图可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态;
- 部署关系图:部署关系图定义系统中软硬件的物理体系结构;
- 组件图:组件图描述代码部件的物理结构以及各部件之间的依赖关系;
如果想要进一步了解的话,请在下方链接学习:
链接: https://www.w3cschool.cn/uml_tutorial/uml_tutorial-pohy28t3.html.