目录 3
译者序 3
序 3
前言 3
第一部分 敏捷建模简介 3
第1章 绪论 3
1.1 进入敏捷软件开发 5
1.1.1 敏捷软件开发宣言 5
1.1.2 敏捷软件开发的原则 6
1.2 敏捷建模 7
1.2.1 谁是敏捷建模人员 9
1.2.2 敏捷建模概述 9
1.2.3 什么是敏捷模型 10
1.2.4 什么是(或不是)敏捷建模 12
1.4 本书概览 14
1.3 SWA在线案例研究 14
第2章 敏捷建模的价值观 17
2.1 交流 17
2.2 简单 18
2.3 反馈 19
2.4 勇气 20
2.5 谦虚 22
2.6 老生常谈之后 22
3.1 软件是你的首要目标 25
第3章 核心原则 25
3.2 支持后续工作是你的第二目标 26
3.3 轻装前进 26
3.4 主张简单 27
3.5 包容变化 27
3.6 递增的变化 28
3.7 有目的地建模 28
3.8 多种模型 29
3.10 快速反馈 31
3.9 高质量的工作 31
3.11 最大化项目关系人的投资 33
3.12 为什么需要核心原则 33
第4章 补充原则 35
4.1 内容比形式更重要 35
4.2 每个人都可以向别人学习 37
4.3 了解你的模型 37
4.6 相信直觉 38
4.5 开放和诚实的交流 38
4.4 适应本地情况 38
4.7 从这些原则中获益 39
第5章 核心实践 41
5.1 迭代和增量建模的实践 42
5.1.1 使用合适的制品 42
5.1.2 并行创建多个模型 43
5.1.3 迭代到其他的制品中 45
5.2.1 与他人一起建模 47
5.1.4 小增量建模 47
5.2 有效团队协作的实践 47
5.2 2 项目关系人的积极参与 48
5.2.3 集体所有 49
5.2.4 公开展示模型 50
5.3 简单性的实践 50
5.3.1 创建简单的内容 50
5.3.2 简单地描述模型 51
5.3.3 使用最简单的工具 52
5.4 验证工作的实践 52
5.4.1 考虑可测试性 53
5.4.2 用代码验证 53
第6章 补充实践 55
6.1 提高生产率的实践 55
6.1.1 应用建模标准 55
6.1.2 渐进地应用模式 57
6.2 敏捷文档的实践 58
6.2.1 丢弃临时模型 58
6.1.3 复用已有的制品 58
6.2.2 契约模型正式化 59
6.2.3 在有危害时才更新模型 60
6.3 有关动机的实践 62
6.3.1 通过建模来理解 62
6.3.2 通过建模来交流 63
6.4 真正的好主意 64
6.4.1 了解工具 64
6.4.2 重构 64
6.4.3 测试优先设计 64
6.5 如何在项目中安排敏捷建模的实践 64
第7章 从混乱到有序:AM的实践如何结合到一起 67
7.1 核心实践 67
7.1.1 与高效团队协作相关的实践 68
7.1.2 与迭代和增量开发相关的实践 68
7.2.1 与文档相关的实践 69
7.2 补充实践 69
7.1.4 验证工作的实践 69
7.1.3 促进简单性的实践 69
7.2.2 与动机相关的实践 70
7.2.3 提高生产率的实践 70
7.3 各类实践如何关联 70
7.4 混乱而有序:Chaordic 71
7.5 展望 72
8.1 怎样交流 75
第8章 交流 75
第二部分 实践中的敏捷建模 75
8.2 影响交流的因素 76
8.3 交流与敏捷建模 78
8.4 有效的交流 78
第9章 培养敏捷文化 81
9.1 消除有关建模的误解 81
9.1.1 误解1:模型=文档 81
9.1.5 误解5:设计是“刻在石头里”的 82
9.1.4 误解4:必须“冻结”需求 82
9.1.3 误解3:建模意味着重量级软件过程 82
9.1.2 误解2:可以在一开头就把什么都想清楚 82
9.1.6 误解6:必须使用CASE工具 83
9.1.7 误解7:建模是浪费时间 84
9.1.8 误解8:世界绕着数据建模转 84
9.1.9 误解9:开发人员都知道怎样建模 85
9.2 从小处着眼 85
9.3 放松一点要求 86
9.4 坚决支持项目关系人的权利和义务 87
9.5 重新考虑给项目关系人的报告 88
第10章 使用可能的最简单的工具 91
10.1 用简单工具敏捷建模 92
10.1.1 简单工具的优点 92
10.1.2 简单工具的缺点 93
10.1.3 何时应该使用简单工具 93
10.1.4 用技术支持简单工具 93
10.2 模型的演化 95
10.3.1 选择CASE工具 99
10.3 用CASE工具敏捷建模 99
10.3.2 克服关于CASE工具的误解 100
10.3.3 生成源代码 101
10.3.4 生成文档 102
10.4 使用媒体 102
10.5 在模型上使用工具的影响 103
10.6 在实践中使用最简单的工具 103
第11章 敏捷工作区域 105
11.1 敏捷建模室 105
11.2 有效的工作区域 107
11.3 在实践中应用 108
第12章 敏捷建模团队 111
12.1 招募少量优秀的开发人员 111
12.2 认识到在敏捷中没有“我” 114
12.3 要求每个人积极参与 115
12.4 团队一起建模 116
12.5 在实践中应用 117
第13章 敏捷建模会议 119
13.1 建模会议持续时间 119
13.2 建模会议的类型 120
13.3 建模会议的参加者 122
13.4 建模会议的正式程度 124
13.5 在实践中应用 125
第14章 敏捷资料 127
14.1 人们为什么写文档 128
14.2 模型什么时候成为永久文档 130
14.2.1 与资料相关的考虑因素有哪些 132
14.2.2 “轻装前进”是什么意思 134
14.2.3 一份文档什么时候是敏捷的 136
14.2.4 应该创建什么类型的文档 137
14.2.5 何时应该更新文档 140
14.2.6 有效的资料传递 141
14.2.7 增加资料敏捷性的策略 141
14.2.8 在实践中应用 144
15.1 UML并不充分 145
第15章 UML及其延伸 145
15.2 UML过于复杂 147
15.3 UML并非方法学也不是过程 147
15.4 别再想着可执行UML(至少现在) 148
15.5 在实践中应用UML 149
第三部分 敏捷建模和极限编程(XP)第16章 澄清事实 153
16.1 建模是XP的一部分 154
16.2 文档是必需的 154
16.3 XP和UML 156
16.4 结论 157
第17章 敏捷建模与极限编程 159
17.1 AM和XP之间潜在的契合 159
17.2 重构和AM 161
17.3 测试优先开发和AM 161
17.4 应该采取哪些AM实践 162
第18章 贯穿XP生命周期的敏捷建模 163
18.2 计划阶段 164
18.1 探索阶段 164
18.3 迭代到发布阶段 166
18.4 产品化阶段 168
18.5 维护阶段 169
18.6 如何应用 169
第19章 XP探索阶段的建模 171
19.1 优先定义初始需求 171
19.2 比喻、架构和骨架 174
19.3 为项目设定一个基础 176
第20章 XP迭代中的建模:条目搜索 177
20.1 任务 177
20.2 物理数据库模式建模 178
20.3 观察到的事实 181
第21章 XP迭代中的建模:订单求和 183
21.1 任务 183
21.2 用需求建模来补救 184
21.3 从外界专家那里寻求帮助 185
21.4 简短的设计会议 186
21.5 契约模型正式化 187
21.6 将来有变化怎么办 188
21.7 观察到的事实 189
21.8 如何在实际工作中应用 189
第四部分 敏捷建模和统一过程 193
第22章 敏捷建模和统一过程 193
22.1 在统一过程中如何建模 193
22.2 AM与UP的契合到底有多好 194
22.3 选择变得敏捷些 197
第23章 贯穿统一过程生命周期的敏捷建模 199
23.1 建模规程 199
23.1.1 业务建模规程 200
23.1.2 需求规程 201
23.1.3 分析和设计规程 202
23.1.4 基础设施管理规程 203
23.2.1 实现规程 204
23.2 非建模规程 204
23.2.2 测试规程 205
23.2.3 项目管理规程 205
23.2.4 配置和变更管理规程 205
23.2.5 环境规程 206
23.2.6 部署规程 206
23.2.7 运行和支持规程 206
23.3 如何应用 207
第24章 敏捷业务建模 209
24.1 一个业务/基本用例模型 209
24.2 一个简单的业务对象模型 211
24.3 一份敏捷的补充业务规格说明书 212
24.4 一个业务愿景 214
24.5 如何在实践中应用 215
第25章 敏捷需求 217
25.1 上下文模型 217
25.2 用例模型 220
25.3 用例故事板 223
25.4 补充规格说明书 226
25.5 如何在实践中应用 227
第26章 敏捷分析和设计 229
26.1 在统一过程中重新考虑分析和设计模型 230
26.2 架构建模 231
26.3 创建用例实现 235
26.4 是更新用例的时候了吗 238
26.5 是使用CASE工具的时候了吗 241
26.6 设计类建模 242
26.7 数据建模 244
26.8 包容变化 246
26.9 如何在实践中应用 247
第27章 敏捷基础设施管理 249
27.1 基础设施模型 249
27.2 基础设施建模 251
27.2.3 比较这两种方式 252
27.2.2 自底向上建模 252
27.2.1 自顶向下建模 252
27.3 设定建模标准和指导原则 253
27.4 核心基础设施团队 254
27.5 采用敏捷建模的核心架构团队 255
27.6 如何在实践中应用 256
第28章 在统一过程项目中采用敏捷建模 259
第五部分 展望 265
第29章 采用敏捷建模或者克服逆境 265
29.1 估算契合程度 265
29.1.1 认识到敏捷建模什么时候管用 266
29.1.2 认识到敏捷建模什么时候不管用 267
29.2 保持简单 268
29.3 克服组织结构上的和文化上的挑战 268
29.3.1 持怀疑态度的开发人员 269
29.3.2 过分热心的过程警察 269
29.3.4 菜谱哲学 270
29.3.3 有权力的催着要纸的人 270
29.3.5 不能接受批评 271
29.3.6 由于害怕失去所有的人而导致过度的文档 271
29.4 克服与项目有关的挑战 272
29.4.1 分布式的开发 272
29.4.2 移交给其他团队 273
29.4.3 固定价格契约 274
29.5 考虑完全采用AM之外的其他途径 274
29.6 如何在实践中应用 275
第30章 结论:决心成功 277
30.1 对敏捷建模常见的误解 277
30.2 什么时候是(或不是)在敏捷建模 278
30.3 敏捷建模资源 279
30.4 几个临别的想法 279
附录A 建模技术 281
词汇表 291
参考文献 301