• UML笔记


    一、为什么需要 UML

    UML定义:统一建模语言,是描述、构造和文档化系统制品的可视化语言

    使用 UML 的面向对象图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等一些逻辑思维。

    图可以帮助我们更为便利地观察全景,发现软件元素、分析之间的联系,同时允许我们忽略或者影藏旁枝末节,

    1.1 UML 的目标

    • UML 被定义为一个简单的建模机制,帮助我们按照实际情况或者按照我们需要的样式对系统进行可视化

    • 提供一种详细说明系统的结构或行为的方法;

    • 给出一个指导系统构造的模板;

    • 对我们所做出的决策进行文档化。

    二、UML 基本元素

    2.1 三个基本模块

    事务,关系,图。

    • 事物:UML模型中最基本的构成元素,是具有代表性的成分的抽象,比如类、接口、用例、节点、交互、组件、包、注释等都称为事物

    • 关系:关系把事物紧密联系在一起

    • 图:图是事物和关系的可视化表示

    2.2 四种关系

    1. 依赖

    2. 关联

    3. 实现

    4. 泛化

    2.3 十种图

    • 静态模型图: 描述系统的静态结构

        类图、对象图、包图、部署图、组件图

    • 动态模型图: 描述系统行为的各个方面

        用例图、活动图、状态图、序列图、协作图

    三、UML图

    3.1 类图

    类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。

    在解读开源框架或者接触新系统的时候,比较适合用来研读框架或者系统。

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

    • 【泛化关系】是一种继承关系,表示子类继承父类的所有特征和行为。

    • 【实现关系】是一种类与接口的关系,表示类是接口所有特征和行为的实现。

    • 【关联关系】是一种拥有关系,它使得一个类知道另一个类的属性和方法。【代码体现】成员变量

      • 【聚合关系】是一种整体与部分的关系。且部分可以离开整体而单独存在。聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分。【代码体现】成员变量

      • 【组合关系】是一种整体与部分的关系。但部分不能离开整体而单独存在,组合关系是关联关系的一种,是比聚合关系还要强的关系。【代码体现】成员变量

    • 【依赖关系】是一种使用关系,即一个类的实现需要另一个类的协助。

    Idea开发工具,生成的类图

    3.2 对象图

    UML 对象图显示某时刻对象和对象之间的关系。

    UML 对象图是类图的实例,几乎使用与类图完全相同的标识。

    由于对象存在生命周期,因此UML对象图只能在系统某一时间段存在。

    3.3 包图

    概念:描绘了系统在包层面上的结构设计。

    目的:用来表示包和包之间的依赖关系。

    3.4 部署图

    部署图由节点以及节点之间的关系组成。节点是带有至少一个处理器、内存以及可能还带有其他设备的处理元素、一般来说服务器、客户机都可以是称为节点

    部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。

    部署图通常用来帮助理解分布式系统。

     

    《UML和模式应用(原书第3版)》教材上部署图:

    3.5 组件图

    不常用,忽略

    3.6 用例图

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

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

    包含关系使用符号《include》,想要查看列表,前提是需要先登录。

    扩展关系使用符号《extend》,基于查询订单列表的功能,可以增加一个导出数据的功能

    泛化关系,子用例继承父用例所有结构、行为和关系。

    3.7 活动图

    概念:描述了具体业务用例的实现流程。

    3.8 状态图

    概念:状态图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序。

    目的:用来表示指定对象,在整个生命周期,响应不同事件的不同状态。

    缴费业务订单状态图:

    3.9 时序图

    概念:序列图根据时间序列展示对象如何进行协作。它展示了在用例的特定场景中,对象如何与其他对象交互。

    目的:通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。

    明厨亮灶商户和设备绑定时序图:

    makedown编辑器代码编写时序图 

    3.10 协作图

    不常用,忽略

    四、我的用途

    1. 编写技术方案

    2. 阅读源码,剖析框架

    五、UML工具

    • 飞书文档

    • 微软 Visio

    • Processon https://www.processon.com/

    • Markdown 编辑器

    • OmniGraffle

    六、结语

    UML只是一种标准的、可视化的建模语言,了解它的细节并不能教会你如何用对象思想来思考

    面向对象设计原则:单一职责原则、开闭原则、合成复用原则等

  • 相关阅读:
    16【数据库的范式】
    Wireshark TS | MQ 传输缓慢问题
    从二元一次方程组到二阶行列式再到克拉默法则
    Centos8上部署MySQL主从备份
    纯跟踪算法仿真
    DDR2 IP核调式记录2
    汽车行业新闻稿怎么写?怎么写关于汽车的新闻稿?
    docker-compose 部署方式
    Unity三维数学总结
    [ CTF ]【天格】战队WriteUp-2022年第二届“长城杯”网络安全大赛
  • 原文地址:https://blog.csdn.net/lihuayong/article/details/126174826