UML是什么?
UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。
https://www.w3cschool.cn/uml_tutorial/uml_tutorial-c1gf28pd.html
UML具备哪些功能?
可视化功能
说明功能
建造功能
建文档功能
UML构建模块
事物
含义: 事物是是实体抽象化的最终结果,是 UML 构建块最重要的组成部分
结构事物
含义
结构事物是模型中的静态部分,用以呈现概念或实体的表现元素,是软件建模中最常见的元素
类
类是指具有相同属性、方法、关系和语义的对象的集合
图:
类表示法
类注释:( 类是用来表示对象,对象可以是任何性质和职责 )
接口
接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作
接口表示法:
接口是用圆来表示,如下所示。它有一个名称,一般写成下面的圆圈。
协作
协作定义元素之间的相互作用
协作表示法:
协作表示由 eclipse 虚线如下所示。它有一个名字,里面写 eclipse。
用例
用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标;
用例表示法:
用例表示它里面的一个名字作为 eclipse。它可能包含更多的责任。
角色表示法:( 角色是在描述用例图内部或外部实体。 )
某些内部或外部的与系统进行交互的实体,可以被定义为一个角色。
图: ![img](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdHRzLnczY3NjaG9vbC5jbi9hdHRhY2htZW50cy9pbWFnZS8yMDE3MDgxOC8xNTAzMDM3NzExMTE0ODcxLnBuZw?x-oss-process=image/format,png)
组件
组件描述物理系统的一部分;
元件表示法:( 元器件是用来表示系统的任何部分的 UML 图。 )
UML中的一个组件,如下图所示名称里面。
节点
一个节点可以被定义为在运行时存在的物理元素;
节点表示法:
UML 中的一个节点表示的一个方盒子,如下图所示,同一个名字。
行为事物
交互:
交互被定义为一种行为,包括一组元素之间的消息交换来完成特定的任务
交互表示法:( 交互是用来表示一个系统的组件之间的通信。 )
交互基本上是两个 UML 组件之间的信息交换。
状态机:
状态机由一系列对象的状态组成,它是有用的,一个对象在其生命周期的状态是很重要的
状态机表示法:( 状态机是用来描述一个系统组件的不同状态。状态可以是活动,空闲或任何其他根据情况。 )
状态机描述的组件在其生命周期的不同状态。
分组事物
包:
封装是唯一一个分组事物可收集结构和行为的东西。
包表示法:
包装信息书写方式如下表所示,这是用来包装系统组成部分的。
注释事物
注释:
注释用于渲染意见,约束等的UML元素。
注释表示法:
这种表示法如下所示,它们被用来提供一个系统的必要的信息。
初始状态表示法:( 初始状态的表示法的用法是显示的一个过程的起点。 )
初始状态被定义,以显示开始的一个过程。
最终状态表示法:
最终状态是用来显示的一个过程的结束。
活动类表示法:
活动类类似于一类具有扎实的边界,活动类一般是用来描述一个系统的并发行为。
关系
含义: 关系是另一个最重要的构建块UML,它显示元素是如何彼此相关联,此关联描述的一个应用程序的功能
依赖关系:
依赖是两件事物之间的语义联系,其中一个事物的变化也影响到另一个事物。
依赖表示法:
依赖是UML元素的一个重要方面。
协作:
一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系);
协作表示法:
协作介绍 UML 图中的元素相关联。
泛化:
泛化可以被定义为一个专门的元件连接关系与一个广义的元素,它基本上描述了在对象世界中的继承关系,是一种一般化-特殊化的关系;
泛化表示法:
泛化介绍了面向对象世界的继承关系。这是父与子的关系。
实现:
类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
所有的语言(编程或模型)有某种机制来扩展与其功能类似的语法,语义等。 UML 具有以下机制来提供可扩展性功能。
- 定型观念(代表新元素)
- 标记值 (代表新的属性)
- 约束 (代表界限)
图
含义: 图是事物集合的分类,UML 中包含多种图
规则连接构建模块
…
UML的公共机制
…
UML架构
UML 是由视图(View)、图(Diagrams)、模型元素(Model elements)和通用机制等几个部分构成 。
视图(View)
如果要为系统建立一个完整的模型图,只需定义一定数量的视图,每个视图表示系统的一个特殊方面就可以了。
图(Diagrams)
UML语言定了9中不同的图的类型,把它们有机地结合起来就可以描述系统的所有视图。
模型元素(Model elements
代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常用概念
通用机制
提供扩展机制,使UML语言能够适应一个特殊的方法(或过程)、或扩充至一个组织或用户。
UML 定义一个系统的起着重要的作用 :
UML建模类型
含义: 结构建模具有捕捉静态的功能
含义:行为建模描述了在系统中的相互作用,代表之间的交互的结构图,行为建模显示系统的动态性质
含义:架构建模表示的是一个系统的总体框架,它包含了系统的结构和行为的元素。架构建模可以被定义为整个系统的蓝图。
UML标准图
两大类:
UML 类图
类图是描述系统中的类,以及各个类之间的关系的静态视图,它包括:类、接口、关联和协作。
实例:
- 系统中的两个要素是所有订单以及客户,他们有一个一对多的关系,因为一个客户可以有多个订单。
- 我们将保持 Order 类是一个抽象类,它有两个具体的类(继承关系)SpecialOrder 和 NormalOrder。
- 两个继承类 Order 类的所有属性。此外,他们有额外的功能 dispatch () 和 receive ().
UML 对象图
对象图与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类,它描述的不是类之间的关系,而是对象之间的关系。
列子:
该系统的一个实例,在一个特定的时间购买。它具有以下的对象
- 顾客
- 订单
- 特殊订单
- 一般订单
现在客户对象(C)是与三阶对象(O1,O2和O3)。这些订单对象相关联的特殊订单和一般订单对象(S1,S2和N1)。顾客具有以下三个具有不同数目的订单(12,32和40),用于所考虑的特定的时间。
现在,客户可以在将来增加的订单数量,在这种情况下对象图将反映。如果订单、特殊订单和正常秩订单对象那么观察会发现,他们有一些值。
订单的值是12,32和40,这意味着,这些对象都拥有这些实例时,捕获特定时刻的值(这里是购买时的时刻被视为特定时间)。
相同特别订订单和正常订单对象所具有的订单数分别为20,30和60。如果被认为是一个不同的时间购买,那么这些值将发生相应的变化。
UML 组件图
组件图描述代码构件的物理结构以及各种构建之间的依赖关系。
组件建模的一个系统。
模型的数据库架构。
模型的应用程序的可执行文件。
模型系统的源代码。
列子:订单管理系统的组件图,其中的构件是文件。所以,该图显示了在应用程序的文件以及它们之间的关系。 四个文件识别,并产生了它们之间的关系。到目前为止讨论与其他 UML 图,组件图不能直接匹配。因为它是得出完全不同的目的。
UML 部署图
部署图是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。
1、结点(Node)
结点是存在与运行时的代表计算机资源的物理元素,可以是硬件也可以是运行其上的软件系统,比如64主机、Windows server 2008操作系统、防火墙等。
2、结点实例(Node Instance)
结点实例的命名格式:Node Instance : node。它与结点的区别在于名称有下划线和结点类型前面有冒号,冒号前面可以有示例名称也可以没有示例名称,如下图:
结点类型(Node Stereotypes)
结点类型有:cdrom、cd-rom、computer、disk array、pc、pc client、pc server、secure、server、storage、unix server、user pc,并在结点的右上角用不同的图标表示
物件(Artifact)
物件是软件开发过程中的产物,包括过程模型(比如用例图、设计图等等)、源代码、可执行程序、设计文档、测试报告、需求原型、用户手册等等
5、连接(Association)
结点之间的连线表示系统之间进行交互的通信路径,这个通信路径称为连接
6、结点容器(Node as Container)
一个结点可以包括其他的结点,比如组件或者物件,则称此结点为结点容器
绘制部署图前应确定以下构件:
节点
节点之间的关系
例子:应用程序是一个基于 Web 的应用程序部署在集群环境中使用服务器1,服务器2和服务器3。用户连接到使用互联网的应用程序。控制流从缓存服务器的集群环境中。
行为图(动态)
1、用例图
用例图描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。
**UML 用例图的目的:**
用例图的目的是捕捉到一个系统的动态方面。
用例图是用来收集系统的要求,包括内部和外部的影响。这些要求大多是设计要求
用例图中应该有以下项目:
功能被表示为一个用例
参与者
用例和参与者之间的关系。
例子: 订单,特殊订单和正常订单)和一个参与者:顾客
含义: UML 交互图主要包括对象和消息两类元素,创建交互图的过程实际上就是向对象分配任务的过程,是可视化系统的交互行为。
2、序列图
序列图是一种交互图。 显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互。
列:序列图中包含了四个对象:客户、订单、特殊订单和正常订单。
SpecialOrder 对象和 NormalOrder 对象在相同的情况下使用。现在重要的是要了解时间顺序的消息流,与消息流无关,使用一个对象的方法调用。
首先调用的是 sendOrder(),这是一个订单对象的方法;在下一次调用 confirm (),这是一个 SpecialOrder 对象的方法;最后调用 Dispatch (),它是一种方法的 SpecialOrder 对象。所以这里的图主要描述方法从一个对象到另一个对象的调用,在系统运行时这也是实际情况:
3、协作图
协作图和序列图相似,是另一种形式的交互图;如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图。 描述对象之间的交互关系。
相同的订单管理系统,协作图来描述。
序列图中未介绍的对象组织,而协作图中示出的对象的组织
4、状态图
状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。
一个对象的初始状态和最终状态
UML 状态图是用来模拟动力系统环节,它有一些显著的建模动态特性。
状态图定义了一个组件的状态,这些状态的变化在本质上是动态的。
为了模拟一个系统的对象的状态。
为了模拟响应系统。反应体系由反应物。
为了找出事件负责任的状态变化。
正向和逆向工程。
5、活动图
活动图描述了在一个系统中的控制流。
绘制活动图,我们应该确定以下要素:
- 活动
- 交互
- 条件
- 约束
UML 活动图目的描述:
绘制活动流程系统。
描述的顺序从一个活动到另一个。
描述系统并行,分支,并发流。
下图绘制的四个主要活动:
由客户发送订单
收到订单
确认订单
分发订单
活动图的主要用途:
使用业务建模工作流程。
建模的业务需求。
高层次的理解系统的功能。
调查在后一阶段的业务需求。
结构图
UML 结构图表示系统的静态方面
UML类图
类图是描述系统中的类,以及各个类之间的关系的静态视图,它包括:类、接口、关联和协作。
UML对象图
对象图与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类,它描述的不是类之间的关系,而是对象之间的关系
UML组件图
组件图描述代码构件的物理结构以及各种构建之间的依赖关系。
UML 部署图
部署图是用来建模系统的物理部署。
行为图
UML 用例图:
用例图描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。
UML 序列图:
序列图是一种交互图。
序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。
序列图可以用来展示对象之间是如何进行交互的。
UML 协作图:
协作图和序列图相似,是另一种形式的交互图;如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图。
UML 状态图:
状态图描述类的对象所有可能的状态,以及事件发生时状态的转移条件。
状态图可以捕获对象、子系统和系统的生命周期。
UML 活动图:
活动图描述了在一个系统中的控制流。
活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。