目录 1
第1章 软件体系结构介绍 1
1.1 软件开发的演变 1
1.2 软件工程基础 4
1.2.1 可重用资源 5
1.2.2 通用程序设计语言 6
1.2.3 专用程序设计语言 6
1.2.4 建模语言和表示法 7
1.3 软件体系结构的元素 7
1.3.1 组件、连接器和质量 8
1.3.2 体系结构描述 10
1.3.3 软件体系结构与软件设计方法学 11
1.3.4 体系结构的类型 12
1.4 本章小结 14
第2章 软件产品生命周期 15
2.1 管理的视图 16
2.1.1 初始阶段 18
2.1.2 细化阶段 18
2.1.3 构造阶段 18
2.1.4 移交阶段 19
2.2 软件工程的视图 19
2.2.1 需求分析和规格说明 21
2.2.3 实现和测试 22
11.5 本章小结 22
2.2.2 设计 22
2.2.4 部署和维护 23
2.3 工程设计的视图 23
2.3.1 产品计划:信息规格说明 26
23.2 概念设计:原则规格说明 26
2.3.3 具体设计:布局规格说明 26
2.3.4 详细设计:生产规格说明 27
2.4 体系结构设计的视图 27
2.4.1 预设计阶段 29
2.4.2 域分析阶段 29
2.4.3 示意设计阶段 30
2.4.4 设计开发阶段 30
2.4.5 建造阶段 30
2.5 各种视图的综合 31
2.6 本章小结 33
第3章 体系结构设计过程 35
3.1 理解问题 36
3.2 确定设计元素及其关系 38
3.2.1 定义系统上下文环境 42
3.2.2 确定模块 42
3.2.3 描述组件和连接器 45
3.3 评价体系结构 46
3.4 转换体系结构 46
3.5 本章小结 48
第4章 软件设计介绍 49
4.1 软件体系结构设计中的问题 49
4.2 功能、形式和制造:维特鲁威风格的三和弦 51
4.2.1 功能和产品计划 52
4.2.2 形式和交互设计 52
4.2.3 认知摩擦和体系结构设计 53
4.2.6 例子 55
4.2.5 应用的体系结构 55
4.2.4 制造 55
4.3.1 设计的任务和活动 58
4.3 设计范围 58
4.3.2 体系结构与工程设计 63
4.4 设计的心理学和哲学 63
4.4.1 问题、障碍和解决方案 64
4.4.2 亚里士多德的推理 65
4.5 设计的一般方法 67
4.5.1 有目的的思维 67
4.5.2 分析 68
4.5.4 综合 69
4.5.3 抽象 69
4.5.5 通用启发方法 70
4.6 本章小结 72
第5章 复杂性和模块化 75
5.1 复杂性 78
5.1.1 理解复杂性 78
5.1.2 粒度和上下文 79
5.2 模块化 83
5.2.1 体系结构和模块 84
5.2.2 导入和导出 84
5.2.3 耦合与内聚 85
5.2.4 设计元素和设计规则 86
5.2.5 任务结构矩阵 90
5.2.6 模块化操作 91
5.3 本章小结 97
6.1 模型是什么 99
第6章 模型和知识表示 99
6.1.1 模型语言 101
6.1.2 模型和人的理解 102
6.2 模型的用途 102
6.2.1 系统分析模型 104
6.2.2 系统推理模型 104
6.2.3 系统设计模型 105
6.3 模型的作用 105
6.3.2 设计决策和设计评估 106
6.3.1 风险承担者与体系结构设计师之间的沟通 106
63.3 详细设计的指导原则 107
6.3.4 可重用技术的人工制品 107
6.4 问题域和方案域建模 107
6.4.2 方案域模型 108
6.4.1 问题域模型 108
6.5 视图 109
6.5.1 目标和目的模型 110
6.5.2 行为/功能模型 112
6.5.3 信息/数据模型 114
6.5.4 形式模型 114
6.5.5 非功能/性能模型 116
6.6 本章小结 117
第7章 体系结构表示 119
7.1 体系结构表示的目的 119
7.2 软件体系结构表示基础 121
7.3 体系结构描述语言 123
7.3.1 设计语言元素 124
7.3.3 模块和组件 128
7.3.2 第一类连接器 128
7.3.4 例子:C2SADL 130
7.3.5 应用ADL 131
74本章小结 132
第8章 质量模型和质量属性 135
8.1 过程和产品质量 136
8.2 确定质量需求 137
8.2.1 度量质量属性 138
8.2.2 质量需求和体系结构设计 138
8.2.3 系统知识和质量属性 139
8.2.4 达到质量标准的障碍 139
8.2.5 常见的质量属性误解 140
8.3 理解质量模型 142
8.4 用质量属性进行体系结构设计 149
8.4.1 功能性 149
8.4.2 性能(有效性) 151
8.4.4 可用性和可靠性 152
8.4.3 可修改性 152
8.4.5 适用性 153
8.4.6 可移植性 153
8.5 体系结构和质量模型 154
8.6 本章小结 155
第9章 体系结构设计原则 157
9.1 体系结构级的设计 157
9.1.1 应用设计原则 158
9.1.2 使用系统的思想 159
9.1.3 例子 159
9.2 用设计操作进行体系结构设计 160
9.2.1 分解 161
9.2.2 复制 163
9.2.3 压缩 165
9.2.4 抽象 165
9.2.5 资源共享 166
9.3 功能设计策略 167
9.3.1 自监控 167
9.3.2 恢复 168
9.3.3 仪器检测 168
9.4 本章小结 169
第10章 应用体系结构风格和模式 171
10.1 定义体系结构模式和风格 172
10.1.1 激活模型 174
10.1.2 风格和质量属性 176
10.2.1 数据流系统 177
10.2 常见的体系结构风格 177
10.2.2 调用返回系统 179
10.2.3 独立组件 182
10.2.4 虚拟机 182
10.2.5 库 183
10.3 应用体系结构风格的例子 184
10.4 本章小结 188
第11章 理解元模型 191
11.1 理解元模型 192
11.2 使用参考模型 196
11.2.1 Seeheim模型 197
11.2.2 arch/slinky模型 199
11.2.3 企业应用参考模型 201
11.2.4 技术堆叠和体系结构层次 203
11.3 描述软件组件的基本元模型 205
11.4 例子:内容管理系统参考模型 206
11.4.1 域模型 207
11.4.2 内容协作参考模型 209
11.4.3 内容管理参考模型 211
第12章 建立体系结构描述 213
12.1 体系结构描述的标准化 213
12.2 建立体系结构描述 215
12.2.1 确定体系结构描述 216
12.2.2 确定风险承担者 216
12.2.3 选择视点 217
12.2.4 确定视点 218
12.2.5 确定视图 222
12.2.6 记录视图的不一致 223
12.2.7 建立对体系结构基本原理的阐述 223
12.3 使用体系结构描述 224
12.3.1 建立现有系统的体系结构描述 225
12.3.2 进行体系结构评估 225
12.3.3 规格说明的语用 225
12.4 本章小结 226
第13章 使用体系结构框架 227
13.1 软件体系结构框架 227
13.1.1 体系结构框架的哲学 228
13.1.2 体系结构框架的目标 229
13.1.3 方法学和体系结构框架 230
13.2 体系结构的4+1视图模型 230
13.2.1 与IEEE1471的关系 231
13.2.2 逻辑视点 232
13.2.3 过程视点 232
13.2.4 开发视点 234
13.2.5 物理视点 234
13.2.6 场景视点 234
13.2.7 模型超载 235
13.2.8 用UnifiedProcess建造体系结构 235
13.3 开放式分布处理参考模型 237
13.3.1 企业视点 237
13.3.2 信息视点 239
13.3.3 计算视点 240
13.3.4 工程视点 240
13.4 本章小结 241
13.3.5 技术视点 241
第14章 软件体系结构质量 243
14.1 评估软件体系结构的重要性 244
14.1.1 内容出版系统的例子 245
14.1.2 企业应用的例子 246
14.2 怎样提高质量 246
14.2.1 系统化的设计过程 247
14.2.2 正确地理解问题 248
14.2.3 评估软件体系结构 250
14.3 体系结构评价 253
14.4 评估可修改性 255
14.5 评估性能 258
14.6 本章小结 261
参考文献 263