来源书籍

UML精粹:标准对象建模语言简明指南(第3版)

领域建模类

类别清单覆盖

7/7

已覆盖 7 补充生成 0 未覆盖 0

全书概览

UML精粹:标准对象建模语言简明指南(第3版)

作者:[美] 福勒(Martin Fowler)

类别:领域建模类

阶段一:整体评级

结论:经典原理(高信息浓度 × 高稳定性)

理由: - 高浓度:全书核心不是”怎么在UML里画一个类”,而是解释UML为什么长这样、该怎么用。第1章 用”草稿/蓝图/编程语言”三分法拆解UML的不同用法,并给出正向/逆向工程、表示法/元模型、 强制性/描述性规则等一系列有边界、有取舍的概念对比;UML的历史部分揭示了标准化的真实推动力 是工具厂商而非方法学家,属于”讲清为什么”而非罗列步骤。第2章讨论软件过程时同样围绕”为什么 瀑布/迭代的本质区别在于切分维度”“为什么自适应计划不是没有计划”等因果展开。 - 高稳定性:书中反复强调的判断框架——UML的三种使用模式、表示法与元模型的分离、 UML图的”收起”原则、强制性/描述性规则之分——都不依赖具体工具版本或某个UML小版本号, 即使拿到今天的建模工具或UML的后续修订,这些框架依然成立。少数内容(如UML 2具体版本号、 RUP工具生态)时效性略低,但不影响全书整体的经典原理定位。

阶段二:章节重点确认

章节号 章节标题 精读/略读 状态 卡片数
1 简介 精读 done 8
2 开发过程 精读 done 9
3 类图:基础 精读 done 12
4 序列图 精读 done 8
5 类图:进阶概念 精读 done 19
6 对象图 精读 done 3
7 包图 精读 done 7
8 部署图 精读 done 2
9 用例 精读 done 9
10 状态机图 精读 done 11
11 活动图 精读 done 13
12 通信图 精读 done 3
13 组合结构 精读 done 3
14 组件图 精读 done 4
15 协作 精读 done 3
16 交互概述图 精读 done 2
17 时间图 精读 done 2
附录A UML版本之间的变化 精读 done 5
- 参考文献 略读 done 0
- 索引 略读 done 0

理由说明: - 第1-17章及附录A:均属于对UML建模概念/图形类型的实质性讲解(定义、用途、表示法规则、 设计考量),按”概念类内容强制生卡”规则一律精读,不因某些图形类型看似小众而降级。 - 参考文献、索引:纯列表性质,无实质性讲解内容,不计入精读范围,直接标记 done、卡片数 0。 - 后折页、封底:非正文 spine 项,不计入章节清单。

待关联术语

术语名 出现章节 一句话语境
CORBA(通用对象请求代理架构) 第1章 仅提及是OMG最广为人知的工作成果之一,未展开其具体机制。
值类型(value type) 第3章 仅提及”一般来说,值类型”作为倾向使用属性表示法的例子,未展开定义,书中标注第5章(91页)详述。
CRC责任 第3章 仅提及概念模型中操作应”使用概述CRC责任的一些词”,未展开CRC卡具体做法,书中标注81页详述。
数据蝌蚪(data tadpole) 第4章 仅提及”许多方法会用数据蝌蚪来表示数据的移动”,未展开具体画法和使用规则。
枚举(enumeration) 第5章 仅一句话说明用«enumeration»关键词标注固定值集合,内容过于简短,未单独生卡。
类图上的非标准消息表示法 第5章 标准UML不在类图展示消息调用信息,作者提及的是一种非规范扩展画法,未展开使用规则。
小球-球窝表示法的具体画法 第5章 棒棒糖/球窝符号本身是纯记号约定,其代表的供给/需求语义已见[[抽象类接口与供给需求关系]],图形细节未单独生卡。
Petri网 第11章 仅提及是与活动图风格相似的面向流技术之一,”也算不上广为人知”,未展开具体机制。

引用文献

