图书介绍

软件工程设计导论-过程、原理与模式 UML2.0版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

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

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用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 累积的案例分析:AqaLush18

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 作为过程输入和输出的SRS77

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 抽象工厂模式的示例:AquaLush480

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 单例模式的示例:AquaLush485

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 观察者模式的示例:AquaLush509

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

热门推荐