内容简介
架构(即架构元素的组织)是复杂软件系统设计与开发中的关键问题之一。本书介绍了基于对象、组件、服务和模型的架构范式,以及各种架构技术及方法,包括架构质量分析、架构模板、风格表示模型、正规化、验证和测试,后还介绍了处理这些一致、自治元素的工程方法。本书适合项目经理、项目负责人、架构师、设计人员、开发人员和软件架构用户以及工程专业学生及教师阅读。
目录
译者序
前 言
第1章 软件架构中面向对象、基于组件、面向代理和面向服务的范式 1
1.1 引言 1
1.2 历史 2
1.2.1 面向对象范式 2
1.2.2 基于组件范式 3
1.2.3 面向代理范式 3
1.2.4 面向服务范式 4
1.3 软件架构 6
1.3.1 面向对象软件架构 6
1.3.2 基于组件软件架构 7
1.3.3 面向代理软件架构 8
1.3.4 面向服务架构 10
1.4 概念框架的两个维度:定量和定性 12
1.4.1 概念差异 12
1.4.2 定量维度 19
1.4.3 定性维度 24
1.5 集成开发范式方法 33
1.6 小结与讨论 35
1.7 结语 37
1.8 参考书目 37
第2章 参考架构 42
2.1 引言 42
2.2 参考架构的定义 42
2.2.1 参考架构与参考模型的对比 43
2.2.2 参考架构与产品线架构的对比 44
2.3 参考架构模型 45
2.4 参考架构设计 48
2.4.1 信息源调查 49
2.4.2 架构需求确立 50
2.4.3 参考架构设计 51
2.4.4 参考架构评估 53
2.5 参考架构的用途 53
2.6 参考架构的示例 56
2.7 参考架构的前景 57
2.8 结语 59
2.9 参考书目 60
第3章 多层次/多视图软件架构 64
3.1 引言 64
3.2 现有视点方法 65
3.2.1 引言 65
3.2.2 需求规格中的视图 65
3.2.3 系统建模中的视图 66
3.2.4 编程中的视图 66
3.3 软件架构中的视图 67
3.3.1 视图在软件架构中的贡献 67
3.3.2 “4+1”视图模型 68
3.3.3 ISO/IEC/IEEE 42010 69
3.3.4 视图及超越方法 69
3.3.5 小结 72
3.3.6 当前软件架构方法的局限性 74
3.4 多层次/多视图软件架构的定义和基本概念 74
3.4.1 定义 74
3.4.2 概念和基础知识 75
3.5 MoVAL:基于模型、视图和抽象级别的架构 83
3.5.1 引言 83
3.5.2 MoVAL 84
3.5.3 MoVAL元模型 87
3.5.4 案例分析 89
3.6 结语 92
3.7 参考书目 93
第4章 软件架构与工具:分布与协调动态重配置管理 95
4.1 引言 95
4.2 背景 96
4.3 分布式应用的动态重配置管理机制 98
4.3.1 集中动态重配置管理 98
4.3.2 分布式系统集中解决方案的局限性 100
4.3.3 分布式重配置管理的优势与风险 101
4.3.4 现有协调机制 102
4.4 重配置基础设施的专门化 104
4.4.1 行为的专门化 105
4.4.2 适配机制分布的专门化 105
4.5 分布式系统动态重配置的局限性和难点总结 106
4.6 重配置管理机制的实施方法 107
4.7 分布动态重配置管理的架构模型 108
4.7.1 用于适配管理的组件类型 109
4.7.2 动态重配置管理的分布 110
4.7.3 适配管理器架构模型 112
4.7.4 重配置机制的专门化 113
4.7.5 重配置过程的协调 115
4.8 结语 128
4.9 参考书目 129
第5章 产品线软件架构 133
5.1 软件生产线简介 133
5.1.1 3种开发风格 135
5.1.2 可变性管理 135
5.1.3 产品线中的架构概念 137
5.2 音乐商店示例 139
5.2.1 领域 139
5.2.2 SongStock产品线 139
5.2.3 功能需求 140
5.2.4 其他主要需求 140
5.3 领域工程 141
5.3.1 领域分析 141
5.3.2 集成可变性用例 142
5.3.3 特征模型 143
5.3.4 领域设计 144
5.3.5 设计产品线架构 145
5.4 产品工程 148
5.4.1 产品的配置 149
5.4.2 产品衍生 149
5.5 参考架构设计过程 151
5.6 延伸阅读 153
5.6.1 PLA与参考架构 154
5.6.2 具有影响力的旧文献 155
5.7 结语 158
5.8 参考书目 158
第6章 软件架构:Web服务复合环境下的服务适配技术 165
6.1 引言 165
6.2 Web服务复合和验证 167
6.3 Web服务不兼容和适配 171
6.4 适配方法 173
6.5 结语 182
6.6 参考书目 182
前言/序言
前 言 在过去20年间,出现了多种描述软件架构的语言,促进了以架构为焦点的应用程序开发。一般来说,这些语言提供了描述和分析软件系统所用的正式或半正式标记法。它们通常搭配一些工具,这些工具用于分析和模拟,有时也用于生成已建模系统的代码。软件架构对复杂分布式系统的发展做出了贡献。它们的主要特征一方面在于管理系统的抽象及表达水平的能力,另一方面则是考虑系统结构与行为建模的能力。现在,任何复杂软件系统设计与开发中的关键问题之一都是架构(即组成该系统架构元素的组织),这已经是广为接受的看法。好的架构有助于系统关键属性(可靠性、可移植性、互操作性)的形成。相反,糟糕的架构可能给系统造成灾难性的后果。而且,在开发期间,好的架构可以作为系统的“良心”。实际上,好的架构指导系统的演化过程,例如,它指明了系统的哪些方面可以在不破坏完整性的情况下进行修改。 近年来,新设计的应用程序,尤其是那些专用于面向对象、基于组件、面向服务、面向代理、基于模型的分布式信息系统设计及开发的应用程序,凸显出受控于架构元素及相关结构的演化特性。此类系统的可持续性、适应性和可伸缩性已经成为非常重要的经济学问题。实际上,由于这些系统往往需要历经数年(人力资源/月)的开发和更新,因此它们的生命期必须得以延续,尤其要应对软件架构设计者、应用程序构建者和最终用户不断变化的需求。在这一背景下,学术和行业团体提出,新开放软件架构(即能够与其他架构通信及接口的架构)的设计和开发应该具有适应性(可以根据运营条件和不同应用领域设计)和可伸缩性(可以进行改良,以处理初始设计时没有预计到的服务)。 实际上,软件架构为复杂系统的如下固有需求提供了很好的应对之策: 在不同环境和背景中使用和重用系统的需求。因此,系统必须具备重新建模(改造、演化和再工程)的能力,以满足特殊使用条件下的需求(如分布式基础设施、有限资源和不同功能构成的不同视角)以及新的技术需求(组件、服务、架构视图等)。 采取可重用设计方法、构造可重用架构元素(对象、组件、服务及代理),降低系统开发及维护成本的需求。这些架构元素可以标识并从现有系统中抽取,在未来的开发中重用。 在最低成本下快速更新这些系统的需求。在这种情况下,自动化转换过程(结构和行为)、促进这些活动的重用(重用演化过程)是必要的。 控制复杂度(系统的理解和开发)的同时以高度抽象进行处理的需求。 目前,有鉴于此,在基于组件、基于服务架构(SOA)、基于代理架构和基于模型架构方面已经出现了一些提案。在任何情况下,我们所面临的挑战都包括质量和效率的改善,以及软件制造的工业化。 而且,由于大量提案和解决方案的出现,因此审视软件工程中与架构相关的研究和应用也是很有必要的。 为此,我们编写了本书,它用不同的技术和架构方法分析架构特征、模式与风格的代表模型、规范、验证以及管理这些连贯自治元素的工程方法,介绍面向对象、基于组件、面向服务、面向代理和基于模型的软件架构范式。 本书的主要目标读者是项目经理、项目负责人、架构师、设计师、开发人员和软件架构用户、理工院校教师、工程师,以及理工院校的大学生及研究生。 Mourad Chabane Oussalah
软件架构 epub pdf mobi txt 电子书 下载 2024
软件架构 下载 epub mobi pdf txt 电子书 2024