UML学习总结和梳理笔记

1.概述

什么是 UML?

UML 是 OMG 在1997年1月提出了创建由对象管理组和 UML1.0 规范草案;
UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;
UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现;
UML 是不同于其他常见的编程语言,如 C + +,Java中,COBOL 等,它是一种绘画语言,用来做软件蓝图;
UML 不是一种编程语言,但工具可用于生成各种语言的代码中使用 UML 图;
UML 可以用来建模非软件系统的处理流程,以及像在一个制造单元等.

UML 的目标:

UML 的目标是定义一些通用的建模语言并对这些建模语言做出简单的说明,这样可以让建模者理解与使用。UML 也是为普通人和有兴趣的人而开发的系统,它可以是一个软件或者使用非软件,它必须是明确的。我们不将 UML 作为一个开发方法,而是随着流程做一个成功的系统。
现在我们可以明确的了解 UML 的目标就是 UML 被定义为一个简单的建模机制,帮助我们按照实际情况或者按照我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。

参考: W3Cschool

2. 十种常见的UML图

UML中的图远不止10中,这里只介绍了常用的10中UML图。UML图常常分为两大类:结构图(静态图)、行为图(动态图)。
静态图:类图、对象图、包图、组件图、部署图
动态图:用例图、状态图、活动图、时序图(序列图)、协作图(通信图)。其中,时序图和协作图也合称为交互图。
在这里插入图片描述

2.1 类图及其六种关系:

类图

描述系统中的静态结构,包括类、接口、关系和属性等。

类的6种关系:

  • 泛化(Generalization/Inheritance):泛化关系用于表示一个类(子类/派生类)继承另一个类(父类/基类)的属性和方法。子类可以继承父类的特征,并添加、修改或继承额外的特征,实现行为的共享和复用。【表示方法:带三角箭头的实线】
  • 实现(Realization/Implementation):实现关系用于表示一个类(接口/抽象类)实现了另一个类(接口/抽象类)定义的方法和行为。子类通过实现父类的接口或继承抽象类来强制实现父类中的方法。【表示方法:带三角箭头的虚线】
  • 关联(Association):关联关系用于表示两个类之间的关联关系,表示类之间的实例可以相互引用和通信。关联可以是双向的,也可以是单向的,可以有多重性(表示对象之间的数量关系)和导向性(指示过程中哪个对象知道其他对象的存在)。【表示方法:带普通箭头的实线】
  • 依赖(Dependency):依赖关系表示一个类(依赖者)依赖于另一个类(供应者)的实现或接口。当依赖关系发生变化时,依赖者也可能受到影响。依赖关系通常在参数传递、方法调用和关联关系中出现。【表示方法:带普通箭头的虚线】
  • 组合(Composition):组合关系也表示整体和部分之间的关系,但它表示整体负责创建和拥有部分的实例,并对其生命周期负责。部分不能独立于整体而存在。【表示方法:带实心菱形的实线】
  • 聚合(Aggregation):聚合关系表示整体和部分之间的关系,表示一个类(整体)包含其他类(部分)的实例。聚合是一种强关联关系,但部分可以存在独立于整体而单独存在的情况。【表示方法:带空心菱形的实线】

示例:
在这里插入图片描述

2.2 对象图

描述系统中对象之间的静态关系,展示一组对象及其关系形成的快照。对象图可以帮助开发人员更好地理解对象之间的关联。
对象图和类图区别在于:对象图可以视作类图的实例,用来表达各个对象在某一时刻的状态。
在这里插入图片描述

2.3 包图???

描述系统的包和包之间的关系。包图显示组织系统中的类和其他构件,帮助将系统组织为逻辑和物理的包,并表示它们之间的依赖关系和关联。
在这里插入图片描述

2.4 部署图

描述系统的物理部署结构,包括硬件设备、软件组件和网络连接等。部署图显示了系统组件在物理节点上的部署位置和连接。
在这里插入图片描述

2.5 组件图

组件图(构件图),描述系统中的组件和组件之间的关系。组件图展示了系统的不同功能部件或模块之间的依赖关系和接口。
在这里插入图片描述

2.6 用例图及其三种关系

用例图

描述系统的功能需求和角色之间的关系。用例图展示了系统的各个用例以及用户、外部系统等参与者之间的交互。

3种关系

  • 包含关系(Include):包含关系表示一个用例(被包含的用例)可以被其他用例(包含用例)包含并可选地执行该用例。包含关系用于将重复或通用的操作提取为单独的用例,并在需要时通过包含关系将其插入到其他用例中。
  • 扩展关系(Extend):扩展关系表示一个用例(扩展用例)可以根据某个条件来扩展另一个用例(基本用例)的功能。通过扩展关系,可以描述在特定情况下,一个用例如何在不修改原始用例的情况下添加或修改功能。
  • 泛化关系(Generalization/Inheritance):泛化关系在用例图中使用得较少,但仍然可以用于描述一种用例或用例集合(子用例)继承另一个用例或用例集合(父用例)的属性和行为。泛化关系用于表示父用例与子用例之间的共享和继承关系。
    在这里插入图片描述

2.7 状态图

状态图用于描述对象在生命周期内的各种状态和状态之间的转换。状态图显示了对象根据事件和条件发生状态转换。
在这里插入图片描述

2.8 活动图

描述系统中的业务流程、算法或操作的流程控制。活动图展示了活动、行为、流程和决策的流程。
在这里插入图片描述

2.9 交互图之序列图

序列图也叫时序图、顺序图。
描述系统中不同对象之间的交互和消息传递的顺序。时序图显示了对象之间按时间顺序发送和接收消息的序列。在这里插入图片描述

2.10 交互图之通信图

通信图也叫协作图、。
描述了对象之间的结构和协作方式,显示了对象之间的关联、聚合、组合等关系,并通过连线表示对象之间的消息传递
在这里插入图片描述

参考:UML2.5教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值