图书介绍

软件工程设计导论-过程、原理与模式 UML2.0版pdf电子书版本下载

软件工程设计导论-过程、原理与模式 UML2.0版
  • (美)福克斯著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302159505
  • 出版时间:2007
  • 标注页数:620页
  • 文件大小:34MB
  • 文件页数:648页
  • 主题词:软件工程-工程设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

软件工程设计导论-过程、原理与模式 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

精品推荐