UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。UML图分为静态结构图和行为图两类:
在软件构造中主要涉及的有类图(Class Diagram),顺序图(Sequence Diagram),组件图(Component Diagram),部署图(Deployment Diagram),它们覆盖了多维度示图中的5个维度:
下面依次来介绍:
类图在统一建模语言(UML)中属于静态结构图,它通过展示系统的类的属性、操作(或方法)还有对象之间的关系的方式方式描述了系统的结构。常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
1)类的属性和方法用横线分隔 ;
2)+表示public -表示private0 #表示protected
~表示default _表示static
3)斜体表示抽象类;
理解以下部分需先了解Delegation的概念:
泛化是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。在图中用带中控箭头的实线从子类指向父类;
实现是一种类与接口的关系,表示类是接口所有特征和行为的实现。在图中用带中控箭头的虚线表示;
关联是一种拥有的关系,它使一个类知道另一个类的属性和方法。在图中双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头;
聚合是整体与部分的关系,且部分可以离开整体而单独存在。聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。在图中用一端是空心菱形的箭头表示,标注contains;
组合是整体与部分的关系,但部分不能离开整体而单独存在。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。在图中用一端是实心菱形的箭头表示,标注has;
依赖是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。在图中用带箭头的虚线,指向被使用者;
顺序图是显示对象之间交互的图,这些对象是按时间顺序排列的,图中显示的是参与交互的对象及其对象之间消息交互的顺序。顺序图包括的元素主要有:对象(Object)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。
对象包括三种命名方式:第一种方式包括对象名和类名;第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;第三种方式只显示对象名不显示类明。
生命线表示对象存在的时间,在图中表示为从对象图标向下延伸的一条虚线,见上图;
控制焦点是表示时间段的符号,在这个时间段内对象将执行相应的操作。在图中用小矩形表示;
消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message):
同步消息:消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。
异步消息:消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。
返回消息:返回消息表示从过程调用返回。
Alternative fragment(denoted “alt”) 与 if…then…else对应
Option fragment (denoted “opt”) 与 Switch对应
Parallel fragment (denoted “par”) 表示同时发生
Loop fragment(denoted “loop”) 与 for 或者 Foreach对应
构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
实施构件:一个可执行系统必要和充分的构件,运行时创建的组件,也可以是最终可运行系统产生的允许结果。如,动态链接库,可执行文件等。
配置构件:运行系统需要配置的构件,形成可执行文件的基础。如,操作系统,数据库管理系统等。
工作产品构件:主要是开发过程的产物,包括创建实施构件的源代码文件及数据文件,这些构件不直接参与可执行系统,而是用来产生可执行系统中间工作产品,是配置组件的来源。
依赖:用一个从用户构件指向它所依赖的服务构件的虚线箭头表示(同类图)。
实现:实现一个接口意味着构件中的实现元素支持接口中的所有操作。用一条实线将接口与构件相连。
部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。一个系统模型只有一个部署图,部署图通常用来帮助理解分布式系统。
参考资料:【翻译】 What is class diagram(什么是类图)?_weixin_34361881的博客-CSDN博客
UML各种图总结-精华 - 春风十里的情 - 博客园
UML建模之部署图(Deployment Diagram) - 灵动生活 - 博客园
两种重要的图——Snapshot diagram & UML diagram_Carrot_kexin的博客-CSDN博客
https://blog.csdn.net/sds15732622190/article/details/49048887