标题 类型(书/论文/框架/源码项目) 出现章节 一句话语境
[Larman] 书 第1章 作者推荐给对象新手的入门书,强调职责驱动设计方法,未展开具体内容。
[Rumbaugh, UML Reference] 书 第1章 官方UML标准的”更容易消化的版本”,仅作推荐提及。
[Martin] 书 第1章 面向对象设计方面更详细建议的来源,仅作推荐提及。
[Kleppe et al.](MDA) 书 第1章 模型驱动架构(MDA)标准的参考文献,正文已展开MDA机制本身(见[[MDA的代码生成链路]]),此处仅记引用来源。
[Mellor and Balcer](可执行UML) 书 第1章 可执行UML(Executable UML)概念的参考文献,正文已展开该概念(见[[MDA的代码生成链路]]),此处仅记引用来源。
[Gang of Four] 书 第2章 详细讨论23种设计模式的经典模式书籍,书中以其中”代理”一节为例说明模式写作规范,未逐一展开全书内容。
[POSA1]、[POSA2]、[Core J2EE Patterns]、[Pont]、[Fowler, AP]、[Fowler, P of EAA] 书 第2章 作者列举的其他模式类书籍,仅提及书名和作者偏好,未展开介绍各自内容。
[McConnell] 书 第2章 作者最喜爱的通用软件过程书籍,仅作推荐提及。
[Cockburn, agile]、[Highsmith] 书 第2章 敏捷过程概述类书籍,仅作推荐提及。
[Ambler] 书 第2章 关于以敏捷方式使用UML的建议来源,仅作推荐提及。
[Beck] 书 第2章 学习极限编程(XP)的推荐起点,仅作推荐提及。
[Beck and Fowler] 书 第2章 为XP而写、侧重迭代项目计划细节的书籍,仅作推荐提及。
[Kruchten] 书 第2章 关于Rational统一过程(RUP)的入门书籍,仅作推荐提及。
[Warmer and Kleppe] 书 第3章 对象约束语言(OCL)的参考文献,仅作为OCL出处提及,未展开书籍内容本身。
[Beck and Cunningham] 论文 第4章 CRC卡最原始的论文,仅作出处提及,未展开论文具体内容。
[Wirfs-Brock] 书 第4章 关于CRC卡和设计中责任划分的延伸读物,仅作推荐提及。
[Jacobson, OOSE] 书 第9章 用例最早因此书而流行,仅作出处提及,未展开书籍内容本身。
[Cockburn, use cases] 书 第9章 用例主题的标准书籍,书中的级别结构(海平面/鱼/风筝)已展开为[[用例的三个级别]],此处仅记引用来源。
[Constantine and Lockwood] 书 第9章 提供通过用例获得用户界面的过程,仅作推荐提及,未展开具体内容。
[Booch, UML user] 书 第10章 《UML用户指南》,状态图更多信息的参考书目,仅作推荐提及。
[Douglass] 书 第10章 实时设计领域关于状态图(含实现方式)的作者,仅作推荐提及,未展开具体内容。
[Hohmann] 书 第14章 关于如何把系统分解成组件(市场与技术双重决定)的优秀指南,仅作推荐提及。

资金安全问题案例

问题标题 问题卡 解决方案卡(如有) 出现章节 一句话说明
无 — — — 第1-17章及附录A均未出现支付或资金安全技术问题案例,正文阶段三核对完毕。

实践卡进度

阶段三 18⁄18 正文条目(第1-17章及附录A)已全部完成,共123张知识卡(S4修订阶段新增第3章1张,见下)。阶段四已完成,实践对象为本仓库真实存在的 cardbox/ Go 项目(非虚构示例):

序号 实践标题 实践方式 状态 关联章节 产出
1 核对cardbox包依赖是否符合稳定依赖原则 实现深读 done 第7章 真实包依赖表(8个内部包,确认无环、依赖流单向汇聚到db包)
2 评估db包直接暴露sql.DB是否违反面向接口编程 实现深读 done 第5章 量化结论:*sql.DB具体类型扩散至4个包14个文件77处调用点
3 核对import命令是否为中央控制协作风格 实现深读 done 第4章 结论:newImportCmd为中央控制风格,且在CLI入口场景下合理,补充了原书未展开的适用边界

三张卡均已实际执行分析并产出结论(非待办事项),详见 ideas/ 目录。未采用现实调研/行为实验/证据验证等其他实践方式的原因:本书是UML建模技法书,知识点属于”技术原理/架构机制”形态,按路由表首选实现深读,本仓库恰好有真实可读代码,不需要虚构对象或做行为实验。

类别清单核对

阶段三、阶段四均已完成,本书命中”领域建模类”。逐项核对7个必答维度:

