来源书籍
UML精粹:标准对象建模语言简明指南(第3版)
领域建模类
类别清单覆盖
7/7
全书概览
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 简介
- UML的三种使用模式 普通读书笔记卡
- 正向工程与逆向工程 普通读书笔记卡
- MDA的代码生成链路 结构图卡
- 表示法与元模型的区别 普通读书笔记卡
- 强制性规则与描述性规则 普通读书笔记卡
- UML图的信息收起原则 普通读书笔记卡
- UML标准化背后的真正推动力 普通读书笔记卡
- UML之外的实用图 普通读书笔记卡
02 开发过程
- 瀑布与迭代开发的本质区别 普通读书笔记卡
- 预测性计划与自适应计划 普通读书笔记卡
- 敏捷过程的核心假设 普通读书笔记卡
- 仪式与轻量过程的关系 普通读书笔记卡
- RUP的四个阶段 结构图卡
- 时间盒 普通读书笔记卡
- 支撑高效返工的三项工程实践 普通读书笔记卡
- 模式的定义与本质 普通读书笔记卡
- 精选备忘录优于详尽文档 普通读书笔记卡
03 类图:基础
- 性质的两种表示法:属性与关联 普通读书笔记卡
- 多重性的记号与常用术语 普通读书笔记卡
- 性质在代码中的字段与接口解释 普通读书笔记卡
- 双向关联与主控从属设计 普通读书笔记卡
- 操作与方法的区别 普通读书笔记卡
- 查询与修改器和命令查询分离原则 普通读书笔记卡
- 泛化与可替换性 普通读书笔记卡
- 依赖关系的方向性与非传递性 结构图卡
- 类图中约束的表达方式 普通读书笔记卡
- 按契约设计的三种断言 普通读书笔记卡
- 契约在子类化中的强化与减弱规则 普通读书笔记卡
- 存取器堆砌是行为错位的信号 普通读书笔记卡
04 序列图
- 中央控制与分布控制两种协作风格 普通读书笔记卡
- UML2交互图中的参与者术语 普通读书笔记卡
- 交互框表达循环与条件 普通读书笔记卡
- 伪消息表达循环与条件 普通读书笔记卡
- 同步消息与异步消息的语义区别 普通读书笔记卡
- 何时使用序列图与其他图的分工 普通读书笔记卡
- CRC卡与责任和协作者 普通读书笔记卡
- CRC卡相对序列图的核心价值 普通读书笔记卡
05 类图:进阶概念
- 关键词与构造型 普通读书笔记卡
- 静态操作和属性 普通读书笔记卡
- 聚合与组合的语义差异 结构图卡
- 派生性质的两种解释 普通读书笔记卡
- 抽象类接口与供给需求关系 普通读书笔记卡
- 面向接口编程的实践理由 普通读书笔记卡
- 只读与冻结的区别 普通读书笔记卡
- 引用对象与值对象的标识差异 普通读书笔记卡
- 值对象的不可变性与走样问题 普通读书笔记卡
- 限定关联的语义 普通读书笔记卡
- 分类与泛化的是一个关系陷阱 普通读书笔记卡
- 单重分类与多重分类 普通读书笔记卡
- 泛化集管理多重分类的合法组合 普通读书笔记卡
- 动态分类与静态分类 普通读书笔记卡
- 关联类的定义与实现建议 普通读书笔记卡
- 何时把关联提升为完整的类 普通读书笔记卡
- 模板参数化类 普通读书笔记卡
- 主动类 普通读书笔记卡
- 可见性的跨语言差异 普通读书笔记卡
06 对象图
- 对象图的定义与适用场景 普通读书笔记卡
- 对象图的实例命名语法 普通读书笔记卡
- 实例规格不是真正的实例 普通读书笔记卡
07 包图
- 包的定义与完全限定名称 普通读书笔记卡
- 门面模式收窄包接口 普通读书笔记卡
- 共同封闭原则与共同复用原则 普通读书笔记卡
- 包图定义与依赖的概括关系 普通读书笔记卡
- 稳定依赖原则与稳定抽象原则 普通读书笔记卡
- 包的分层结构与主题区域结构 普通读书笔记卡
- 接口与实现分离到不同包 普通读书笔记卡
08 部署图
- 节点的两种形式:设备与执行环境 普通读书笔记卡
- 工件是软件的物理显现 普通读书笔记卡
09 用例
- 场景与用例的关系 普通读书笔记卡
- 执行者的定义与特点 普通读书笔记卡
- 用例价值在文本不在图 普通读书笔记卡
- 主成功场景与扩展的结构 结构图卡
- 用例的包含关系与反对功能分解 普通读书笔记卡
- 用例的前置条件、保证与触发器 普通读书笔记卡
- 用例图应忽略extend关系 普通读书笔记卡
- 用例的三个级别 结构图卡
- 用例与特性(故事)的关系 普通读书笔记卡
10 状态机图
- 警戒条件互斥与无效事件被忽略 普通读书笔记卡
- 状态是抽象的反应模式 普通读书笔记卡
- 内部活动与自转换的区别 普通读书笔记卡
- 入口活动与出口活动 普通读书笔记卡
- do活动与常规活动的区别 普通读书笔记卡
- 超状态收纳共享行为 普通读书笔记卡
- 并发正交状态 普通读书笔记卡
- 历史伪状态 普通读书笔记卡
- 何时使用状态图 普通读书笔记卡
- 转换的三段式标签语法 结构图卡
- 状态图的三种实现方式对比 结构图卡
11 活动图
- 活动图与状态图的解绑 普通读书笔记卡
- 分叉与结合:并行流的开启与同步 结构图卡
- 判断与合并及else警戒条件 普通读书笔记卡
- 多进入流语义的版本变化 普通读书笔记卡
- 分区展示谁做什么 普通读书笔记卡
- 信号与竞速终止 普通读书笔记卡
- 令牌机制 结构图卡
- 针脚与变换 普通读书笔记卡
- 扩展区域对集合逐项执行 结构图卡
- 流结束与活动结束的区别 普通读书笔记卡
- 结合规格处理复杂同步条件 普通读书笔记卡
- 何时使用活动图 普通读书笔记卡
- 动作分解为子活动或方法调用 普通读书笔记卡
12 通信图
- 通信图与序列图的表达取舍 结构图卡
- 嵌套小数编号解决自调用歧义 结构图卡
- 通信图与序列图的选择依据 普通读书笔记卡
13 组合结构
- 组合结构把类分解为部件 普通读书笔记卡
- 端口把接口分组为逻辑交互 普通读书笔记卡
- 包与组合结构的时机区别 普通读书笔记卡
14 组件图
- 组件表示法的演变 普通读书笔记卡
- 组件类图与组件组合结构图的分工 普通读书笔记卡
- 组件的市场驱动定义 普通读书笔记卡
- 组件粒度与DLL地狱警告 普通读书笔记卡
15 协作
- 协作用角色而非类描述交互模式 普通读书笔记卡
- 协作发生与模式表示法的实际状况 普通读书笔记卡
- 协作在实践中缺乏竞争力 普通读书笔记卡
16 交互概述图
- 交互概述图的混合本质 普通读书笔记卡
- 交互概述图的实用性存疑 普通读书笔记卡
17 时间图
- 时间图聚焦时间约束 普通读书笔记卡
- 时间图的两种画法与适用场景 普通读书笔记卡
A UML版本之间的变化
- 类型与实现类的区别 普通读书笔记卡
- 角色术语的分化 普通读书笔记卡
- 用例关系的历史演变 结构图卡
- UML2图形类型总览 结构图卡
- UML版本号的历史混乱 普通读书笔记卡
相关主题
暂无公开主题。