第一章 引言 1
1.1 软件体系结构的起源和发展 1
1.2 软件体系结构的定义 2
1.3 软件体系结构的重要性 2
1.4 软件体系结构应用现状及发展方向 3
1.4.1 应用现状 3
1.4.2 研究热点 5
1.4.3 发展方向 5
1.5 软件体系结构研究范畴 6
1.5.1 软件体系结构描述语言 6
1.5.2 软件体系结构风格 7
1.5.3 软件体系结构的形式化研究 8
1.6 软件体系结构研究的两种途径 9
1.7 软件体系结构研究不足之处及发展趋势 10
第二章 软件体系结构形式描述 11
2.1 软件体系结构作用 11
2.2.1 模型和视图 12
2.2.2 描述语言 14
2.2.3 体系结构风格 15
2.2.4 软件体系结构的形式化研究 18
2.3 体系结构行为描述概述 21
2.4 XYZ活动图 23
第三章 统一建模语言UML 26
3.1 标准建模语言UML的概述 26
3.1.1 标准建模语言UML的出现 26
3.1.2 标准建模语言UML的内容 27
3.1.3 标准建模语言UML的主要特点 30
3.1.4 标准建模语言UML的应用领域 30
3.2 标准建模语言UML的静态建模机制 31
3.2.1 用例图 31
3.2.2 类图、对象图和包 34
3.3 标准建模语言UML的动态建模机制 40
3.3.1 消息 40
3.3.2 四种图的运用 42
3.4 UML的扩展机制 43
3.5 UML简介 45
3.6 UML描述软件体系结构的几种方案 47
3.7 基于UML的软件体系结构六视图描述 48
3.7.1 六视图的体系结构模型 49
3.7.2 六视图及其相互关系 50
3.7.3 六视图体系结构构造过程 51
第四章 软件体系结构建模 60
4.1 软件体系结构建模概述 60
4.2 软件体系结构的描述 61
4.3 软件体系结构风格 67
4.4 软件质量属性 69
4.5 多维软件体系结构模型 71
4.6 质量属性驱动的体系结构建模 72
4.7 对软件体系结构模型的评估 75
4.8 面向方面软件体系结构的UML描述 77
4.8.1 构件 77
4.8.2 连接件 78
4.8.3 方面 79
4.8.4 约束 79
4.8.5 软件体系结构元素到UML元素的映射规则 80
4.8.6 基于UML面向方面软件体系结构元模型 80
4.9 应用实例 81
4.9.1 传统软件体系结构模型 81
4.9.2 面向方面软件体系结构模型 82
4.9.3 两种模型对比 83
4.10 面向方面软件体系结构的ADL描述 84
4.10.1 构件 84
4.10.2 系统连接件 85
4.10.3 方面连接件 85
4.10.4 方面连接件的编织过程 86
4.11 实例 86
4.11.1 体系结构的ADL描述 87
4.11.2 优势 89
4.12 体系结构失配研究 89
第五章 企业级应用体系结构技术 92
5.1 企业级应用体系结构 92
5.1.1 企业级层次的演化 93
5.1.2 现代应用软件架构及其优势 95
5.2 J2EE系统架构研究 97
5.2.1 J2EE体系结构 97
5.2.2 分布式RMI体系结构 99
5.3 基于组件开发的软件架构 100
5.3.1 CBD软件架构问题研究 101
5.3.2 CBD组件类型 102
5.4 J2EE技术研究 102
5.4.1 组件技术 103
5.4.2 服务技术 104
5.4.3 通信技术 105
5.5 设计模式及其相关问题 105
5.6 当前流行的J2EE WEB应用框架 107
5.6.1 Apache Struts框架 107
5.6.2 JATO框架 108
5.6.3 WAF框架 109
5.7 基于企业参考模型的软件体系结构 109
5.7.1 企业参考模型 109
5.7.2 企业参考模型的意义 110
5.8 企业参考模型的技术理论 111
5.8.1 业务组件理论 111
5.8.2 大批量定制理论 112
5.8.3 层级理论 113
5.9 支持体系结构开发的企业参考模型 114
5.10 基于企业参考模型的软件体系结构的基本路线 118
5.10.1 参考模型元模型 120
5.10.2 基于企业参考模型的软件体系结构元模型 122
5.11 基于企业参考模型的软件体系结构 124
第六章 软件自适应相关研究 126
6.1 软件自适应特征分类 126
6.1.1 感知环节的特征分类 127
6.1.2 决策环节的特征分类 128
6.1.3 执行环节的特征分类 129
6.2 软件自适应使能技术 130
6.2.1 使能技术 131
6.2.2 感知使能技术 135
6.2.3 决策使能技术 136
6.2.4 执行使能技术 139
6.3 相关软件工程项目 141
6.3.1 以软件体系结构为中心 141
6.3.2 以构件模型设计为中心 144
6.3.3 以中间件/软件框架设计为中心 146
6.4 群体自适应的初步探索 149
6.5 相关研究的总结分析 150
6.5.1 相关项目总结 150
6.5.2 现有工作所面临的挑战 151
6.6 软件体系结构自适应三层框架 153
6.6.1 用户层 153
6.6.2 适应层 154
6.6.3 系统层 154
6.7 规划阶段的过程模型 154
6.8 基于强化学习的规划决策模型 156
6.8.1 五元决策模型 156
6.8.2 元组内关系 157
6.8.3 Client/Server风格实例 158
6.9 强化学习决策算法 160
6.9.1 应用强化学习的可行性分析 160
6.9.2 SARSA算法 162
6.9.3 基于SARSA算法的规划模型 162
第七章 软件体系结构与软件重用方法的研究 164
7.1 软件重用和软件体系结构的研究背景 164
7.1.1 软件重用的意义 165
7.1.2 软件重用的研究现状 165
7.1.3 软件体系结构与软件重用的联系 166
7.2 软件重用的技术途径 167
7.2.1 领域分析 167
7.2.2 重用再工程(Reuse re-engineering) 169
7.2.3 特定域软件体系结构(DSSA) 170
7.2.4 设计样本(Design Pattern) 171
7.3 软件开发模式演进 172
7.3.1 生命周期模式 172
7.3.2 快速原型模式 173
7.3.3 面向对象的软件开发模式 174
7.4 工控领域的组态软件 174
7.5 构件化可重构软件系统组态模型 176
7.5.1 组态概念的引入 176
7.5.2 构件化可重构软件系统组态模型建立 178
7.5.3 软件体系结构描述 180
7.5.4 构件描述 182
7.5.5 系统逻辑组态描述 185
7.5.6 CBRSCM可重构特性 187
7.6 基于构件化可重构软件系统组态模型的软件开发过程 187
7.7 构件化可重构软件系统组态模型特性对比分析 189
7.7.1 与当前自动化领域的组态软件对比 189
7.7.2 与传统软件开发方法对比 190
7.7.3 与当前构件组装技术对比 191
第八章 面向Web服务的领域软件体系结构模型 193
8.1 面向服务软件体系结构 193
8.2 Web服务的领域系统构造过程 194
8.3 角色和操作 196
8.3.1 角色和角色类 196
8.3.2 角色模型 197
8.3.3 操作 197
8.4 Web服务构件和构件类 199
8.4.1 Web服务构件 199
8.4.2 Web服务构件类 200
8.5 组合Web服务构件 201
8.5.1 Web服务构件组合的相关定义 201
8.5.2 Web服务构件的交互语义 202
8.6 基于BPEL4WS的网格服务组合体系结构 203
8.6.1 网格服务 203
8.6.2 网格服务组合的参考体系结构 204
参考文献 206