维度 覆盖状态 关联卡片标题或未覆盖理由
建模方法论/流程 已覆盖 [[UML的三种使用模式]]、[[场景与用例的关系]]、[[主成功场景与扩展的结构]]
核心构建块/元语言 已覆盖 [[性质的两种表示法:属性与关联]]、[[抽象类接口与供给需求关系]]、[[引用对象与值对象的标识差异]]
边界划分原则 已覆盖 [[包的定义与完全限定名称]]、[[共同封闭原则与共同复用原则]]、[[包的分层结构与主题区域结构]]
模型与代码的映射关系 已覆盖 [[性质在代码中的字段与接口解释]]、[[面向接口编程的实践理由]]、[[状态图的三种实现方式对比]]
一致性与事务边界 已覆盖 [[聚合与组合的语义差异]]、[[关联类的定义与实现建议]]、[[结合规格处理复杂同步条件]]
模型演化与重构 已覆盖 [[泛化与可替换性]]、[[契约在子类化中的强化与减弱规则]]、[[用例关系的历史演变]]
反模式/常见建模误区 已覆盖 [[分类与泛化的是一个关系陷阱]]、[[用例图应忽略extend关系]]、[[存取器堆砌是行为错位的信号]]

“领域建模类”清单:7/7 已覆盖。

章节与卡片

01 简介

  1. UML的三种使用模式 普通读书笔记卡
  2. 正向工程与逆向工程 普通读书笔记卡
  3. MDA的代码生成链路 结构图卡
  4. 表示法与元模型的区别 普通读书笔记卡
  5. 强制性规则与描述性规则 普通读书笔记卡
  6. UML图的信息收起原则 普通读书笔记卡
  7. UML标准化背后的真正推动力 普通读书笔记卡
  8. UML之外的实用图 普通读书笔记卡

02 开发过程

  1. 瀑布与迭代开发的本质区别 普通读书笔记卡
  2. 预测性计划与自适应计划 普通读书笔记卡
  3. 敏捷过程的核心假设 普通读书笔记卡
  4. 仪式与轻量过程的关系 普通读书笔记卡
  5. RUP的四个阶段 结构图卡
  6. 时间盒 普通读书笔记卡
  7. 支撑高效返工的三项工程实践 普通读书笔记卡
  8. 模式的定义与本质 普通读书笔记卡
  9. 精选备忘录优于详尽文档 普通读书笔记卡

03 类图:基础

  1. 性质的两种表示法:属性与关联 普通读书笔记卡
  2. 多重性的记号与常用术语 普通读书笔记卡
  3. 性质在代码中的字段与接口解释 普通读书笔记卡
  4. 双向关联与主控从属设计 普通读书笔记卡
  5. 操作与方法的区别 普通读书笔记卡
  6. 查询与修改器和命令查询分离原则 普通读书笔记卡
  7. 泛化与可替换性 普通读书笔记卡
  8. 依赖关系的方向性与非传递性 结构图卡
  9. 类图中约束的表达方式 普通读书笔记卡
  10. 按契约设计的三种断言 普通读书笔记卡
  11. 契约在子类化中的强化与减弱规则 普通读书笔记卡
  12. 存取器堆砌是行为错位的信号 普通读书笔记卡

04 序列图

  1. 中央控制与分布控制两种协作风格 普通读书笔记卡
  2. UML2交互图中的参与者术语 普通读书笔记卡
  3. 交互框表达循环与条件 普通读书笔记卡
  4. 伪消息表达循环与条件 普通读书笔记卡
  5. 同步消息与异步消息的语义区别 普通读书笔记卡
  6. 何时使用序列图与其他图的分工 普通读书笔记卡
  7. CRC卡与责任和协作者 普通读书笔记卡
  8. CRC卡相对序列图的核心价值 普通读书笔记卡

05 类图:进阶概念

  1. 关键词与构造型 普通读书笔记卡
  2. 静态操作和属性 普通读书笔记卡
  3. 聚合与组合的语义差异 结构图卡
  4. 派生性质的两种解释 普通读书笔记卡
  5. 抽象类接口与供给需求关系 普通读书笔记卡
  6. 面向接口编程的实践理由 普通读书笔记卡
  7. 只读与冻结的区别 普通读书笔记卡
  8. 引用对象与值对象的标识差异 普通读书笔记卡
  9. 值对象的不可变性与走样问题 普通读书笔记卡
  10. 限定关联的语义 普通读书笔记卡
  11. 分类与泛化的是一个关系陷阱 普通读书笔记卡
  12. 单重分类与多重分类 普通读书笔记卡
  13. 泛化集管理多重分类的合法组合 普通读书笔记卡
  14. 动态分类与静态分类 普通读书笔记卡
  15. 关联类的定义与实现建议 普通读书笔记卡
  16. 何时把关联提升为完整的类 普通读书笔记卡
  17. 模板参数化类 普通读书笔记卡
  18. 主动类 普通读书笔记卡
  19. 可见性的跨语言差异 普通读书笔记卡

