系分 - UML【概念】

在这里插入图片描述

个人总结,仅供参考,欢迎加好友一起讨论

UML - Unified Modeling Language

Unified Modeling Language(UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

UML中有4种事物

UML中的事物包括结构事物、行为事物(动作事物)、分组事物(组织事物)和注释事物(辅助事物)。这些事物是UML模型中面向对象的基本建筑块,他们在模型中属于静态部分,代表物理上或概念上的元素。

结构事物

结构事物主要包括7种,分别是类、接口、用例、协作、活动类、组件和节点 。

1)类(Class)

类是具有相同属性、相同方法、相同语义和相同关系的一组对象的集合。一个类可以实现一个或多个接口。在UML图中,类用包括类名、属性和方法的矩形来表示。

在这里插入图片描述

2)接口(Interface)

接口是指类或组件提供的、可以完成特定功能的一组操作的集合。换句话说,接口描述了类或组件对外的、可见的动作。通常,一个类实现一个或多个接口。在UML图中,接口通常用一个圆形来表示。

在这里插入图片描述

3)用例(Use Case)

用例定义了系统执行的一组操作,对特定的用户产生可以观察的结果。在UML图中,用例通常用一个实线椭圆来表示。

在这里插入图片描述

4)协作(Collaboration)

协作定义了交互的操作,表示一些角色和其他元素一起工作,提供一些合作的动作。一个给定的类可能是几个协作的组成部分,这些协作代表构成系统的模式的实现。在UML图中,协作通常用一个虚线椭圆表示。

在这里插入图片描述

5)活动类(Active Class)

活动类是指对象有一个或多个线程或进程的类。活动类和类相似,只是它的对象代表的元素的行为和其他的元素同时存在。在UML图中,活动类的表示方法和普通类的表示方法相似,也是使用一个矩形,只是最外面的边框使用粗线。

在这里插入图片描述

6)组件(Component)

组件是物理上可替换的,实现了一个或多个接口的系统元素。在UML图中,组件的表示图形比较复杂。

在这里插入图片描述

7)节点(Node)

节点是一个物理元素,它在运行时存在,代表一个可计算的资源,比如一台数据库服务器。在UML图中,节点使用一个立方体来表示。节点通常包括处理器和设备。

在这里插入图片描述

行为事物

行为事物也称动作事物,是UML模型中的动态部分,代表时间和空间上的动作。行为事物主要有两种:交互和状态机。它们是UML模型中最基本的两个动态事物元素,通常和其他的结构元素、主要的类、对象连接在一起。

1) 交互(Interaction)

交互是在特定上下文中的一组对象,为共同完成一定的任务而进行的一系列消息交换所组成的动作。交互包括消息、动作序列(消息产生的动作)、对象之间的连接。在 UML图中,交互的消息通常画成带箭头的直线。

2) 状态机(State Machine)

状态机是对象的一个或多个状态的集合。在UML图中,状态机通常用一个圆角矩形来表示。

在这里插入图片描述

分组事物

分组事物也成为组织事物,是UML模型中组织的部分,可以把它看做一个个的盒子,每个盒子里面的对象关系相对复杂,而盒子与盒子之间的关系相对简单。组织事物只有一种,包。

包(Package)

包是一种有组织地将一系列元素分组的机制。包与组件最大的区别在于,包纯粹是一种概念上的东西,仅仅窜在于开发阶段结束之前,而组件是一种物理元素,存在于运行时。在UML图中,包通常表示为一个类似文件夹的符号。

在这里插入图片描述

注释事物

注释事物也称辅助事物,属于这一类的只有注释。

注释(Annotation)

注释就是UML模型的解释部分。在UML图中一般表示为折起一角的矩形。

在这里插入图片描述

UML图的分类

UML图分为结构型的图和行为型的图。

结构型图(静态图)

结构型的图(Structure Diagram)也称作静态图,包括:类图(Class Diagram)、对象图(Object Diagram)、构件图(Component Diagram)、部署图(Deployment Diagram)、制品图(Arifiet Diagram)、包图(Packet Diagram)、组织结构图(Composite Structure Diagram)。

行为型图(动态图)

行为型的图(Behavior Diagram)也称作动态图,包括:用例图(Use Case Diagram)、顺序图(Sequence Diagram)、通信图(Communication Diagram)、定时图(Timing Diagram)、交互预览图(Interaction Overview Diagram)、活动图(Activity Diagram)、状态图(State Diagram)。

其中,顺序图、通信图、定时图、交互概览图,被称为交互图。速记口诀:交通定顺。

UML图 - 静态图[结构型]

类图(Class Diagram)

类图是一切面向对象方法的核心建模工具,它描述了系统中对象的类型以及它们之间存在的各种静态关系。

类图是用来表示类、接口以及它们之间的静态结构和关系。

在类图中,常见的有以下几种关系:

