图书介绍
软件工程设计导论-过程、原理与模式 UML2.0版pdf电子书版本下载
- (美)福克斯著 著
- 出版社: 北京:清华大学出版社
- ISBN:7302159505
- 出版时间:2007
- 标注页数:620页
- 文件大小:34MB
- 文件页数:648页
- 主题词:软件工程-工程设计
PDF下载
下载说明
软件工程设计导论-过程、原理与模式 UML2.0版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第Ⅰ部分 简介 3
第1章 软件设计学 3
1.1 软件设计的概念 3
1.1.1 设计出来的世界 3
1.1.2 软件产品 4
1.1.3 软件设计的定义 5
1.1.4 设计是问题的解决方案 6
1.1.5 抽象化 6
1.1.6 模型的概念 7
1.1.7 设计中的建模 9
1.1.8 软件设计中的建模 9
1.1.9 本节小结 9
1.1.10 本节复习题 10
1.2 设计的多样性 10
1.2.1 产品设计 10
1.2.2 工程设计 10
1.2.3 设计团队 11
1.2.4 软件产品设计 12
1.2.5 软件工程设计 12
1.2.6 软件设计团队 13
1.2.7 专注于软件工程设计 13
1.2.8 本节小结 13
1.2.9 本节复习题 14
1.3 生命周期中的软件设计 14
1.3.1 软件生命周期 14
1.3.2 跨生命周期的设计 16
1.3.3 “做什么”与“如何做”的区别 17
1.3.4 软件设计问题和解决方案 17
1.3.5 累积的案例分析:AqaLush 18
1.3.6 作为动词和名词的“设计” 20
1.3.7 本节小结 21
1.3.8 本节复习题 21
1.4 软件工程设计方法 21
1.4.1 设计方法的概念 21
1.4.2 软件工程设计方法的历史 22
1.4.3 方法的中立性 23
1.4.4 本节小结 23
1.4.5 本节复习题 23
1.5 补充阅读 24
1.5.1 1.1节 24
1.5.2 1.2节 24
1.5.3 1.3节 24
1.5.4 1.4节 24
1.6 练习 25
1.6.1 鸡舍 25
1.6.2 羊和狼 25
1.6.3 1.1节 25
1.6.4 1.2节 25
1.6.5 1.3节 26
1.6.6 1.4节 26
1.6.7 团队项目 26
1.6.8 研究项目 26
1.7 复习题答案 27
1.7.1 1.1节复习题答案 27
1.7.2 1.2节复习题答案 27
1.7.3 1.3节复习题答案 28
1.7.4 1.4节复习题答案 28
第2章 软件设计过程和管理 30
2.1 使用UML活动图表示过程 30
2.1.1 过程和过程描述 30
2.1.2 活动图 31
2.1.3 活动图试探法 40
2.1.4 应当使用活动图的情形 40
2.1.5 试探法总结 42
2.1.6 本节小结 42
2.1.7 本节复习题 42
2.2 软件设计过程 42
2.2.1 软件设计活动 42
2.2.2 分析和解析 43
2.2.3 一般问题解决策略 44
2.2.4 一般设计过程 45
2.2.5 一般软件产品设计过程 47
2.2.6 一般软件工程设计过程 48
2.2.7 本节小结 49
2.2.8 本节复习题 49
2.3 软件设计管理 50
2.3.1 项目管理 50
2.3.2 项目规划 50
2.3.3 项目组织 51
2.3.4 项目人员配备 51
2.3.5 项目跟踪 52
2.3.6 项目领导 52
2.3.7 重复规划和跟踪 53
2.3.8 设计项目分解 54
2.3.9 设计项目的规划和跟踪 55
2.3.10 设计项目的组织、人员配备和领导 55
2.3.11 作为项目驱动器的设计 55
2.3.12 本节小结 56
2.3.13 本节复习题 56
2.4 补充阅读 56
2.4.1 2.1节 56
2.4.2 2.2节 57
2.4.3 2.3节 57
2.5 练习 57
2.5.1 2.1节 57
2.5.2 2.2节 58
2.5.3 2.3节 58
2.5.4 团队项目 58
2.5.5 研究项目 59
2.6 复习题答案 59
2.6.1 2.1节复习题答案 59
2.6.2 2.2节复习题答案 60
2.6.3 2.3节复习题答案 60
第Ⅱ部分 软件产品设计 65
第3章 软件产品设计的上下文 65
3.1 产品和市场 65
3.1.1 市场影响产品 65
3.1.2 产品影响设计 66
3.1.3 产品分类 66
3.1.4 本节小结 68
3.1.5 本节复习题 68
3.2 产品规划 68
3.2.1 产品规划过程 68
3.2.2 识别机会 69
3.2.3 评估机会并确定其优先级 70
3.2.4 分配资源并确定时限 71
3.2.5 本节小结 71
3.2.6 本节复习题 72
3.3 项目任务书 72
3.3.1 产品设计过程的输入和输出 72
3.3.2 项目使命陈述的概念 73
3.3.3 本节小结 76
3.3.4 本节复习题 77
3.4 软件需求说明 77
3.4.1 作为过程输入和输出的SRS 77
3.4.2 SRS的内容 77
3.4.3 需求的类型 78
3.4.4 需求的抽象级别 79
3.4.5 交互作用和用户界面设计 81
3.4.6 SRS模板 82
3.4.7 本节小结 82
3.4.8 本节复习题 83
3.5 补充阅读 83
3.5.1 3.1节 83
3.5.2 3.2节 83
3.5.3 3.3节 83
3.5.4 3.4节 84
3.6 练习 84
3.6.1 3.1节 84
3.6.2 3.2节 84
3.6.3 3.3节 85
3.6.4 3.4节 85
3.6.5 团队项目 86
3.7 复习题答案 86
3.7.1 3.1节复习题答案 86
3.7.2 3.2节复习题答案 87
3.7.3 3.3节复习题答案 87
3.7.4 3.4节复习题答案 87
第4章 产品设计分析 89
4.1 产品设计过程综述 90
4.1.1 过程综述 90
4.1.2 AquaLush示例 92
4.1.3 本节小结 93
4.1.4 本节复习题 94
4.2 需要的引出 94
4.2.1 需要与需求 94
4.2.2 需要引出的挑战 94
4.2.3 引出试探法 95
4.2.4 引出技术 96
4.2.5 引出试探法和技术总结 98
4.2.6 本节小结 98
4.2.7 本节复习题 98
4.3 需要的记录和分析 99
4.3.1 制定并组织文档 99
4.3.2 记录问题域 99
4.3.3 记录目标、需要和要求 99
4.3.4 问题建模 102
4.3.5 检查需要文档 102
4.3.6 本节小结 103
4.3.7 本节复习题 104
4.4 补充阅读 104
4.4.1 4.1节 104
4.4.2 4.2节 104
4.4.3 4.3节 104
4.5 练习 105
4.5.1 计算机分配系统 105
4.5.2 4.1节 105
4.5.3 4.2节 106
4.5.4 4.3节 106
4.5.5 团队项目 106
4.6 复习题答案 107
4.6.1 4.1节复习题答案 107
4.6.2 4.2节复习题答案 107
4.6.3 4.3节复习题答案 108
第5章 产品设计解析 109
5.1 生成备选需求 110
5.1.1 过程上下文 110
5.1.2 生成备选需求 110
5.1.3 改进备选需求 111
5.1.4 本节小结 113
5.1.5 本节复习题 113
5.2 陈述需求 113
5.2.1 需求说明的表示法 113
5.2.2 陈述需求 114
5.2.3 需求原子化 115
5.2.4 试探法总结 117
5.2.5 本节小结 117
5.2.6 本节复习题 118
5.3 评估并选择方案 118
5.3.1 评估和选择面对的挑战 118
5.3.2 评估技术 118
5.3.3 作出选择 119
5.3.4 选择技术 119
5.3.5 使用计分矩阵选择AquaLush设计方案 120
5.3.6 确定选定需求的优先级 121
5.3.7 本节小结 122
5.3.8 本节复习题 122
5.4 结束产品设计 122
5.4.1 SRS的质量特性 122
5.4.2 需求确认 123
5.4.3 需求审查 123
5.4.4 需求评审 124
5.4.5 持续审查 126
5.4.6 本节小结 127
5.4.7 本节复习题 127
5.5 原型设计 127
5.5.1 产品设计中的建模 127
5.5.2 原型的概念 128
5.5.3 原型的用途 130
5.5.4 原型设计中的风险 131
5.5.5 本节小结 132
5.5.6 本节复习题 132
5.6 补充阅读 132
5.6.1 5.1节 132
5.6.2 5.2节 133
5.6.3 5.3节 133
5.6.4 5.4节 133
5.6.5 5.5节 133
5.7 练习 133
5.7.1 停车库控制系统 133
5.7.2 衣帽柜分配系统 134
5.7.3 Pigeonhole票房系统 134
5.7.4 简易邮资亭系统 134
5.7.5 5.1节 135
5.7.6 5.2节 135
5.7.7 5.3节 136
5.7.8 5.4节 136
5.7.9 5.5节 137
5.7.10 团队项目 137
5.8 复习题答案 137
5.8.1 5.1节复习题答案 137
5.8.2 5.2节复习题答案 138
5.8.3 5.3节复习题答案 138
5.8.4 5.4节复习题答案 138
5.8.5 5.5节复习题答案 139
第6章 使用用例进行设计 140
6.1 UML用例图 141
6.1.1 细化功能需求 141
6.1.2 用例建模有效的原因 141
6.1.3 用例和参与者 141
6.1.4 用例图 142
6.1.5 场景 143
6.1.6 制作用例图 144
6.1.7 用例图构造规则 146
6.1.8 用例图试探法 147
6.1.9 检查用例图 148
6.1.10 何时使用用例图 148
6.1.11 试探法总结 148
6.1.12 本节小结 149
6.1.13 本节复习题 149
6.2 用例描述 149
6.2.1 用例描述的概念 149
6.2.2 用例描述的内容 150
6.2.3 用例描述的格式 151
6.2.4 编写用例描述 153
6.2.5 用例描述试探法 156
6.2.6 用例描述的用途 157
6.2.7 试探法总结 157
6.2.8 本节小结 157
6.2.9 本节复习题 158
6.3 用例模型 158
6.3.1 建立用例模型的原因 158
6.3.2 使用用例图进行设计 158
6.3.3 使用用例描述进行设计 160
6.3.4 从用例模型中析取需求 162
6.3.5 用例驱动的开发 163
6.3.6 本节小结 163
6.3.7 本节复习题 163
6.4 补充阅读 164
6.4.1 6.1节 164
6.4.2 6.2节 164
6.4.3 6.3节 164
6.5 练习 164
6.5.1 计算机分配系统 164
6.5.2 指纹存取系统 165
6.5.3 6.1节 165
6.5.4 6.2节 167
6.5.5 6.3节 167
6.5.6 团队项目 167
6.5.7 研究项目 167
6.6 复习题答案 167
6.6.1 6.1节复习题答案 167
6.6.2 6.2节复习题答案 168
6.6.3 6.3节复习题答案 168
第Ⅲ部分 软件工程设计 171
第7章 工程设计分析 171
7.1 工程设计分析简介 172
7.1.1 工程设计分析的上下文 172
7.1.2 分析模型 173
7.1.3 类和对象的模型和图 173
7.1.4 类模型的类型 175
7.1.5 使用概念模型 175
7.1.6 本节小结 176
7.1.7 本节复习题 176
7.2 UML类图和对象图 176
7.2.1 类和对象的建模表示法 176
7.2.2 联系 180
7.2.3 类图构造规则 181
7.2.4 类图试探法 182
7.2.5 类图的用途 183
7.2.6 UML对象图 183
7.2.7 对象链接 184
7.2.8 对象图的构造规则和试探法 185
7.2.9 对象图的用途 185
7.2.10 试探法总结 185
7.2.11 本节小结 186
7.2.12 本节复习题 186
7.3 建立概念模型 186
7.3.1 建立概念模型的过程 186
7.3.2 试探法总结 192
7.3.3 本节小结 192
7.3.4 本节复习题 193
7.4 补充阅读 193
7.4.1 7.1节 193
7.4.2 7.2节 193
7.4.3 7.3节 193
7.5 练习 193
7.5.1 生长灯 193
7.5.2 植物园管理系统 194
7.5.3 7.1节 194
7.5.4 7.2节 194
7.5.5 7.3节 196
7.5.6 团队项目 196
7.5.7 研究项目 197
7.6 复习题答案 197
7.6.1 7.1节复习题答案 197
7.6.2 7.2节复习题答案 197
7.6.3 7.3节复习题答案 198
第8章 工程设计解析 199
8.1 工程设计解析活动 200
8.1.1 体系结构和详细设计 200
8.1.2 体系结构设计说明 200
8.1.3 详细设计说明 202
8.1.4 本节小结 203
8.1.5 本节复习题 203
8.2 工程设计原则 203
8.2.1 设计评估标准 203
8.2.2 基本原则 203
8.2.3 基本设计原则总结 205
8.2.4 本节小结 205
8.2.5 本节复习题 205
8.3 模块性原则 205
8.3.1 构造原则 205
8.3.2 模块性 206
8.3.3 模块性原则 207
8.3.4 模块性原则总结 213
8.3.5 本节小结 213
8.3.6 本节复习题 213
8.4 可实现性和美观性原则 214
8.4.1 其他构造原则 214
8.4.2 可实现性原则 214
8.4.3 美观性原则 215
8.4.4 原则之间的冲突 216
8.4.5 设计原则总结 217
8.4.6 设计原则分类 217
8.4.7 本节小结 217
8.4.8 本节复习题 218
8.5 补充阅读 218
8.5.1 8.1节 218
8.5.2 8.3节 218
8.5.3 8.4节 218
8.6 练习 218
8.6.1 8.1节 218
8.6.2 8.2节 219
8.6.3 8.3节 219
8.6.4 8.4节 219
8.6.5 团队项目 220
8.6.6 研究项目 220
8.7 复习题答案 220
8.7.1 8.1节复习题答案 220
8.7.2 8.2节复习题答案 221
8.7.3 8.3节复习题答案 221
8.7.4 8.4节复习题答案 221
第9章 体系结构设计 223
9.1 体系结构设计简介 224
9.1.1 体系结构设计的上下文 224
9.1.2 体系结构设计过程 225
9.1.3 SAD的内容 225
9.1.4 质量特性 226
9.1.5 体系结构设计的挑战 227
9.1.6 本节小结 228
9.1.7 本节复习题 228
9.2 指定软件体系结构 228
9.2.1 表示的多样性 228
9.2.2 文本说明 229
9.2.3 框线图 232
9.2.4 试探法总结 235
9.2.5 本节小结 236
9.2.6 本节复习题 236
9.3 UML封装和组件图 236
9.3.1 UML公用表示法 236
9.3.2 封装 238
9.3.3 封装图 238
9.3.4 软件组件 239
9.3.5 UML组件和组件图 239
9.3.6 试探法总结 242
9.3.7 本节小结 242
9.3.8 本节复习题 243
9.4 UML部署图 243
9.4.1 逻辑和物理体系结构 243
9.4.2 人工制品和节点 243
9.4.3 部署图 244
9.4.4 本节小结 245
9.4.5 本节复习题 245
9.5 补充阅读 246
9.5.1 9.1节 246
9.5.2 9.2节 246
9.5.3 9.3、9.4节 246
9.6 练习 246
9.6.1 9.1节 246
9.6.2 9.2节 247
9.6.3 9.3节 247
9.6.4 9.4节 248
9.6.5 研究项目 249
9.7 复习题答案 249
9.7.1 9.1节复习题答案 249
9.7.2 9.2节复习题答案 249
9.7.3 9.3节复习题答案 250
9.7.4 9.4节复习题答案 250
第10章 体系结构设计解析 252
10.1 生成和改进软件体系结构 253
10.1.1 生成设计方案 253
10.1.2 确定功能组件 254
10.1.3 确定基于质量特性的组件 258
10.1.4 比较设计方案 261
10.1.5 改进设计方案 261
10.1.6 本节小结 263
10.1.7 本节复习题 263
10.2 评估和选择软件体系结构 263
10.2.1 评估面对的挑战 263
10.2.2 场景 263
10.2.3 概貌 264
10.2.4 使用场景进行评估 266
10.2.5 使用原型进行评估 267
10.2.6 在体系结构评估中使用设计原则 267
10.2.7 设计方案选择技术 267
10.2.8 试探法总结 269
10.2.9 本节小结 269
10.2.10 本节复习题 270
10.3 确定软件体系结构 270
10.3.1 SAD质量特征 270
10.3.2 设计审查 270
10.3.3 主动式设计审查 271
10.3.4 持续审查 273
10.3.5 本节小结 273
10.3.6 本节复习题 273
10.4 补充阅读 274
10.4.1 10.1节 274
10.4.2 10.2节 274
10.4.3 10.3节 274
10.5 练习 274
10.5.1 计算机分配系统 274
10.5.2 指纹存取系统 275
10.5.3 10.1节 275
10.5.4 10.2节 276
10.5.5 10.3节 277
10.5.6 研究项目 277
10.5.7 团队项目 277
10.6 复习题答案 277
10.6.1 10.1节复习题答案 277
10.6.2 10.2节复习题答案 278
10.6.3 10.3节复习题答案 278
第11章 静态中级面向对象设计:类模型 279
11.1 详细设计简介 280
11.1.1 详细设计的上下文 280
11.1.2 详细设计的范围 280
11.1.3 详细设计的过程 282
11.1.4 设计文档的内容 282
11.1.5 本节小结 283
11.1.6 本节复习题 283
11.2 高级UML类图 284
11.2.1 泛化 284
11.2.2 抽象类 285
11.2.3 接口 285
11.2.4 功能的属性和可见性 287
11.2.5 实例变量、类变量、实例操作和类操作 288
11.2.6 聚合与复合 289
11.2.7 联系类 290
11.2.8 联系限定符 291
11.2.9 其他联系附属物 292
11.2.10 试探法总结 293
11.2.11 本节小结 293
11.2.12 本节复习题 294
11.3 草拟类模型 294
11.3.1 中级设计的生成技术 294
11.3.2 试探法总结 301
11.3.3 本节小结 301
11.3.4 本节复习题 302
11.4 静态建模试探法 302
11.4.1 职责 302
11.4.2 继承性 304
11.4.3 委托 305
11.4.4 试探法总结 306
11.4.5 本节小结 306
11.4.6 本节复习题 307
11.5 补充阅读 307
11.5.1 11.2节 307
11.5.2 11.3节 307
11.5.3 11.4节 307
11.6 练习 307
11.6.1 处方归档程序 307
11.6.2 谷仓跟踪系统 308
11.6.3 11.1节 309
11.6.4 11.2节 309
11.6.5 11.3节 310
11.6.6 11.4节 311
11.6.7 研究项目 311
11.6.8 团队项目 311
11.7 复习题答案 312
11.7.1 11.1节复习题答案 312
11.7.2 11.2节复习题答案 312
11.7.3 11.3节复习题答案 312
11.7.4 11.4节复习题答案 313
第12章 动态中级面向对象设计:交互作用模型 314
12.1 UML顺序图 314
12.1.1 交互作用图 314
12.1.2 顺序图框架 315
12.1.3 生命线 315
12.1.4 消息和消息箭头 317
12.1.5 消息说明 318
12.1.6 执行事件 319
12.1.7 交互作用片断 320
12.1.8 顺序图试探法 323
12.1.9 顺序图的用途 325
12.1.10 试探法总结 325
12.1.11 本节小结 325
12.1.12 本节复习题 326
12.2 交互作用设计过程 326
12.2.1 组件和交互作用共同设计 326
12.2.2 自外向内的设计 327
12.2.3 Caldera示例 327
12.2.4 本节小结 331
12.2.5 本节复习题 332
12.3 交互作用建模试探法 332
12.3.1 控制样式 332
12.3.2 Demeter定律 337
12.3.3 试探法总结 337
12.3.4 本节小结 338
12.3.5 本节复习题 338
12.4 补充阅读 338
12.4.1 12.1节 338
12.4.2 12.2节 338
12.4.3 12.3节 338
12.5 练习 338
12.5.1 计算机分配系统 339
12.5.2 12.1节 339
12.5.3 12.2节 341
12.5.4 12.3节 341
12.5.5 研究项目 342
12.5.6 团队项目 342
12.6 复习题答案 342
12.6.1 12.1节复习题答案 342
12.6.2 12.2节复习题答案 343
12.6.3 12.3节复习题答案 343
第13章 动态中级基于状态的设计:状态模型 344
13.1 UML状态图 344
13.1.1 状态和状态转换 344
13.1.2 有限自动机 345
13.1.3 状态图基础 346
13.1.4 状态符号的隔间 347
13.1.5 嵌套的状态图 348
13.1.6 顺序复合状态 349
13.1.7 动作执行顺序 350
13.1.8 占位状态 351
13.1.9 使用顺序复合状态 351
13.1.10 状态图试探法 352
13.1.11 试探法总结 353
13.1.12 本节小结 353
13.1.13 本节复习题 354
13.2 高级UML状态图 354
13.2.1 并发复合状态 354
13.2.2 复合转换 358
13.2.3 历史状态 358
13.2.4 其他状态图试探法 360
13.2.5 试探法总结 360
13.2.6 本节小结 361
13.2.7 本节复习题 361
13.3 使用状态图进行设计 361
13.3.1 接收器和转换器 361
13.3.2 转换器模型 362
13.3.3 接收器模型 363
13.3.4 对话图 365
13.3.5 本节小结 367
13.3.6 本节复习题 367
13.4 补充阅读 368
13.4.1 13.1和13.2节 368
13.4.2 13.3节 368
13.5 练习 368
13.5.1 金属探测器 368
13.5.2 洗车处控制程序 369
13.5.3 13.1节 369
13.5.4 13.2节 370
13.5.5 13.3节 371
13.5.6 研究项目 372
13.6 复习题答案 372
13.6.1 13.1节复习题答案 372
13.6.2 13.2节复习题答案 373
13.6.3 13.3节复习题答案 373
第14章 低级设计 374
14.1 可见性、可访问性和信息隐藏 375
14.1.1 低级设计说明 375
14.1.2 程序实体的可见性 375
14.1.3 可见性的类型 376
14.1.4 可访问性 377
14.1.5 可访问性与信息隐藏 380
14.1.6 信息隐藏试探法 380
14.1.7 使对实体的访问超出其可见范围 381
14.1.8 试探法总结 381
14.1.9 本节小结 382
14.1.10 本节复习题 382
14.2 操作说明 383
14.2.1 操作说明的元素 383
14.2.2 操作契约 385
14.2.3 类的不变式 386
14.2.4 断言包括的内容 388
14.2.5 开发操作说明 389
14.2.6 试探法总结 389
14.2.7 本节小结 390
14.2.8 本节复习题 390
14.3 算法和数据结构说明 390
14.3.1 算法说明 390
14.3.2 数据结构说明 391
14.3.3 数据结构图 392
14.3.4 数据结构图试探法 393
14.3.5 试探法总结 394
14.3.6 本节小结 394
14.3.7 本节复习题 394
14.4 结束设计 394
14.4.1 设计阶段的结束 394
14.4.2 设计文档的内容 394
14.4.3 设计文档的质量特性 395
14.4.4 设计审查 395
14.4.5 本节小结 397
14.4.6 本节复习题 397
14.5 补充阅读 397
14.5.1 14.1节 397
14.5.2 14.2节 397
14.5.3 14.3节 398
14.5.4 14.4节 398
14.6 练习 398
14.6.1 14.1节 398
14.6.2 14.2节 399
14.6.3 14.3节 399
14.6.4 14.4节 400
14.6.5 团队项目 400
14.7 复习题答案 401
14.7.1 14.1节复习题答案 401
14.7.2 14.2节复习题答案 401
14.7.3 14.3节复习题答案 401
14.7.4 14.4节复习题答案 401
第Ⅳ部分 软件设计模式 405
第15章 体系结构风格 405
15.1 软件设计中的模式 405
15.1.1 模式的重要性 405
15.1.2 亚力山大·克里斯托夫 406
15.1.3 软件模式 407
15.1.4 设计模式目录 408
15.1.5 本节小结 408
15.1.6 本书复习题 409
15.2 分层体系结构 409
15.2.1 体系结构的各个层次 409
15.2.2 层的表示 410
15.2.3 层的形成 410
15.2.4 分层风格 411
15.2.5 分层风格示例 412
15.2.6 风格小结 413
15.2.7 本节小结 413
15.2.8 本节复习题 413
15.3 其他体系结构风格 414
15.3.1 概述 414
15.3.2 管道-过滤器风格 414
15.3.3 共享数据风格 416
15.3.4 事件驱动的风格 418
13.3.5 模式-视图-控制器风格 419
15.3.6 异构体系结构 422
15.3.7 风格小结 422
15.3.8 本节小结 423
15.3.9 本节复习题 423
15.4 补充阅读 424
15.4.1 15.1节 424
15.4.2 15.2节 424
15.4.3 15.3节 424
15.5 练习 424
15.5.1 过程监视器 424
15.5.2 15.1节 425
15.5.3 15.2节 425
15.5.4 15.3节 426
15.5.5 研究项目 426
15.6 复习题答案 427
15.6.1 15.1节复习题答案 427
15.6.2 15.2节复习题答案 427
15.6.3 15.3节复习题答案 427
第16章 面向对象的中级设计模式 428
16.1 集合迭代 428
16.1.1 中级设计模式 428
16.1.2 集合迭代 428
16.1.3 迭代机制的要求 429
16.1.4 迭代机制设计方案 430
16.1.5 健壮的迭代器机制 434
16.1.6 本节小结 434
16.1.7 本节复习题 435
16.2 迭代器模式 435
16.2.1 迭代器 435
16.2.2 类比 435
16.2.3 迭代器的操作 436
16.2.4 迭代器模式的结构 436
16.2.5 迭代器模式的行为 436
16.2.6 使用迭代器 437
16.2.7 AquaLush中的迭代器 438
16.2.8 Java枚举和迭代器 438
16.2.9 模式小结 439
16.2.10 本节小结 439
16.2.11 本节复习题 439
16.3 中级设计模式的类别 440
16.3.1 模式 440
16.3.2 模式的类别 440
16.3.3 本节小结 441
16.3.4 本节复习题 441
16.4 补充阅读 441
16.4.1 16.1节 441
16.4.2 16.2节 441
16.4.3 16.3节 441
16.5 练习 441
16.5.1 16.1节 441
16.5.2 16.2节 442
16.5.3 16.3节 442
16.5.4 研究项目 442
16.5.5 团队项目 443
16.6 复习题答案 443
16.6.1 16.1节复习题答案 443
16.6.2 16.2节复习题答案 443
16.6.3 16.3节复习题答案 444
第17章 代理者设计模式 445
17.1 代理者的类别 445
17.1.1 代理者模式 445
17.1.2 使用代理者模式的结果 446
17.1.3 作为代理者模式的迭代器模式 446
17.1.4 模式小结 447
17.1.5 本节小结 448
17.1.6 本节复习题 448
17.2 门面和调停者模式 448
17.2.1 利用门面模式促进交互作用 448
17.2.2 类比 449
17.2.3 门面模式的结构 449
17.2.4 门面模式的行为 449
17.2.5 一些示例 449
17.2.6 何时使用门面模式 450
17.2.7 调停和多门面 450
17.2.8 类比 451
17.2.9 调停者模式的结构 451
17.2.10 调停者模式的行为 452
17.2.11 调停者模式的示例 452
17.2.12 何时使用调停者模式 454
17.2.13 调停者、门面和控制风格 455
17.2.14 模式小结 455
17.2.15 本节小结 456
17.2.16 本节复习题 456
17.3 适配器模式 456
17.3.1 适应和重用 456
17.3.2 类比 456
17.3.3 类和对象适配器模式 457
17.3.4 适配器模式的结构 457
17.3.5 适配器模式的行为 458
17.3.6 适配器模式的示例 458
17.3.7 何时使用适配器模式 460
17.3.8 模式小结 461
17.3.9 本节小结 462
17.3.10 本节复习题 462
17.4 代理模式 462
17.4.1 替身 462
17.4.2 类比 462
17.4.3 代理模式的结构 463
17.4.4 代理模式的行为 463
17.4.5 代理模式的示例 464
17.4.6 何时使用代理模式 465
17.4.7 模式小结 465
17.4.8 本节小结 466
17.4.9 复习题 466
17.5 补充阅读 466
17.6 练习 466
17.6.1 索引子系统 466
17.6.2 17.1节 467
17.6.3 17.2节 468
17.6.4 17.3节 468
17.6.5 17.4节 469
17.6.6 研究项目 469
17.7 复习题答案 470
17.7.1 17.1节复习题答案 470
17.7.2 17.2节复习题答案 470
17.7.3 17.3节复习题答案 470
17.7.4 17.4节复习题答案 471
第18章 生成器设计模式 472
18.1 生成器类别 472
18.1.1 创建实例 472
18.1.2 类比 472
18.1.3 生成器模式 473
18.1.4 工厂方法 473
18.1.5 使用生成器模式的原因 474
18.1.6 模式小结 474
18.1.7 本节小结 475
18.1.8 本节复习题 475
18.2 工厂模式 475
18.2.1 工厂方法与工厂模式 475
18.2.2 类比 476
18.2.3 工厂方法模式的结构 476
18.2.4 工厂方法模式的行为 477
18.2.5 迭代器和工厂方法模式 478
18.2.6 何时使用工厂方法模式 479
18.2.7 抽象工厂模式的结构 479
18.2.8 抽象工厂模式的行为 480
18.2.9 抽象工厂模式的示例:AquaLush 480
18.2.10 何时使用抽象工厂模式 481
18.2.11 模式总结 481
18.2.12 本节小结 482
18.2.13 本节复习题 482
18.3 单例模式 482
18.3.1 唯一的实例 482
18.3.2 类比 483
18.3.3 单例操作 483
18.3.4 单例模式的结构 484
18.3.5 单例模式的行为 484
18.3.6 单例模式的示例:AquaLush 485
18.3.7 何时使用单例模式 485
18.3.8 单例与无实例类 485
18.3.9 在Java中实现单例模式 486
18.3.10 模式小结 486
18.3.11 本节小结 486
18.3.12 本节复习题 486
18.4 原型模式 487
18.4.1 克隆技术 487
18.4.2 Java中的克隆技术 488
18.4.3 克隆技术和原型模式 490
18.4.4 类比 490
18.4.5 原型模式的结构 490
18.4.6 原型模式的行为 491
18.4.7 原型模式示例 491
18.4.8 何时使用原型模式 492
18.4.9 模式小结 492
18.4.10 本节小结 492
18.4.11 本节复习题 492
18.5 补充阅读 493
18.5.1 所有章节 493
18.5.2 18.3节 493
18.5.3 18.4节 493
18.6 练习 493
18.6.1 18.1节 493
18.6.2 18.2节 493
18.6.3 18.3节 494
18.6.4 18.4节 494
18.6.5 研究项目 494
18.6.6 团队项目 494
18.7 复习题答案 495
18.7.1 18.1节复习题答案 495
18.7.2 18.2节复习题答案 495
18.7.3 18.3节复习题答案 495
18.7.4 18.4节复习题答案 496
第19章 反应器设计模式 497
19.1 反应器类别 497
19.1.1 事件驱动的设计 497
19.1.2 反应器模式 498
19.1.3 使用反应器模式的原因 499
19.1.4 反应器模式和事件驱动体系结构 499
19.1.5 模式小结 500
19.1.6 本节小结 500
19.1.7 本节复习题 500
19.2 命令模式 500
19.2.1 函数对象 500
19.2.2 函数对象和命令模式 503
19.2.3 类比 503
19.2.4 命令模式的结构 503
19.2.5 命令模式的行为 504
19.2.6 命令模式示例 504
19.2.7 命令模式的变化 505
19.2.8 何时使用命令模式 505
19.2.9 模式小结 505
19.2.10 本节小结 506
19.2.11 本节复习题 506
19.3 观察者模式 506
19.3.1 减小耦合度 506
19.3.2 MVC体系结构中的观察者模式 506
19.3.3 类比 507
19.3.4 目标和观察者的操作 508
19.3.5 观察者模式的结构 508
19.3.6 观察者模式的行为 509
19.3.7 观察者模式的示例:AquaLush 509
19.3.8 何时使用观察者模式 510
19.3.9 观察者模式的缺点 510
19.3.10 Java支持 511
19.3.11 模式小结 512
19.3.12 本节小结 512
19.3.13 本节复习题 512
19.4 补充阅读 512
19.5 练习 513
19.5.1 19.1节 513
19.5.2 19.2节 513
19.5.3 19.3节 514
19.5.4 研究项目 514
19.5.5 团队项目 514
19.6 复习题答案 514
19.6.1 19.1节复习题答案 514
19.6.2 19.2节复习题答案 515
19.6.3 19.3节复习题答案 515
附录A 术语表 516
附录B AquaLush案例分析 543
B.1 AquaLush灌溉系统概述 543
B.2 AquaLush项目任务书 543
B.3 AquaLush利益相关者目标列表 545
B.4 AquaLush需求列表 546
B.5 AquaLush用户级需求 547
B.6 AquaLush用例模型 549
B.7 AquaLush软件需求规范 556
B.8 AquaLush的概念模型 578
B.9 AquaLush的外廓和场景 579
B.10 AquaLush软件体系结构文档 581
B.11 AquaLush的详细设计文档 598
附录C 参考文献 616