本书系统地介绍了软件体系结构的基本概念、主要构成和有关理论和方法。在此基础上,着重介绍了目前广泛应用的几种软件体系结构的风格和模式,并深入分析了它们的系统结构、功能和非功能特性以及它们的设计实现。全书共分6章。第1章主要讨论软件开发的特点和问题。第2章主要介绍软件体系结构的概念和研究的重要性,软件体系结构的风格和模式。第3章介绍10种系统级体系结构风格模式。第4章介绍中等规模的设计模式。第5章介绍基础结构模式。第6章简要介绍软件体系结构的其他研究领域,如软件体系结构的描述语言,软件体系结构的形式化及软件体系结构的工具环境等。
第1章 软件危机 1
1.1 软件 1
1.2 软件的发展阶段 2
1.3 软件危机 4
1.4 软件生命周期 5
习题一 8
第2章 软件体系结构概念 9
2.1 软件体系结构的基本概念 9
2.2 研究软件体系结构的重要性 11
2.3 组件与连接器 14
2.4 软件体系结构的风格与模式 18
2.5 软件体系结构的非功能属性 21
2.6 软件体系结构设计的基本原理 24
习题二 27
第3章 软件的系统体系结构模式 28
3.1 管道—过滤器 28
3.2 分层结构 34
3.3 知识库(黑板)结构 42
3.4 MVC(模型—视图—控制)结构 48
3.5 PAC(表达—抽象—控制)结构 55
3.6 客户/服务器结构 66
3.7 COM/DCOM/COM+组件 73
3.8 代理者(Broker) 86
3.9 微核(Microkernel)结构 96
3.10 映像(Reflection) 106
3.11 异构结构(Heterogeneous Architecture) 113
习题三 115
第4章 体系结构的设计模式 116
4.1 整体—部分 116
4.2 主控—从属结构 121
4.3 代理(Proxy) 129
4.4 发送—接收(Forwarder-Receiver) 133
4.5 注册—发行(Subscriber-Publisher) 140
4.6 进程通信 143
4.7 消息机制和隐式调用 149
4.8 动态链接库(DLL) 152
4.9 本地过程调用(LPC)与远程过程调用(RPC) 156
4.10 开放数据库互联(ODBC) 159
习题四 163
第5章 基础结构模式 164
5.1 面向对象模式 164
5.2 动态约束 166
5.3 单一对象(Singleton) 168
5.4 引用计数(Reference Counting) 169
5.5 循环器(Iterator) 171
5.6 责任链 173
5.7 转换器(Convertor) 177
5.8 虚拟设备(Virtual Devices) 178
5.9 对象工厂(Object Factory) 179
5.10 堆栈和表达式计算 182
5.11 总结 184
习题五 185
第6章 软件体系结构的其他研究领域 186
6.1 体系结构描述语言(ADL) 186
6.2 软件体系结构形式化 188
6.3 软件体系结构的工具环境 196
习题六 199
随着计算机和网络应用的迅速普及和发展,软件已成为影响网络和计算机发展的重要因素。目前,软件业受到世界各国前所未有的关注。软件的开发和研制能力已成为一个国家科技、经济和国防实力的重要标志。
由于计算机和网络的发展,软件的规模不断扩大。软件的生产成本也随着软件的复杂程度而急剧增加。软件是人类抽象思维的产物,它的复杂性给它的大规模发展和维护带来了困难,从而使软件技术的发展远远落后于软件的需求。但是人们在开发研制软件的长期实践中也积累总结了许多成功的经验。如果能坚持不懈地总结和使用这些经过实践检验的方法和经验,软件业是可以快速健康发展的。软件体系结构是软件设计过程中的一个层次。这个新的层次超越了计算过程中的算法设计和数据结构设计。良好的体系结构设计是决定软件系统成功的必要因素。它为软件项目的长期稳定性、可靠性提供了保证。软件体系结构作为软件设计的一个高层次,为软件工作者提供了一个重要的规范,为他们提供更好的方法去分析和理解更大、更复杂的软件系统。
软件体系结构是随着描述大型复杂系统结构的需要而兴起并发展的。为了避免大型软件开发的盲目性,提高软件的质量,在软件开发中需要有效的理论作为指导。软件体系结构作为软件开发中的设计指导思想,对软件开发的成败起着至关重要的作用。
虽然软件体系结构在软件工程中已有了很广泛的应用,但是由于有关的研究还刚刚起步,因而对它的理解还没有达到共识。许多研究人员基于自己的经验从不同角度、不同侧面对软件体系结构进行了不同的刻画和定义。不同的认识反映了软件体系结构概念的广度和复杂性。
软件体系结构研究中很重要的成就之一就是抽象出许多常见的系统构建模式,形成了软件体系结构的某些风格。这些都是软件设计人员多年工作的经验积累。他们在长期工作中摸索到一些规律性的东西,经过提炼总结,得到具有普遍意义的构建模式和构建风格。使用软件体系结构的风格和模式对软件开发具有重要的应用价值和经济效益。本书将着重介绍目前应用较广泛的软件体系结构的几种风格和模式,讨论它们的系统结构、功能特性、应用范围和优缺点等。
本书共分6章。第1章主要讨论软件开发的特点和问题。第2章主要介绍软件体系结构的概念和研究的重要性、软件体系结构的风格和模式。第3章介绍10种软件系统级体系结构风格模式。第4章介绍中等规模的设计模式。第5章介绍基础结构模式。第6章简要介绍软件体系结构的其他研究领域,如软件体系结构的描述语言、软件体系结构的形式化及软件体系结构的工具环境等。
本书在资料收集和编写过程中得到许多同事和研究生的帮助。王焱同志参加了本书第3、4章的校核和绘图工作。2000级研究生参加了部分调试工作。
由于软件体系结构是一个新课题,加上作者水平有限,书中错误在所难免,希望大家批评指正。