第0章 软件过程 1
0.1 软件过程概述 1
0.2 需求分析 3
0.3 设计(本书讨论的重点) 6
0.4 编码 7
0.5 测试 12
0.6 维护 13
软件过程小结 14
习题 14
第一部分 设计原则、统一建模语言和代码级设计 18
第1章 程序设计回顾及软件设计导论 18
1.1 “软件设计”的含义及本书如何对其进行介绍 18
1.2 函数的说明文档 19
1.3 回顾编写函数时应具有的编程好习惯 23
1.4 软件设计的目标 23
1.5 软件设计符号 31
本章小结 31
习题 32
附录 34
第2章 面向对象 37
2.1 面向对象的目标 37
2.2 类和对象 38
2.3 面向对象的特点 41
2.4 需要强调的问题 47
本章小结 48
习题 48
第3章 统一建模语言 51
3.1 统一建模语言的目标 51
3.2 UML中的类 51
3.3 UML中类的关系 52
3.4 用例 56
3.5 时序图 58
3.6 状态模型 60
3.7 活动图 62
3.8 示例 64
本章小结 66
习题 67
第4章 设计准则Ⅰ:正确性和健壮性 70
4.1 正确性和充分性 70
4.2 健壮性 80
4.3 设计细节:充分性 83
本章小结 84
习题 84
第5章 设计准则Ⅱ:灵活性、可重用性和高效性 88
5.1 灵活性 88
5.2 可重用性 90
5.3 高效性 95
5.4 健壮性、灵活性、可重用性与高效性之间的折中 99
本章小结 100
习题 101
第二部分 设计模式 104
第6章 设计模式导论 104
6.1 可重现设计目标 104
6.2 设计模式的概念 106
6.3 按类型总结设计模式:创建型、结构型、行为型 110
6.4 设计模式的特征:观点、角色、层次 115
6.5 设计模式的形式:委托和递归 119
本章小结 122
习题 122
第7章 创建型设计模式 124
7.1 创建型设计的目标 124
7.2 Factory设计模式 124
7.3 Singleton设计模式 128
7.4 Abstract Factory设计模式 132
7.5 Prototype设计模式 139
本章小结 150
习题 150
附录A 154
附录B 158
附录C 159
附录D 167
第8章 结构型设计模式 172
8.1 结构型设计的目标 172
8.2 Facade:类集的接口 172
8.3 Decorator:运行时负责添加或删除类 177
8.4 Composite:对象的树型结构表示 181
8.5 Adapter:更具灵活性的接口 185
8.6 Flyweight:管理大量极为相似的类 189
8.7 Proxy:避免多余的操作 194
结构型设计模式小结 198
习题 199
附录A 202
附录B 209
附录C 215
附录D 219
附录E 226
第9章 行为型设计模式 231
9.1 行为型设计的目标 231
9.2 Interpreter:分析表达式 231
9.3 Iterator:访问集合中的成员 236
9.4 Mediator设计模式 247
9.5 Observer设计模式 251
9.6 State设计模式 255
9.7 Chain of Responsibility设计模式 258
9.8 Command设计模式 261
9.9 Template设计模式 266
本章小结 270
习题 271
附录A 275
附录B 282
附录C 294
附录D 299
附录D 309
附录F 317
第三部分 组件 324
第10章 组件的介绍 324
10.1 组件的定义 325
10.2 组件使用的一个实例 326
10.3 组件的组成 328
10.4 组件的UML标识 330
10.5 组件生存期的各个阶段 330
10.6 CORBA组件标准 333
本章小结 334
习题 335
附录 336
第11章 JavaBeans 341
11.1 JavaBeans的目标 341
11.2 JavaBeans的定义 341
11.3 阶段1:创建Bean类 343
11.4 阶段2:创建组合多个类的Bean 350
11.5 阶段3:创建Bean实例 350
11.6 阶段4:在Bean环境中组合和部署Bean 350
11.7 通过改变属性来连接Bean:“有界的”变量 355
11.8 在JSP中使用Bean 357
本章小结 358
习题 358
第12章 Microsoft组件集 361
12.1 Microsoft.NET的概述 361
12.2 C#语言的组成 364
12.3 一个简单的Hello World.NET组件集 367
12.4 一个包含多重类的.NET组件 368
12.5 .NET组件集中的元数据 369
12.6 组件集的识别 378
本章小结 383
习题 384
第四部分 面向对象分析和设计 386
第13章 需求和领域类 386
13.1 面向对象分析和设计的特性 386
13.2 Encounter实例研究 390
13.3 获得领域类 391
13.4 利用领域类来组织需求 400
本章小结 402
习题 402
第14章 体系结构和框架 404
14.1 软件体系结构的含义 404
14.2 OO分析和设计的模型 405
14.3 软件的体系结构 411
14.4 框架 418
14.5 完成一个应用程序的设计 432
本章小结 450
习题 451
参考文献 454