• 14种UML图(统一建模语言)


    1.简述

    什么是UML?

    UML,全称 Unified Model Language,中文是 统一建模语言,是由一整套图表组成的标准化建模语言,支持从需求分析开始的软件开发的全过程。

    为什么要用UML?

    通过使用UML,使得软件开发之前,对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时也可以方便各个开发人员之间的交流。

    2.UML组成

    从总体上来看,UML的结构包括构造块规则公共机制三个部分。

    • 构造块:UML有三种基本的构造块,分别是事务(thing)关系(relationship)图(diagram)。事务是UML的重要组成部分,关系把事务紧密联系在一起,图是多个关联的事务集合。
    • 规则:是指构造块如何放在一起的规定。
    • 公共机制:是指达到特定目标的公共UML方法。

    3.UML事物

    • 结构事物:模型的静态部分,如类、接口、用例、构件等;
    • 行为事物:模型的动态部分,如交互、活动、状态机;
    • 分组事物:模型的组织部分,如包;
    • 注释事物:模型的解释部分,依附于一个元素或一组元素之上对其进行约束或解释的简单符号。

    在这里插入图片描述

    4.UML关系

    • 依赖一个事物的语义依赖于另一个事物语义的变化而变化
    • 关联:是一种结构关系,描述了一组链,链是对象之间的链接。分为组合聚合,都是部分和整体的关系,其中组合事物之间的关系更强。两个类之间的关联,实际上是两个类所扮演角色的关联,因此,两个类之间可以有多个由不同角色标识的关联。
    • 泛化一般/特殊的关系,子类和父类之间的关系。
    • 实现一个类元指定了另一个类元保证执行的契约

    在这里插入图片描述

    在这里插入图片描述

    补充:Java中聚合和组合的实现区别?

    Java聚合:

    class A{
    	public void cc(B b){
    		System.out.println(b.show());
    	}
    }
    class B{
    	public void show(){
    		System.out.println("hello");
    	}
    }
    class C{
    	A a = new A();
    	B b = new B();
    	a.cc(b);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    上面的例子可以看出,B 对象在 A 对象调用完仍然被 C 对象引用,并没有消失。所以相对于 A、B 与 A 的关系就是聚合。

    Java组合

    class A{
    	public A(){
    		B b = new B();
    	}
    	b.show();
    }
    class B{
    	public void show(){
    		System.out.println("hello");
    	}
    }
    class C{
    	A a = new A();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    上面的例子可以看出,B 对象在 A 对象调用完自然也就消失了。所以,相对于 A 来说,B 与 A 的关系就是组合。B 随着 A 的创建一起创建,随着 A 的消失一起消失。

    5.UML图

    5.1 UML图的分类

    • 结构图(静态图):类图、对象图、用例图、构件图、部署图、制品图、包图、组合结构图。
    • 行为图(动态图):交互图、状态图、活动图。
    • 交互图:顺序图(时序图/序列图)、通信图(协作图)、定时图、交互概览图

    在这里插入图片描述

    5.2 结构图(静态图)

    1)类图

    描述类、类的特性以及类之间的关系。

    类图可以只有类名,可以只有方法没有属性,但不能只有属性没有方法。

    在这里插入图片描述

    2)对象图

    对象是类的实例,而对象图描述一个时间点上系统种各个对象的快照。

    对象图和类图看起来是十分相近的,实际上,除了在表示类的机型中添加一些“对象”特有的属性,其他元素的含义是基本一致的。

    • 对象名:由于对象是一个类的实例,因此其名称的格式是“对象:类名”,这两个部分是可选的,但如果是包含了类名,则必须加上“:”,另外,为了和类名区分,还必须加上下划线。
    • 属性:由于对象是一个具体的事物,所有的属性值都已经确定,因此通常会在属性的后面列出其值。

    在这里插入图片描述

    3)构件图

    描述构件的结构与连接。通俗地说,构件是一个模块化元素,隐藏了内部的实现,对外提供一组接口。

    在这里插入图片描述

    4)部署图

    描述在各个结点上的部署。

    在这里插入图片描述

    5)制品图

    描述了系统的物理结构

    6)包图

    对语义联系紧密的事务进行分组。在 UML 种,包使用一个带标签的文件夹符号来表示的,可以只标明包名,也可以标明包中的内容。

    在这里插入图片描述

    7)复合结构图

    显示结构化类的内部结构。

    在这里插入图片描述

    5.3 行为图(动态图)

    1)交互图
    1.1)顺序图(时序图/序列图)

    描述对象之间的交互,重点在于强调按时间顺序。

    在这里插入图片描述

    1.2)通信图(协作图)

    描述对象之间的交互,重点在于连接。通信图和顺序图语义相通,关注点不同,可相互转换。

    在这里插入图片描述

    1.3)定时图

    描述对象之间的交互,重点在于给出消息经过不同对象的具体时间。

    1.4)交互概览图

    属于一种顺序图与活动图的混合。

    2)用例图

    描述用例、参与者及其关系。

    在这里插入图片描述

    3)活动图

    描述过程行为与并行行为。

    在这里插入图片描述

    4)状态图

    描述对象状态的转移。

    在这里插入图片描述

    整理完毕,完结撒花~ 🌻





    参考地址:

    1.掌握14种UML图,清晰图示,https://blog.csdn.net/qq_35423190/article/details/125069834

    2.java组合与聚合区别,https://blog.csdn.net/heardreamperson/article/details/120484327

  • 相关阅读:
    国家高新技术企业认定九大税务风险提示!
    java计算机毕业设计Web商铺租赁管理系统MyBatis+系统+LW文档+源码+调试部署
    Python+Qt多点最短路径(最优路径)算法实现
    极简人体感应芯片-DLT8P68SA-杰力科创
    申报高企如何提高审计报告可读性
    APP自动化之Poco框架
    什么是GPT,初学者怎么使用并掌握Chat GPT工具
    三、Eureka
    数据库范式理论
    ThreadLocal常见使用场景
  • 原文地址:https://blog.csdn.net/qq_33204709/article/details/130848404