软件体系结构是软件系统的高层结构,是一种用于理解系统级目标的框架。随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明就显得越来越重要。对于大规模的复杂软件系统来说,总体的系统结构设计和规格说明比对计算的算法和数据结构的选择更为重要。在这种背景下,人们认识到了软件体系结构的重要性,并认为对软件体系结构进行系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。
软件体系结构研究的主要内容包括软件体系结构描述、软件体系结构设计、基于体系结构的软件开发方法、软件体系结构评估等。
本书对软件体系结构的理论基础、研究内容、当前研究现状和实践应用进行了系统的介绍。通过本书,读者可以了解到软件体系结构的基本概念、风格、描述方法、设计方法、评估方法和集成开发环境等内容。
本书共分10章。第1章简单介绍了软件重用和构件技术的一些基本概念,它们是学习软件体系结构有关知识的基础;第2章介绍了软件体系结构的概念;发展和研究现状;第3章对软件体系结构的风格进行了较为详细的介绍,并给出了一些应用实例;第4章讨论了软件体系结构的三种描述方法;第5章介绍了软件体系结构设计过程中使用的一般原理和设计模式,以及常用的体系结构设计方法;第6章对Bass等人提出的一种基于体系结构的软件开发过程做了详细介绍;第7章介绍了软件体系结构评估方法,重点介绍SAAM和ATAM方法;第8章介绍了Web服务体系结构的有关知识,并给出了一个简单的应用实例;第9章对特定领域的软件体系结构进行了介绍,详细讨论了其建立过程;第10章介绍了软件体系结构集成开发环境的具体功能。
本书可作为计算机软件专业高年级本科生和研究生的软件体系结构教材,也可作为软件开发人员的参考书。
第1章 软件重用与构件技术
1.1 软件重用概述
1.1.1 软件重用的定义
1.1.2 软件重用的研究现状
1.1.3 重用驱动的软件过程
1.2 构件的特点和分类
1.2.1 构件的特点
1.2.2 构件的分类
1.3 构件描述模型
1.3.1 3C模型
1.3.2 REBOOT模型
1.3.3 青鸟构件模型
1.4 构件获取
1.5 构件管理
1.6 构件重用
1.7 本章小结
习题
第2章 软件体系结构概论
2.1 软件体系结构的定义
2.2 软件体系结构的研究意义
2.3 软件体系结构的发展历程
2.3.1 “无体系结构”设计阶段
2.3.2 萌芽阶段
2.3.3 初级阶段
2.3.4 高级阶段
2.3.5 综合
2.4 软件体系结构的研究现状及发展方向
2.4.1 软件体系结构的研究现状
2.4.2 软件体系结构的发展方向
2.5 本章小结
习题
第3章 软件体系结构的风格
3.1 软件体系结构风格概述
3.2 经典软件体系结构风格
3.2.1 管道一过滤器
3.2.2 数据抽象和面向对象风格
3.2.3 基于事件的隐式调用风格
3.2.4 层次系统风格
3.2.5 仓库风格和黑板风格
3.2.6 模型一视图一控制器(MVC)风格
3.2.7 解释器风格
3.2.8 C2风格
3.3 案例研究
3.3.1 案例一:上下文关键字
3.3.2 案例二:仪器软件
3.4 客户/服务器风格
3.5 三层C/S结构风格
3.6 浏览器/服务器风格
3.7 正交软件体系结构风格
3.7.1 正交软件体系结构的概念
3.7.2 正交软件体系结构的优点
3.8 基于层次消息总线的体系结构风格
3.8.1 JB/HMB风格的基本特征
3.8.2 构件模型
3.8.3 构件接口
3.8.4 消息总线
3.8.5 构件静态结构
3.8.6 构件动态行为
3.8.7 运行时刻的系统演化
3.8.8 总结
3.9 异构结构风格
3.9.1 使用异构结构的原因
3.9.2 异构体系结构的组织
3.9.3 异构体系结构的实例
3.10 本章小结
习题
第4章 软件体系结构描述
4.1 软件体系结构描述方法
4.2 软件体系结构描述语言
4.2.1 软件体系结构描述语言构成要素
4.2.2 ADL与其他语言的比较
4.3 典型的软件体系结构描述语言
4.3.1 UniCon
4.3.2 C2
4.3.3 Wright
4.3.4 ACME
4.4 可扩展标记语言
4.4.1 XML标准
4.4.2 XML的应用领域
4.5 基于XML的软件体系结构描述语言
4.5.1 XADL2.0
4.5.2 XBA
4.5.3 XCOBA
4.6 使用“4+1”模型描述软件体系结构
4.6.1 逻辑视图的体系结构:面向对象的分解
4.6.2 过程视图的体系结构:过程分解
4.6.3 开发视图的体系结构:子系统分解
4.6.4 物理视图的体系结构:从软件到硬件的映射
4.6.5 场景视图的体系结构:汇总
4.7 使用UML描述软件体系结构
4.7.1 UML简介
4.7.2 UML基本图符
4.7.3 UML的静态建模机制
4.7.4 UML的动态建模机制
4.7.5 UML在软件体系结构建模中的应用实例
4.8 本章小结
习题
第5章 软件体系结构设计
5.1 软件体系结构设计的一般原理
5.2 设计模式
5.2.1 设计模式概述
5.2.2 设计模式的组成
5.2.3 模式和软件体系结构
5.2.4 设计模式方法分类
5.3 软件体系结构设计的元模型
5.4 体系结构设计方法的分析
5.4.1 制品驱动的方法
5.4.2 用例驱动的方法
5.4.3 领域驱动的方法
5.4.4 模式驱动的方法
5.5 体系结构设计实例分析
5.5.1 实例说明
5.5.2 图书馆管理系统的体系结构设计与分析
5.6 本章小结
习题
第6章 基于体系结构的软件开发过程
6.1 概述
6.2 导出体系结构需求
6.2.1 体系结构需求
6.2.2 质量场景
6.2.3 验证
6.3 设计体系结构
6.3.1 体系结构的构造和视图
6.3.2 开发过程
6.3.3 验证
6.4 文档化体系结构
6.5 分析体系结构
6.6 实现体系结构
6.7 维护体系结构
6.8 本章小结
习题
第7章 软件体系结构评估
7.1 软件体系结构评估概述
7.1.1 评估关注的质量属性
7.1.2 评估的必要性
7.2 软件体系结构评估的主要方式
7.2.1 主要评估方式简介和比较
7.2.2 基于场景的评估方法概念介绍
7.3 SAAM软件体系结构分析方法
7.3.1 SAAM的一般步骤
7.3.2 场景生成
7.3.3 体系结构描述
7.3.4 场景的分类和优先级确定
7.3.5 间接场景的单独评估
7.3.6 对场景关联的评估
7.3.7 形成总体评估
7.4 ATAM体系结构权衡分析方法
7.4.1 最初的ATAM
7.4.2 改进版ATAM
7.4.3 ATAM的一般过程
7.4.4 介绍
7.4.5 研究和分析
7.4.6 测试
7.4.7 报告
7.5 SAAM方法评估实例
7.6 本章小结
习题
第8章 Web服务体系结构
8.1 Web Services概述
8.1.1 Web Serrices的定义、特点和组成
8.1.2 Web Services的应用场合与局限
8.2 Web Services体系结构介绍
8.2.1 Web serrices体系结构模型
8.2.2 Web Services的协议栈
8.3 Web Services的开发
8.3.1 Web Services的开发周期
8.3.2 Web SerVices的开发方案
8.3.3 Web Services的开发平台
8.4 Web Services核心技术
8.4.1 XML
8.4.2 XML Schema
8.4.3 SOAP
8.4.4 WSDL
8.4.5 UDDI
8.5 Web Services应用实例
8.5.1 背景简介
8.5.2 系统架构
8.5.3 服务的实现
8.6 本章小结
习题
第9章 特定领域的软件体系结构
9.1 DSSA的概念
9.1.1 DSSA的发展
9.1.2 DSSA的定义
9.1.3 DSSA与体系结构风格的比较
9.2 DSSA的基本活动
9.3 参与DSSA的人员
9.4 DSSA的建立过程
9.4.1 步骤1——定义领域分析的范围
9.4.2 步骤2——定义/求精特定领域的元素
9.4.3 步骤3——定义/求精特定领域的设计和实现约束
9.4.4 步骤4——开发领域模型/体系结松
9.4.5 步骤5——生成/收集可重用的工作产品
9.5 本章小结
习题
第10章 软件体系结构集成开发环境
10.1 软件体系结构集成开发环境的作用
10.2 体系结构IDE原型
10.2.1 用户界面层
10.2.2 模型层
10.2.3 基础层
10.2.4 体系结构集成开发环境设计策略
10.3 基于软件体系结构的开发环境ArchStutdio 4
10.3.1 ArchStudio 4的作用
10.3.2 安装ArchStudio 4
10.3.3 ArchStudio 4概述
10.3.4 ArchStudio 4的使用
10.4 Acme工具和AcmeStudio环境
10.4.1 Acme工具开发人员库(Acme Tool Developer's Library)
10.4.2 AcmeStudio环境
10.5 本章小结
习题
参考文献