第1章 绪论 1
1.1 软件开发简史 1
1.1.1 编程语言的进化——抽象级别 2
1.1.2 软件开发的进化——关注点 3
1.1.3 软件体系结构的起源和发展 6
1.2 软件体系结构简介 8
1.2.1 基本术语 9
1.2.2 理解IEEE 1471—2000 11
1.2.3 软件体系结构中的视图 14
1.2.4 为什么软件体系结构是必要的 24
1.2.5 软件生命周期中的软件体系结构定位 27
1.2.6 云计算与软件体系结构 29
小结 30
第2章 软件体系结构风格和模式 32
2.1 软件体系结构风格和模式基础 32
2.2 管道过滤器风格 35
2.2.1 概述 35
2.2.2 优缺点 36
2.2.3 案例 37
2.3 面向对象风格 41
2.3.1 概述 41
2.3.2 优缺点 42
2.3.3 案例 43
2.4 事件驱动风格 50
2.4.1 概述 50
2.4.2 优缺点 52
2.4.3 案例 54
2.5 分层风格 60
2.5.1 概述 60
2.5.2 优缺点 61
2.5.3 案例 62
2.6 数据共享风格 67
2.6.1 概述 67
2.6.2 优缺点 68
2.6.3 案例 69
2.7 解释器风格 72
2.7.1 概述 72
2.7.2 优缺点 73
2.7.3 案例 73
2.8 反馈控制环风格 77
2.8.1 概述 77
2.8.2 优缺点 77
2.8.3 案例 78
2.9 体系结构风格比较 78
2.10 异构风格的集成 80
小结 81
第3章 软件体系结构风格的应用与分析 83
3.1 SMCSP简介 83
3.1.1 项目背景 83
3.1.2 技术路线 85
3.1.3 功能设计 86
3.2 系统实现 90
3.2.1 模式选择 90
3.2.2 交互机制 95
3.2.3 移动协同的实现 98
3.2.4 基于知识库的设计 105
小结 109
第4章 软件体系结构描述 110
4.1 软件体系结构建模概述 110
4.1.1 软件体系结构建模问题 110
4.1.2 软件体系结构描述方法 111
4.2 基于UML的软件体系结构描述 112
4.2.1 UML概述 112
4.2.2 UML结构分析 113
4.2.3 UML的软件体系结构描述 118
4.3 UML体系结构描述方式案例分析 123
4.3.1 “4+1”视图模型 123
4.3.2 教务管理系统的非形式化描述案例 125
4.4 基于ADL的软件体系结构描述 132
4.4.1 ADL概述 134
4.4.2 ADL结构分析 137
4.4.3 CSP——形式化行为描述的语义基础 142
4.5 ADL体系结构描述方式案例分析 155
4.5.1 构件与连接器描述 156
4.5.2 配置的描述 160
4.5.3 风格描述 162
4.6 FEAL:构造ADL的基础平台 165
4.6.1 设计意图 165
4.6.2 FEAL结构 167
4.6.3 FEAL映射器 168
4.6.4 FEAL应用示例 168
小结 170
第5章 软件体系结构级别的设计策略 172
5.1 体系结构设计的重用 173
5.2 体系结构设计空间与规则 174
5.3 SADPBA 175
5.3.1 总览 175
5.3.2 使用设计空间对设计过程进行拆分 177
5.3.3 SADPBA的追踪机制 178
5.3.4 软件体系结构的生命周期模型 179
5.3.5 实践中的SADPBA 180
5.4 示例:MEECS 182
5.4.1 MEECS简介 182
5.4.2 将SADPBA应用到MEECS 184
小结 192
第6章 软件体系结构集成开发环境 193
6.1 软件体系结构集成开发环境的作用 193
6.1.1 形式化描述方法的比较 193
6.1.2 体系结构集成开发环境的作用 193
6.2 体系结构IDE原型 196
6.2.1 用户界面层 197
6.2.2 模型层 199
6.2.3 基础层 201
6.2.4 体系结构集成开发环境设计策略 201
6.3 ArchStudio 5系统 202
6.3.1 简介 202
6.3.2 安装ArchStudio 5 205
6.3.3 ArchStudio 5概况 206
6.3.4 ArchStudio 5的使用 211
小结 216
第7章 软件体系结构评估 217
7.1 软件体系结构评估概述 217
7.1.1 质量属性 217
7.1.2 评估的必要性 219
7.1.3 评估方法分类 220
7.2 SAAM软件构架分析方法 224
7.2.1 SAAM的一般步骤 225
7.2.2 场景生成 226
7.2.3 体系结构描述 227
7.2.4 场景的分类和优先级确定 227
7.2.5 间接场景的单个评估 228
7.2.6 对场景关联的评估 229
7.2.7 形成总体评估 229
7.3 ATAM体系结构权衡分析方法 230
7.3.1 最初的ATAM 231
7.3.2 改进版ATAM 232
7.3.3 ATAM的一般过程 234
7.3.4 体系结构描述及收集评估有关信息 236
7.3.5 以体系结构为中心进行分析 238
7.3.6 以风险承担者为中心进行分析 240
7.3.7 提供最终评估报告 241
7.4 评估方法比较 241
7.4.1 比较框架 241
7.4.2 评估方法概览和比较 245
小结 262
第8章 柔性软件体系结构 264
8.1 什么是柔性软件体系结构 264
8.1.1 动态软件体系结构 265
8.1.2 柔性软件体系结构 286
8.2 为什么使用柔性软件体系结构 288
8.3 怎样使用柔性软件体系结构 291
8.3.1 Rainbow 291
8.3.2 MADAM 293
小结 297
第9章 软件体系结构的前景 299
9.1 现代工业中的软件体系结构 299
9.1.1 全球软件行业 299
9.1.2 软件产品线 301
9.2 软件体系结构在系统中的应用 306
9.3 当今软件体系结构研究的不足 310
9.4 软件体系结构的研究展望 311
小结 312
参考文献 313