知识卡片
软件架构核心思想是把交互从计算中分离
内容
软件架构不仅仅是软件系统的总体结构,还包含质量属性以及功能与结构之间的映射关系(即设计决策),它的两个主要焦点是系统的总体结构、以及需求和实现之间的对应关系。软件架构思想的关键实现手段是”抽象”:用抽象方法屏蔽掉模块之间错综复杂的具体连接细节,使人们的认知能够提升并保持在”组件交互”这个层次,而不是陷入模块内部实现的细节泥潭;在此基础上,进一步把”交互”从”计算”中分离出来——组件负责计算(做什么),连接件负责交互(怎么连),由此建立起”组件+连接件+配置”这一软件系统高层结构的组织方式。这个分离动作的价值在于:它让架构师可以脱离具体的算法实现,单独对”系统各部分如何协作”这件事进行设计、评审和演化,例如替换一个连接方式(如把过程调用换成消息队列)不需要触碰任何组件内部的计算逻辑。这也解释了为什么软件架构设计和算法/数据结构设计是软件设计过程中两个不同的层次——前者关心的是宏观拓扑与交互方式,后者关心的是单个计算单元内部如何高效实现,具体的”组件/连接件/配置”三要素定义见[[软件架构参考定义框架的五种元素]]。
参考来源
- 位置:《软件架构理论与实践》第1章《软件架构概述》"1.2.1 软件架构的主要思想"节(源文件:_epub-src/OEBPS/text00007.html)
- 结论依据:原文说明软件架构"是一个软件系统的设计图……还包含一些质量属性以及功能与结构之间的映射关系,即设计决策",并说明其主要思想是"运用抽象方法来屏蔽错综复杂的模块间连接……并进一步将交互从计算中分离出来,建立'组件+连接件+配置'的软件系统高层结构组织方式",直接支撑本卡片结论。
- 原始内容:软件架构的主要思想是将注意力集中在系统总体结构的组织上,实现的手段是运用抽象方法来屏蔽错综复杂的模块间连接,使人们的认知提升并保持在整体结构的组件交互层次,并进一步将交互从计算中分离出来,建立"组件+连接件+配置"的软件系统高层结构组织方式。