06 对象图

  1. 对象图的定义与适用场景 普通读书笔记卡
  2. 对象图的实例命名语法 普通读书笔记卡
  3. 实例规格不是真正的实例 普通读书笔记卡

07 包图

  1. 包的定义与完全限定名称 普通读书笔记卡
  2. 门面模式收窄包接口 普通读书笔记卡
  3. 共同封闭原则与共同复用原则 普通读书笔记卡
  4. 包图定义与依赖的概括关系 普通读书笔记卡
  5. 稳定依赖原则与稳定抽象原则 普通读书笔记卡
  6. 包的分层结构与主题区域结构 普通读书笔记卡
  7. 接口与实现分离到不同包 普通读书笔记卡

08 部署图

  1. 节点的两种形式:设备与执行环境 普通读书笔记卡
  2. 工件是软件的物理显现 普通读书笔记卡

09 用例

  1. 场景与用例的关系 普通读书笔记卡
  2. 执行者的定义与特点 普通读书笔记卡
  3. 用例价值在文本不在图 普通读书笔记卡
  4. 主成功场景与扩展的结构 结构图卡
  5. 用例的包含关系与反对功能分解 普通读书笔记卡
  6. 用例的前置条件、保证与触发器 普通读书笔记卡
  7. 用例图应忽略extend关系 普通读书笔记卡
  8. 用例的三个级别 结构图卡
  9. 用例与特性(故事)的关系 普通读书笔记卡

10 状态机图

  1. 警戒条件互斥与无效事件被忽略 普通读书笔记卡
  2. 状态是抽象的反应模式 普通读书笔记卡
  3. 内部活动与自转换的区别 普通读书笔记卡
  4. 入口活动与出口活动 普通读书笔记卡
  5. do活动与常规活动的区别 普通读书笔记卡
  6. 超状态收纳共享行为 普通读书笔记卡
  7. 并发正交状态 普通读书笔记卡
  8. 历史伪状态 普通读书笔记卡
  9. 何时使用状态图 普通读书笔记卡
  10. 转换的三段式标签语法 结构图卡
  11. 状态图的三种实现方式对比 结构图卡

11 活动图

  1. 活动图与状态图的解绑 普通读书笔记卡
  2. 分叉与结合:并行流的开启与同步 结构图卡
  3. 判断与合并及else警戒条件 普通读书笔记卡
  4. 多进入流语义的版本变化 普通读书笔记卡
  5. 分区展示谁做什么 普通读书笔记卡
  6. 信号与竞速终止 普通读书笔记卡
  7. 令牌机制 结构图卡
  8. 针脚与变换 普通读书笔记卡
  9. 扩展区域对集合逐项执行 结构图卡
  10. 流结束与活动结束的区别 普通读书笔记卡
  11. 结合规格处理复杂同步条件 普通读书笔记卡
  12. 何时使用活动图 普通读书笔记卡
  13. 动作分解为子活动或方法调用 普通读书笔记卡

12 通信图

  1. 通信图与序列图的表达取舍 结构图卡
  2. 嵌套小数编号解决自调用歧义 结构图卡
  3. 通信图与序列图的选择依据 普通读书笔记卡

13 组合结构

  1. 组合结构把类分解为部件 普通读书笔记卡
  2. 端口把接口分组为逻辑交互 普通读书笔记卡
  3. 包与组合结构的时机区别 普通读书笔记卡

14 组件图

  1. 组件表示法的演变 普通读书笔记卡
  2. 组件类图与组件组合结构图的分工 普通读书笔记卡
  3. 组件的市场驱动定义 普通读书笔记卡
  4. 组件粒度与DLL地狱警告 普通读书笔记卡

15 协作

  1. 协作用角色而非类描述交互模式 普通读书笔记卡
  2. 协作发生与模式表示法的实际状况 普通读书笔记卡
  3. 协作在实践中缺乏竞争力 普通读书笔记卡

16 交互概述图

  1. 交互概述图的混合本质 普通读书笔记卡
  2. 交互概述图的实用性存疑 普通读书笔记卡

17 时间图

  1. 时间图聚焦时间约束 普通读书笔记卡
  2. 时间图的两种画法与适用场景 普通读书笔记卡

A UML版本之间的变化

  1. 类型与实现类的区别 普通读书笔记卡
  2. 角色术语的分化 普通读书笔记卡
  3. 用例关系的历史演变 结构图卡
  4. UML2图形类型总览 结构图卡
  5. UML版本号的历史混乱 普通读书笔记卡

相关主题

暂无公开主题。