普通高等教育“十二五”规划教材 软件体系结构原理与应用为普通高等教育“十二五”规划教材。
软件体系结构是从软件设计发展起来的一门新兴学科,目前已经成为软件工程的一个重要研究领域。软件体系结构的目标是为软件开发者提供统一、精确、高度抽象和易于分析的系统信息。合理的框架结构是应用系统开发的重要基础和保障。将系统地介绍软件体系结构的基本原理,对软件体系结构的理论知识、发展状况和应用实践进行细致分析,主要包括软件体系结构的形式化描述、体系结构风格、框架演化技术、产品线开发和设计模式等内容。采用案例、数据、图示和其他相关材料对知识点进行讲解。通过学习的相关内容,读者将对软件体系结构的概念和知识有一个全面的了解。
在计算机学科和软件工程学科中,软件体系结构是一个非常重要的研究领域。自从20世纪60年代以来,人们就开始对系统的框架结构进行探索,取得了一些成果,并将其应用于软件开发过程中。然而,计算机和软件正在快速地发展,相关理论也在不断完善,这就需要更新软件体系结构教材的内容,以反映最新的软件开发理论和框架实现技术。
本书比较系统地介绍了软件体系结构的理论知识和实现技术,既兼顾传统的和实用的软件框架开发方法,又包含软件体系结构的最新研究成果。其特点是:
(1)本书的理论部分以知识点的形式对重点内容进行了分析和总结,使枯燥的理论内容变得醒目、易于理解。
(2)针对每一种设计模式,本书给出相关案例,将理论知识和应用实践紧密地结合起来。
全书共分11章,第1章为软件体系结构概论,介绍了软件体系结构的概念、发展趋势和应用现状;第2章为软件体系结构建模,讨论了体系结构的模型和描述方法;第3章为软件体系结构风格,讲解了常用的几种软件框架结构;第4章为特定领域的软件体系结构,介绍了DSSA的基本概念、领域工程、应用工程和开发过程;第5章为Web服务体系结构,讨论了Web服务技术、面向服务的体系结构、企业服务总线和网格体系结构;第6章为软件演化技术,讲解了演化的基本概念、静态演化技术、动态演化技术和演化软件的设计原则;第7章为软件产品线,介绍了软件产品线的起源、定义、开发模型和组织结构;第8章为设计模式,讨论了设计模式的基本原理;第9章为创建型设计模式,讲解了创建型设计模式的典型实例;第10章为结构型设计模式,讲解了结构型设计模式的典型实例;第11章为行为型设计模式,讲解了行为型设计模式的典型实例。
本书受中国博士后科学基金(编号:2014M560249)和黑龙江省自然科学基金(编号:F201420)资助。
本书由多年来一直从事软件体系结构教学工作的教师编写,第1章~第7章由哈尔滨理工大学的高雪瑶编写,第8章~第11章由哈尔滨理工大学的张春祥编写。高雪瑶负责全书的策划和统稿。
本书由大连理工大学卢志茂教授担任主审。本书在编写过程中,借鉴和吸收了国内外专家、学者的相关资料,在此一并致谢。
虽然编者经过精心的准备和调研,对本书进行了多次修改,但书中难免存在不足和疏漏之处,希望广大读者批评指正。
高雪瑶,2006年9月,在哈尔滨理工大学,计算机科学与技术学院,攻读博士研究生。2009年11月获工学博士学位。研究方向:计算机图形学、CAD和自然语言处理。目前,在哈尔滨理工大学计算机科学与技术学院任教,职称:副教授,硕士生导师。在计算机图形学、CAD和自然语言处理方向上,共发表文章20余篇,其中,EI检索12篇。主持黑龙江省自然科学基金1项,主持黑龙江省教育厅科学技术研究项目2项,参与国家自然科学基金2项,参与国家教育部春晖计划项目1项,参与黑龙江省教育厅科学技术研究项目2项。参与出版自然语言处理和机器翻译专著1部,参编教材1本。
前言
第1章 软件体系结构概论 1
1.1 软件危机 1
1.2 软件复用 3
1.3 软件构件的组织与检索 8
1.4 软件构件化 12
1.5 软件体系结构 16
习题 25
第2章 软件体系结构建模 26
2.1 软件体系结构建模概述 26
2.2 软件体系结构模型 26
2.3 软件体系结构的形式化描述 29
2.4 软件体系结构的生命周期 32
2.5 软件体系结构的建模语言 34
2.6 基于软件体系结构的开发 47
习题 50
第3章 软件体系结构风格 51
3.1 软件体系结构风格概述 51
3.2 常用的软件体系结构风格 51
3.3 管道/过滤器体系结构风格 52
3.4 面向对象体系结构风格 53
3.5 事件驱动体系结构风格 54
3.6 分层体系结构风格 55
3.7 C2体系结构风格 56
3.8 数据共享体系结构风格 57
3.9 解释器体系结构风格 59
3.10 反馈控制环体系结构风格 60
3.11 客户机/服务器体系结构风格 61
3.12 浏览器/服务器体系结构风格 66
3.13 公共对象请求代理体系结构风格 68
3.14 正交体系结构风格 69
3.15 基于层次消息总线的体系结构风格 71
3.16 MVC体系结构风格 74
3.17 异构体系结构集成 76
习题 78
第4章 特定领域的软件体系结构 79
4.1 特定领域的软件体系结构定义 79
4.2 DSSA的基本活动 80
4.3 DSSA的参与者 88
4.4 DSSA的生命周期 91
4.5 DSSA的建立 93
4.6 基于DSSA的软件开发 96
4.7 DSSA与软件体系结构风格 101
4.8 DSSA对软件开发的意义 101
4.9 DSSA的应用实例 102
习题 103
第5章 Web服务体系结构 104
5.1 Web服务概述 104
5.2 Web服务技术 106
5.3 面向服务的体系结构 116
5.4 企业服务总线 118
5.5 网格体系结构 123
习题 128
第6章 软件演化技术 129
6.1 软件演化概述 129
6.2 软件需求演化 130
6.3 软件演化的分类 131
6.4 软件静态演化技术 136
6.5 软件动态演化技术 141
6.6 可演化软件的设计 153
习题 154
第7章 软件产品线 155
7.1 软件产品线的起源 155
7.2 软件产品线定义 157
7.3 软件产品线的基本活动 159
7.4 软件产品线需求分析 162
7.5 软件产品线开发评价 170
7.6 软件产品线的建立 172
7.7 软件产品线开发模型 173
7.8 软件产品线的组织结构 176
7.9 软件产品线测试 177
7.10 软件产品线的优点 178
7.11 软件产品线开发所面临的问题 179
习题 179
第8章 设计模式 180
8.1 设计模式概述 180
8.2 设计模式的概念 181
8.3 设计模式的分类 184
8.4 设计模式与面向对象复用 187
8.5 设计模式遵循的原则 189
8.6 研究设计模式的意义 193
8.7 设计模式的CASE工具 194
习题 196
第9章 创建型设计模式 197
9.1 工厂方法模式 197
9.2 抽象工厂模式 200
9.3 原型模式 203
9.4 单例模式 205
9.5 建造模式 208
习题 213
第10章 结构型设计模式 214
10.1 合成模式 214
10.2 装饰模式 216
10.3 代理模式 219
10.4 享元模式 222
10.5 门面模式 224
10.6 桥梁模式 226
10.7 适配器模式 228
习题 231
第11章 行为型设计模式 232
11.1 模板方法模式 232
11.2 观察者模式 235
11.3 迭代子模式 238
11.4 责任链模式 240
11.5 备忘录模式 243
11.6 命令模式 246
11.7 状态模式 249
11.8 访问者模式 251
11.9 中介者模式 254
11.10 策略模式 258
11.11 解释器模式 261
习题 263
参考文献 264