依赖(Dependency)

依赖关系是一种使用关系,即一个类的实现需要另一个类的协助,也就是use-a的关系。

在UML中,依赖关系用带普通箭头的虚线表示,由依赖的一方指向被依赖的一方。

在这里插入图片描述

如上,司机只管开车,车是谁的不重要,给什么车开什么车。

泛化(Generalization)

泛化关系是一种继承关系,表示子类继承父类的所有特征和行为,也就是is-a的关系。子类继承自父类,父类是子类的泛化。父类又称作基类或超类,子类又称作派生类。

在UML中,泛化关系用带空心三角箭头的实线来表示,箭头指向父类。

在这里插入图片描述

实现(Realization)

实现关系是一种类与接口的关系,表示类是接口所有特征和行为的实现。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。

在UML中,类与接口之间的实现关系用带空心三角形箭头的虚线来表示,箭头指向接口。

在这里插入图片描述

关联(Association)

关联关系是一种拥有关系,它使得一个类知道另一个类的属性和方法,成员变量的形式。如:老师与学生,丈夫与妻子。关联是类之间的结构关系,它描述了一组链,链是对象之间的连接。两个类之间可以有多个由不同角色标识的关联。关联可以是双向的,也可以是单向的。

在UML中,用带普通箭头的实线,指向被拥有者。双向的关联可以有两个箭头,或者没有箭头。单向的关联有一个箭头。

在这里插入图片描述

如上,自己买的车,想什么时候开就开。但是车是车,人是人,没有整体与部分的关系。

聚合(Aggregation)

聚合关系是一种整体与部分的关系,且部分可以离开整体而单独存在,即has-a的关系。聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

在UML中,聚合关系用带空心菱形的实线表示,空心菱形指向整体。例如:汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在,因此,汽车和发动机是聚合关系。

在这里插入图片描述

如上,电脑有键盘才能输入信息,电脑是整体,键盘是部分,键盘也可以离开电脑,单纯的拿去敲。所以是聚合。

组合(Composition)

组合关系是一种整体与部分的关系,但部分不能离开整体而单独存在,即contains-a的关系。组合关系是关联关系的一种,是比聚合关系还要强的关系。

在UML中,组合关系用带实心菱形的实线表示,实心菱形指向整体。

在这里插入图片描述

如上,鸟是整体,翅膀是部分。鸟死了,翅膀也就不能飞了。所以是组合。

我们再看一下,下面的一组经典的聚合组合关系的例子。如下:

在这里插入图片描述

如上,一个公司拥有多个部门,公司和部门之间是组合关系,公司破产了,部门就不复存在了。部门和员工是聚合关系,部门被裁掉,员工还能活,换下家呗。

对象图(Object Diagram)

对象图是类图的一个实例,是系统在某个时间点的详细状态的快照。

对象图用来表示两个或者多个对象之间在某一时刻之间的关系。

在这里插入图片描述

如上,就是描述的,某时间点bat这个公司有一个研发部,一个销售部,两个部门只有一个人iisheng

构件图/组件图(Component Diagram)

构件图也被称为组件图,其描绘了系统中构件/组件提供的、需要的接口、端口等,以及它们之间的关系,其目的是用来展示各个组件之间的依赖关系。使用构件图的思想是复用。就像是我们盖房子,当房子的大体框架建好之后,剩下的门和窗户家具之类的直接拿来安装上即可,不需要再从新制作,直接拿来复用的思想。这些门和窗户就相当于一个个的构件。

在这里插入图片描述

如上,订单系统组件依赖于客户资源库和库存系统组件。中间的虚线箭头表示依赖关系。另外两个符号,表示组件连接器,一个提供接口,一个需要接口。

部署图(Deployment Diagram)

部署图描述了系统内部的软件如何分布在不同的节点上,用来表示软件和硬件的映射关系。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。

在这里插入图片描述

如上,图中简单的表示了不同机器上面部署的不同软件。

制品图(Arifiet Diagram)

制品图描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起使用,制品也给出了它们实现的类和构件。

包图(Packet Diagram)

包图描绘了系统在包层面上的结构设计,用来表示包和包之间的依赖关系。包图可以描述需求,设计的高阶概况;包图通过合理规划自身功能反应系统的高层架构,在逻辑上将系统进行模块化分解;包图最终是组织源码的方式。

在UML中用类似于文件夹的符号表示的模型元素的组合。包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对包中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。

包图经常被描述成文件夹,可以用于UML任何一种的图上。包图只是把某些类放在一个包中,因此可以看做是类图的一种。

在这里插入图片描述

如上:

  • 《Use》关系表示使用依赖,Web Shopping依赖Payment
  • 《Merge》关系表示合并,Web Shopping合并了Shopping Cart就拥有了Shopping Cart的功能
  • 《Access》关系表示私有引入,比如代码中的指定包名类名
  • 《Import》关系表示公共引入,比如Java中的import之后,就可以直接使用import包中的类了。

