第1章 概述 1
1.1 软件工程方法学 1
1.1.1 结构化方法 1
1.1.2 面向对象方法 3
1.2 软件设计与体系结构 5
习题 6
第2章 软件体系结构 7
2.1 软件体系结构的定义 7
2.2 组件与连接件 8
2.2.1 组件 8
2.2.2 连接与连接件 9
2.2.3 实例 10
2.3 软件体系结构的研究内容 14
2.4 软件体系结构风格 18
习题 20
第3章 经典软件体系结构风格 21
3.1 调用-返回风格 21
3.1.1 主程序-子程序风格 21
3.1.2 面向对象风格 23
3.2 数据流风格 28
3.2.1 批处理风格 28
3.2.2 管道/过滤器风格 30
3.3 基于事件的隐式调用风格 34
3.3.1 原理 34
3.3.2 实例 35
3.4 层次风格 41
3.4.1 原理 41
3.4.2 实例 42
3.5 仓库风格 45
3.5.1 原理 45
3.5.2 实例 46
3.6 解释器风格 47
3.6.1 原理 47
3.6.2 实例 48
3.7 反馈控制环风格 50
3.7.1 原理 50
3.7.2 实例 51
习题 53
第4章 分布式软件体系结构风格 54
4.1 概述 54
4.2 两层C/S体系结构风格 55
4.2.1 原理 55
4.2.2 实例 57
4.3 P2P体系结构风格 67
4.4 三层C/S体系结构风格 68
4.5 B/S体系结构风格 70
4.5.1 原理 70
4.5.2 实例 72
4.6 C/S与B/S混合软件体系结构 74
4.6.1 原理 74
4.6.2 实例 75
4.7 中间件 76
4.7.1 中间件简介 76
4.7.2 分布式系统中的中间件 79
习题 82
第5章 MVC风格与Struts框架 83
5.1 MVC风格 83
5.1.1 MVC风格概述 83
5.1.2 MVC在Java EE中的应用 85
5.1.3 实例 87
5.2 Struts框架 94
5.2.1 Struts框架概述 94
5.2.2 Struts框架的组件 96
5.2.3 实例 100
习题 104
第6章 软件设计的目标 105
6.1 概述 105
6.1.1 基本概念 105
6.1.2 实例与分析 106
6.2 健壮性 106
6.2.1 概念与实例 106
6.2.2 Java异常处理机制 108
6.3 可复用性 110
6.3.1 基本概念 110
6.3.2 例子 110
6.4 可维护性 112
6.4.1 基本概念 112
6.4.2 实例 112
6.5 高效性 119
6.6 软件设计度量、软件再工程和逆向工程 120
习题 120
第7章 软件设计——面向对象方法 122
7.1 问题域部分的设计 122
7.1.1 复用已有的类 122
7.1.2 增加一般类 123
7.1.3 对多重继承的调整 123
7.1.4 对多态性的调整 129
7.1.5 提高性能 130
7.2 人机交互部分的设计 134
7.2.1 概述 134
7.2.2 可视化编程环境下的人机界面设计策略 134
7.2.3 界面类与问题域类间通信的设计 138
7.3 数据管理部分的设计 138
7.3.1 概述 138
7.3.2 针对关系数据库的数据存储设计 139
7.3.3 设计数据管理部分的其他方法 146
7.4 控制驱动部分的设计 146
7.4.1 概述 146
7.4.2 系统的并行/并发性 147
7.4.3 设计控制驱动部分的方法 153
习题 158
第8章 设计原则 160
8.1 概述 160
8.1.1 软件系统的可维护性 160
8.1.2 系统的可复用性 161
8.1.3 可维护性复用、设计原则和设计模式 162
8.2 开-闭原则 162
8.2.1 概念 162
8.2.2 实现方法 163
8.2.3 与其他设计原则的关系 163
8.2.4 实例 163
8.3 里氏代换原则 164
8.3.1 概念 164
8.3.2 Java语言与里氏代换原则 165
8.3.3 实例 166
8.4 依赖倒转原则 170
8.4.1 倒转的含义 170
8.4.2 概念 171
8.4.3 实例 173
8.5 合成/聚合复用原则 177
8.5.1 概念 177
8.5.2 合成/聚合复用与继承复用 178
8.5.3 实例 178
8.6 迪米特法则 180
8.6.1 概念 180
8.6.2 实例 182
8.7 单一职责原则 184
8.7.1 概念 184
8.7.2 实例 185
8.8 接口隔离原则 185
8.8.1 概念 185
8.8.2 实例 186
习题 188
第9章 设计模式 189
9.1 概述 189
9.2 创建型模式 190
9.2.1 简单工厂模式 191
9.2.2 工厂方法模式 193
9.2.3 抽象工厂模式 196
9.2.4 单例模式 200
9.2.5 原型模式 201
9.2.6 建造者模式 205
9.3 结构型模式 208
9.3.1 外观模式 209
9.3.2 适配器模式 212
9.3.3 桥接模式 214
9.3.4 组合模式 217
9.3.5 装饰模式 220
9.3.6 代理模式 223
9.3.7 享元模式 225
9.4 行为型模式 229
9.4.1 模板方法模式 229
9.4.2 策略模式 232
9.4.3 状态模式 234
9.4.4 责任链模式 236
9.4.5 命令模式 239
9.4.6 观察者模式 242
9.4.7 中介者模式 245
9.4.8 迭代器模式 248
9.4.9 访问者模式 251
9.4.10 备忘录模式 254
9.4.11 解释器模式 257
习题 261
参考文献 262