软件体系结构与设计实用教程(第二版) / 普通高等院校“十四五”计算机类专业系列教材
¥43.00定价
作者: 刘其成,毕远伟
出版时间:2023-10
出版社:中国铁道出版社
- 中国铁道出版社
- 9787113301859
- 2版
- 502194
- 48256913-4
- 16开
- 2023-10
- 软件工程及相关专业
- 本科
作者简介
内容简介
本书根据普通高等院校计算机、软件工程等专业教学要求,对软件体系结构和软件设计的基本原理和实例进行了系统论述,包括面向对象方法、经典软件体系结构风格、分布式软件体系结构风格、MVC风格与Struts框架、软件设计目标、设计原则、创建型设计模式、结构型设计模式以及行为型设计模式等内容。
本书在论述软件体系结构和软件设计原理的前提下,特别注重实用性。书中含有大量精心设计的程序实例,以方便读者学习。本书集作者多年的教学经验编写而成,内容安排合理,讲解深入浅出。
本书适合作为普通高等院校软件工程专业、计算机科学与技术专业以及信息类相关专业本科生和研究生的教材,也可作为软件工程培训教材,以及软件开发人员的参考书。
本书在论述软件体系结构和软件设计原理的前提下,特别注重实用性。书中含有大量精心设计的程序实例,以方便读者学习。本书集作者多年的教学经验编写而成,内容安排合理,讲解深入浅出。
本书适合作为普通高等院校软件工程专业、计算机科学与技术专业以及信息类相关专业本科生和研究生的教材,也可作为软件工程培训教材,以及软件开发人员的参考书。
目录
1.1 软件工程方法学 1
1.1.1 结构化方法 1
1.1.2 面向对象方法 3
1.2 软件设计与体系结构 5
习题 6
第2章 面向对象方法 7
2.1 面向对象分析基础 7
2.1.1 用例图 7
2.1.2 类图 10
2.1.3 描述接口的类图 11
2.1.4 类图中的关系 11
2.2 软件体系结构 14
2.2.1 软件体系结构的定义 14
2.2.2 组件与连接件 15
2.2.3 软件体系结构的研究内容 18
2.2.4 软件体系结构风格 21
2.3 面向对象设计 23
2.3.1 问题域部分的设计 23
2.3.2 人机交互部分的设计 33
2.3.3 数据管理部分的设计 37
2.3.4 控制驱动部分的设计 43
习题 50
第3章 经典软件体系结构风格 52
3.1 调用-返回风格 52
3.1.1 主程序-子程序风格 52
3.1.2 面向对象风格 54
3.2 数据流风格 56
3.2.1 批处理风格 57
3.2.2 管道/过滤器风格 59
3.3 基于事件的隐式调用风格 62
3.3.1 原理 62
3.3.2 实例 64
3.4 层次风格 67
3.4.1 原理 67
3.4.2 实例 68
3.5 仓库风格 71
3.5.1 原理 71
3.5.2 实例 72
3.6 解释器风格 74
3.6.1 原理 74
3.6.2 实例 75
3.7 反馈控制环风格 76
3.7.1 原理 76
3.7.2 实例 77
习题 78
第4章 分布式软件体系结构风格 79
4.1 概述 79
4.2 两层C/S体系结构风格 80
4.2.1 原理 80
4.2.2 实例 82
4.3 P2P体系结构风格 92
4.4 三层C/S体系结构风格 93
4.5 B/S体系结构风格 95
4.5.1 原理 95
4.5.2 实例 97
4.6 C/S与B/S混合软件体系结构 99
4.6.1 原理 99
4.6.2 实例 101
4.7 中间件 102
4.7.1 中间件简介 102
4.7.2 分布式系统中的中间件 103
习题 106
第5章 MVC风格与Struts框架 107
5.1 MVC风格 107
5.1.1 MVC风格概述 107
5.1.2 MVC在Java技术中的应用 109
5.1.3 实例 111
5.2 Struts框架 118
5.2.1 Struts框架概述 118
5.2.2 Struts框架的组件 120
习题 124
第6章 软件设计目标 125
6.1 概述 125
6.1.1 基本概念 125
6.1.2 实例与分析 126
6.2 健壮性 126
6.2.1 概念与实例 126
6.2.2 Java异常处理机制 128
6.3 高效性 129
6.4 可复用性 130
6.4.1 基本概念 130
6.4.2 例子 131
6.5 可维护性 132
6.5.1 基本概念 132
6.5.2 实例 133
6.6 可维护性复用 140
6.6.1 可维护性复用的概念 140
6.6.2 可维护性复用与设计原则 140
6.6.3 可维护性复用与设计模式 141
6.7 软件设计度量、软件再工程和逆向工程 142
习题 143
第7章 设计原则 144
7.1 开-闭原则 144
7.1.1 概念 144
7.1.2 实现方法 144
7.1.3 与其他设计原则的关系 145
7.1.4 实例 145
7.2 里氏代换原则 146
7.2.1 概念 146
7.2.2 Java语言与里氏代换原则 147
7.2.3 实例 147
7.3 依赖倒转原则 152
7.3.1 倒转的含义 152
7.3.2 概念 152
7.3.3 实例 154
7.4 合成/聚合复用原则 159
7.4.1 概念 159
7.4.2 合成/聚合复用与继承复用 159
7.4.3 实例 160
7.5 迪米特法则 161
7.5.1 概念 161
7.5.2 实例 163
7.6 单一职责原则 165
7.6.1 概念 165
7.6.2 实例 166
7.7 接口隔离原则 166
7.7.1 概念 166
7.7.2 实例 167
习题 169
第8章 创建型设计模式 170
8.1 简单工厂模式 170
8.2 工厂方法模式 172
8.3 抽象工厂模式 175
8.4 单例模式 179
8.5 原型模式 182
8.6 建造者模式 185
习题 189
第9章 结构型设计模式 190
9.1 外观模式 190
9.2 适配器模式 193
9.3 桥接模式 196
9.4 组合模式 199
9.5 装饰模式 202
9.6 代理模式 205
9.7 享元模式 207
习题 210
第10章 行为型设计模式 211
10.1 模板方法模式 211
10.2 策略模式 214
10.3 状态模式 216
10.4 责任链模式 219
10.5 命令模式 221
10.6 观察者模式 224
10.7 中介者模式 227
10.8 迭代器模式 230
10.9 访问者模式 233
10.10 备忘录模式 237
10.11 解释器模式 239
习题 244
参考文献 244
1.1.1 结构化方法 1
1.1.2 面向对象方法 3
1.2 软件设计与体系结构 5
习题 6
第2章 面向对象方法 7
2.1 面向对象分析基础 7
2.1.1 用例图 7
2.1.2 类图 10
2.1.3 描述接口的类图 11
2.1.4 类图中的关系 11
2.2 软件体系结构 14
2.2.1 软件体系结构的定义 14
2.2.2 组件与连接件 15
2.2.3 软件体系结构的研究内容 18
2.2.4 软件体系结构风格 21
2.3 面向对象设计 23
2.3.1 问题域部分的设计 23
2.3.2 人机交互部分的设计 33
2.3.3 数据管理部分的设计 37
2.3.4 控制驱动部分的设计 43
习题 50
第3章 经典软件体系结构风格 52
3.1 调用-返回风格 52
3.1.1 主程序-子程序风格 52
3.1.2 面向对象风格 54
3.2 数据流风格 56
3.2.1 批处理风格 57
3.2.2 管道/过滤器风格 59
3.3 基于事件的隐式调用风格 62
3.3.1 原理 62
3.3.2 实例 64
3.4 层次风格 67
3.4.1 原理 67
3.4.2 实例 68
3.5 仓库风格 71
3.5.1 原理 71
3.5.2 实例 72
3.6 解释器风格 74
3.6.1 原理 74
3.6.2 实例 75
3.7 反馈控制环风格 76
3.7.1 原理 76
3.7.2 实例 77
习题 78
第4章 分布式软件体系结构风格 79
4.1 概述 79
4.2 两层C/S体系结构风格 80
4.2.1 原理 80
4.2.2 实例 82
4.3 P2P体系结构风格 92
4.4 三层C/S体系结构风格 93
4.5 B/S体系结构风格 95
4.5.1 原理 95
4.5.2 实例 97
4.6 C/S与B/S混合软件体系结构 99
4.6.1 原理 99
4.6.2 实例 101
4.7 中间件 102
4.7.1 中间件简介 102
4.7.2 分布式系统中的中间件 103
习题 106
第5章 MVC风格与Struts框架 107
5.1 MVC风格 107
5.1.1 MVC风格概述 107
5.1.2 MVC在Java技术中的应用 109
5.1.3 实例 111
5.2 Struts框架 118
5.2.1 Struts框架概述 118
5.2.2 Struts框架的组件 120
习题 124
第6章 软件设计目标 125
6.1 概述 125
6.1.1 基本概念 125
6.1.2 实例与分析 126
6.2 健壮性 126
6.2.1 概念与实例 126
6.2.2 Java异常处理机制 128
6.3 高效性 129
6.4 可复用性 130
6.4.1 基本概念 130
6.4.2 例子 131
6.5 可维护性 132
6.5.1 基本概念 132
6.5.2 实例 133
6.6 可维护性复用 140
6.6.1 可维护性复用的概念 140
6.6.2 可维护性复用与设计原则 140
6.6.3 可维护性复用与设计模式 141
6.7 软件设计度量、软件再工程和逆向工程 142
习题 143
第7章 设计原则 144
7.1 开-闭原则 144
7.1.1 概念 144
7.1.2 实现方法 144
7.1.3 与其他设计原则的关系 145
7.1.4 实例 145
7.2 里氏代换原则 146
7.2.1 概念 146
7.2.2 Java语言与里氏代换原则 147
7.2.3 实例 147
7.3 依赖倒转原则 152
7.3.1 倒转的含义 152
7.3.2 概念 152
7.3.3 实例 154
7.4 合成/聚合复用原则 159
7.4.1 概念 159
7.4.2 合成/聚合复用与继承复用 159
7.4.3 实例 160
7.5 迪米特法则 161
7.5.1 概念 161
7.5.2 实例 163
7.6 单一职责原则 165
7.6.1 概念 165
7.6.2 实例 166
7.7 接口隔离原则 166
7.7.1 概念 166
7.7.2 实例 167
习题 169
第8章 创建型设计模式 170
8.1 简单工厂模式 170
8.2 工厂方法模式 172
8.3 抽象工厂模式 175
8.4 单例模式 179
8.5 原型模式 182
8.6 建造者模式 185
习题 189
第9章 结构型设计模式 190
9.1 外观模式 190
9.2 适配器模式 193
9.3 桥接模式 196
9.4 组合模式 199
9.5 装饰模式 202
9.6 代理模式 205
9.7 享元模式 207
习题 210
第10章 行为型设计模式 211
10.1 模板方法模式 211
10.2 策略模式 214
10.3 状态模式 216
10.4 责任链模式 219
10.5 命令模式 221
10.6 观察者模式 224
10.7 中介者模式 227
10.8 迭代器模式 230
10.9 访问者模式 233
10.10 备忘录模式 237
10.11 解释器模式 239
习题 244
参考文献 244