组织结构图(Composite Structure Diagram)

组织结构图,也被称为复合结构图。描述了一个"组合结构"的内部结构,以及他们之间的关系。这个"组合结构"可以是系统的一部分,或者一个整体。其目的是用来表示系统中逻辑上的"组合结构"。

在这里插入图片描述

如上,图中描述了Car是由车轴连接着的两个前面轮子、两个后面轮子,和引擎组合的。

UML图 - 动态图[行为型]

用例图(Use Case Diagram)

用例图是指由参与者、用例,边界以及它们之间的关系构成的用于描述系统功能的视图。其目的是用来描述整个系统的功能,

用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图,用于需求分析阶段。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

在这里插入图片描述

如上,用例图中包含以下三种关系:

  • 包含关系使用符号《include》,箭头从基用例指向子用例。想要查看订单列表,前提是需要先登录。
  • 扩展关系使用符号《extend》,箭头从子用例指向基用例。基于查询订单列表的功能,可以增加一个导出数据的功能。
  • 泛化关系,子用例继承父用例所有结构、行为和关系。

顺序图(Sequence Diagram)

顺序图,在UML1.x的时候也被称为序列图。顺序图根据时间顺序(序列)展示对象如何进行协作,强调消息时间顺序的交互。它展示了在用例的特定场景中,对象如何与其他对象交互。其目的是通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

顺序图,它由一组对象或参与者以及它们之间可能发送的消息构成。构成顺序图的基本元素包括对象、生命线和消息,还可以包括角色和激活期两种元素。

在这里插入图片描述

如上,图中展示的是支付宝条码支付场景的序列图。其中,loop是循环,alt是选择。

通信图(Communication Diagram)

在UML1.x的时候通信图也被称为协作图。描述了收发消息的对象的组织关系,强调对象之间的合作关系而不是时间顺序。通信图强调接收和发送信息的对象的结构组织的交互,强调参加交互的对象的组织,用来显示不同对象的关系。

在这里插入图片描述

如上,图中展示了一个线上书店的通信图,方框和小人表示生命线,不同生命线之间可以传递消息,消息前面的数字可以表达序列顺序。

定时图(Timing Diagram)

定时图也被称作计时图,它适合嵌入式系统建模的交互图。定时图是一种新增的、特别适合实时和嵌入式系统建模的交互图。关注沿着线性时间轴、生命线内部和生命线之间的条件改变。描述对象状态随着时间改变的情况,很像示波器,适合分析周期和非周期性任务。定时图强调消息跨域不同对象或参与者的实际时间,而不仅仅关心消息的相对顺序。被用来显示随时间变化,一个或多个元素的值或状态的更改。也显示时控事件之间的交互和管理它们的时间和期限约束。用来表示元素状态或者值随时间的变化而变化的视图。

定时图采用一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序,而且它还允许可视化地表示每条生命线的状态变化,当需要对实时事件进行建模时,定时图可以很好地满足要求。

定时图的焦点集中于生命线内部以及它们之间沿着时间轴的条件变化。

定时图可以把状态发生变化的时刻以及各个状态所持续的时间具体地表示出来。如果把多个对象放在一个定时图中,还可以把它们之间发送和接收消息的时刻表示出来。在这方面,定时图与其他几种交互图相比具有独到的优势。

定时图来自于电子工程领域,在需要明确定时约束一些事件时可以使用它们。

在这里插入图片描述

如上,图中展示了老年痴呆病人随着时间的变化病情的变化。

活动图(Activity Diagram)

将进程或其他计算的结构展示为计算内部一步步的控制流和数据流,主要用来描述具体业务用例的实现流程。活动图在本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。活动图主要描述行为的动作,表示用例实现的工作流程。

泳道在UML活动图中区分了负责活动的对象,它明确地表示了哪些活动是由哪些对象进行的。

在这里插入图片描述

如上,图中简单描述了,从开始到登录到查看订单列表,或者登录失败直接结束。

交互预览图(Interaction Overview Diagram)

交互概览图与活动图类似,但是它的节点是交互图,用来提供了控制流的概述。

交互概览图强调控制流的交互图。交互概览图是活动图和顺序图的混合物。活动图的变体,描述业务过程中的控制流概览,软件过程中的详细逻辑概览,以及将多个图进行连接,抽象掉了消息和生命线。

在这里插入图片描述

如上,图中表示一个调度系统的交互概览图,跟活动图很像。其中sd的框代表具体的交互流程,ref框代表使用交互。

状态图(State Diagram)

状态图也可以被叫做状态机图,状态图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序。用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。在整个生命周期,响应不同事件的不同状态。状态图主要描述行为的结果。

在这里插入图片描述

如上,图中描述了,门在其生命周期内所经历的状态。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WorkLee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值