目 录
第1章软件体系结构概述1
1.1随处可见的软件架构1
1.2软件体系结构的定义2
1.2.1多角度定义软件体系结构2
1.2.2软件体系结构定义解析4
1.3从建筑的体系结构理解软件的体系结构5
1.4软件体系结构的作用7
1.5软件体系结构的历史与发展现状7
1.5.1软件体系结构的发展史 7
1.5.2软件体系结构的主要研究方向8
小结9
习题9
第2章软件体系结构定位与构建10
2.1软件生命周期中的软件体系结构10
2.1.1需求分析阶段10
2.1.2系统设计阶段12
2.1.3系统实现阶段13
2.1.4系统测试阶段13
2.1.5系统部署阶段14
2.1.6系统维护和迭代阶段14
2.1.7系统退役阶段15
2.2软件体系结构的生命周期15
2.2.1软件体系结构分析16
2.2.2软件体系结构设计17
2.2.3软件体系结构评估20
2.2.4软件体系结构演化21
小结22
习题22第3章软件体系结构描述方法23
3.1软件体系结构描述概述23
3.1.1软件体系结构描述定义及其重要性23
3.1.2软件体系结构描述类型23
3.2常见软件体系结构描述方法27
3.2.1基于图建模的描述方法27
3.2.2基于UML建模的描述方法29
3.2.3基于形式化规格说明的体系结构描述31
3.2.4基于架构描述语言的体系结构描述39
3.2.5模型驱动建模开发方法43
小结46
习题46
第4章基于风格的软件体系结构设计47
4.1软件体系结构风格概述47
4.1.1软件体系结构风格定义47
4.1.2软件体系结构风格作用48
4.1.3软件体系结构风格的发展与演化48
4.2数据流体系结构风格49
4.2.1批处理体系结构风格49
4.2.2管道过滤器体系结构风格52
4.3以数据为中心的体系结构风格55
4.3.1仓库体系结构风格55
4.3.2黑板体系结构风格57
4.4调用/返回体系结构风格61
4.4.1主程序子过程体系结构风格62
4.4.2面向对象体系结构风格64
4.4.3层次系统体系结构风格66
4.5虚拟机体系结构风格69
4.5.1解释器体系结构风格69
4.5.2规则系统体系结构风格71
4.6独立构件体系结构风格73
4.6.1进程通信体系结构风格74
4.6.2事件系统体系结构风格76
4.7微服务体系结构风格82
4.7.1微服务体系结构风格定义83
4.7.2微服务体系结构风格特点84
4.7.3微服务体系结构风格应用85
4.8云原生体系结构风格88
4.8.1云原生体系结构风格定义88
4.8.2云原生体系结构风格特点89
4.8.3云原生体系结构风格应用90
4.9大数据处理体系结构风格92
4.9.1大数据处理体系结构风格93
4.9.2大数据处理体系结构风格特点97
4.9.3大数据处理体系结构风格应用97
小结99
习题99
第5章面向质量属性的软件体系结构设计101
5.1软件质量属性概述101
5.1.1质量属性的特点101
5.1.2质量属性场景104
5.2可用性107
5.2.1可用性的含义107
5.2.2可用性的质量属性场景109
5.2.3可用性的实现策略110
5.2.4提高软件可用性的措施实例117
5.3可修改性118
5.3.1可修改性的含义118
5.3.2可修改性的质量属性场景119
5.3.3可修改性的实现策略120
5.3.4提高软件可修改性的措施实例126
5.4性能128
5.4.1性能的含义128
5.4.2性能的质量属性场景129
5.4.3性能的实现策略130
5.4.4提高软件性能的措施实例133
5.5安全性134
5.5.1安全性的含义134
5.5.2安全性的质量属性场景135
5.5.3安全性的实现策略136
5.5.4提高软件安全性的措施实例139
5.6可测试性140
5.6.1可测试性的含义140
5.6.2可测试性的质量属性场景141
5.6.3可测试性的实现策略142
5.6.4提高软件可测试性的措施实例144
5.7易用性145
5.7.1易用性的含义145
5.7.2易用性的质量属性场景147
5.7.3易用性的实现策略147
5.7.4提高软件易用性的措施实例150
5.8特定领域关注的质量属性151
5.8.1功耗效率151
5.8.2可移植性152
5.8.3可重用性153
5.9综合案例: 手机银行153
5.9.1案例综述153
5.9.2面向质量属性的体系结构设计154
小结156
习题157
第6章软件体系结构评估158
6.1软件体系结构评估定义158
6.2软件体系结构分析与评估方法159
6.2.1基于场景的评估方法159
6.2.2基于度量和预测的评估方法161
6.2.3基于特定软件体系结构描述语言的评估方法162
6.3软件体系结构分析法163
6.3.1SAAM的参与人员164
6.3.2SAAM的评估过程164
6.4架构权衡分析法165
6.4.1ATAM中的重要概念和技术165
6.4.2ATAM的参与人员168
6.4.3ATAM的评估过程168
6.5以决策为中心的体系结构评估方法174
6.5.1DCAR的相关概念175
6.5.2DCAR的参与人员175
6.5.3DCAR的评估过程176
小结179
习题179
第7章软件体系结构演化181
7.1软件架构坏味道181
7.1.1架构异味181
7.1.2架构异味的分类184
7.1.3检测架构异味的技术与工具188
7.2软件架构逆向工程188
7.2.1架构逆向工程的定义188
7.2.2架构逆向工程的执行流程190
7.2.3架构逆向工程的工具192
7.3动态软件体系结构196
7.3.1概念196
7.3.2动态体系结构模型197
7.3.3动态体系结构描述语言198
7.4软件体系结构复用202
7.4.1概念202
7.4.2基于度量的重构方法203
7.4.3面向模式的重构方法206
7.5特定领域软件体系结构207
7.5.1基础概念207
7.5.2基本活动209
7.6软件产品线211
7.6.1背景与定义211
7.6.2关键技术212
小结215
习题215
第8章综合应用案例216
8.1电商系统216
8.1.1需求分析216
8.1.2架构设计220
8.1.3架构评估222
8.1.4架构演化223
8.1.5案例小结227
8.2基于大模型的知识问答系统228
8.2.1需求分析229
8.2.2架构设计231
8.2.3架构评估233
8.2.4架构演化234
8.2.5案例小结236
8.3物联网系统237
8.3.1需求分析237
8.3.2架构设计241
8.3.3架构评估243
8.3.4架构演化244
8.3.5案例小结245
小结246
习题246
参考文献247