🧩 第八章 UML:查看无形软件的工具
📄 一句话概括

三种用法是同一个工具箱的三种取用方式——实测 13 种图里三种用法一共引用 10 次、去重后只用到 7 种,其中 3 种被两种用法共用。

📝 本节和前面几节的关系

8.2 数清了 13 种图,这一节回答你到底该用哪几种。答案是:7 种,而且 3 种是关键。

一、三种用法分别是什么

用法一:表示程序的结构和动作——类图、对象图、时序图、通信图,4 种。 用法二:表示归纳整理法的成果——类图、时序图、通信图,3 种(全部复用)。 用法三:表示非面向对象的信息——用例图、活动图、状态机图,3 种。

二、实测:13 种里只用到 7 种

三种用法引用 10 次,去重后 7 种,差出来的 3 种正是被共用的:类图、时序图、通信图。 13 减 7 等于 6——包图、组件图、部署图、组合结构图、交互概览图、定时图,本章不讲。 这不是偷懒:那 6 种是给特定场合准备的(部署、构件、强实时),平时用不上就不学。

三、为什么共用那 3 种最值钱

类图:写代码时画它(结构),上游谈业务时也画它(概念模型)。 时序图与通信图:程序里画调用链,业务里画职责流转——同一套记号,两个世界通用。 这正是第七章【通用】在图形上的回声:能通用的那几种,恰好就是两边都用的那几种。

四、剩下 6 种什么时候学

部署图:要谈服务器怎么摆的时候。 组件图:要谈构件替换、接口边界的时候。 包图:项目大到要分模块的时候。 组合结构图、交互概览图、定时图:专门场合,遇到再查——它们是查阅型知识,不是背诵型。

五、动手 Demo:UML的使用方法大致分为三种

把三种用法各自用到的图形列出来,数引用次数。 再去重,看实际用到几种、有几种被共用。

use1 = ["类图", "对象图", "时序图", "通信图"]
use2 = ["类图", "时序图", "通信图"]
use3 = ["用例图", "活动图", "状态机图"]

refs = len(use1) + len(use2) + len(use3)          # 10 次
uniq = len(set(use1) | set(use2) | set(use3))      # 7 种
print(refs, uniq, refs - uniq, 13 - uniq)          # 10 7 3 6

实跑输出:

--------------------------------------------------------------------
UML的使用方法大致分为三种
--------------------------------------------------------------------

  三种用法不是三种画法,而是**同一个工具箱的三种取用方式**:

  用法                         用哪些图                         种数
  -------------------------------------------------------------------
  一、表示程序结构和动作       类图/对象图/时序图/通信图     4
  二、表示归纳整理法的成果     类图/时序图/通信图             3
  三、表示非面向对象的信息     用例图/活动图/状态机图         3

      三种用法引用次数            10 次
      去重后实际用到              7 种
      被两种用法共用的            3 种(类图/时序图/通信图)
      13 种里本章没讲的           6 种

  **关键数字:13 种里只用到 7 种,而 3 种是两边都用的。**
  **被共用的那 3 种正是最有价值的**——它们既能看代码,也能看业务。
  **剩下的 6 种(包/组件/部署/组合结构/交互概览/定时)等真需要时再学。**

实测:引用 10 次、去重 7 种、共用 3 种、没讲 6 种。 共用的就是类图/时序图/通信图——它们既能看代码,也能看业务。 这个数字和第七章的结论对得上:能通用的东西,两边都拿得走。

30 秒实验

  1. 把你这周画的图(或想画的图)归到三种用法里,看看缺哪一种。
  2. 挑那 6 种【没讲】的图,各查一句它解决什么问题。

常见误区

  1. 以为三种用法要用三套不同的图。共用 3 种,各有专长 4 种。
  2. 以为没讲的 6 种不重要。它们重要,但属于【用到再查】。
自测三问(点开对答案) 1. 三种用法各用哪些图? —— 一:类图/对象图/时序图/通信图;二:类图/时序图/通信图;三:用例图/活动图/状态机图。 2. 实测用了几种? —— 引用 10 次、去重 7 种、共用 3 种,13 种里有 6 种本章没讲。 3. 哪 3 种被共用、为什么值钱? —— 类图、时序图、通信图——同一套记号既画代码也画业务,是通用性在图形上的体现。

相关笔记