知识卡片

软件架构的六大特征

普通读书笔记卡

内容

软件架构区别于普通设计文档的地方在于它同时承载六种彼此关联的特征。注重可重用性——架构中的组件本身就是重用思想的体现,架构风格的研究更提供了”架构级别”的重用(不只是复用一段代码,而是复用一整套结构组织方式)。利益相关者较多——软件系统通常有多个利益相关者,每个利益相关者都因自身利益对系统有不同需求,架构设计的工作就是要平衡这些需求并落实到系统结构中。关注点分离——即”分而治之”在架构层面的体现,模块化是其最具代表性的具体设计原则,已有架构方法用分离关注点的方式简化复杂性、驱动设计,这种分离被称为”架构视角”。质量驱动——软件设计已经从传统的功能性需求驱动逐渐转向质量属性驱动(可靠性、可扩展性等),质量属性需求是影响系统复杂度的关键因素,是软件架构中最重要的关注点。提倡概念完整性——Frederick Brooks首先明确提出这条规则:”一个为了反映一组设计思想而省略不规则特性及改进的系统,要好过一个包含很多虽然好但独立、不协调的设计思想的系统”,简单说就是要求用相似的方法做相似的事情,是所有设计决策都必须遵守的至高规则。循环风格——与建筑架构类似,软件架构提出标准方法来处理反复出现的问题,这类方法在不同抽象层次上被分别命名为架构风格、架构策略、参考结构、架构模式等。这六个特征不是并列的清单条目,而是从”为什么需要架构”(利益相关者多元、质量驱动)推导到”架构如何应对”(关注点分离、循环风格)再到”架构如何自洽”(概念完整性、可重用性)的一条完整逻辑链。

参考来源

- 位置:《软件架构理论与实践》第1章《软件架构概述》"1.2.2 软件架构的特征"节(源文件:_epub-src/OEBPS/text00007.html) - 结论依据:原文分六点逐一说明可重用性、利益相关者、关注点分离、质量驱动、概念完整性、循环风格的具体含义,并引用Frederick Brooks关于概念完整性的原话作为权威论据,直接支撑本卡片对六大特征的解释。 - 原始内容:(5)提倡概念完整性……Frederick Brooks首先在软件系统设计中明确提出了概念完整性规则:"我认为概念完整性是系统设计中最重要的考虑因素。一个为了反映一组设计思想而省略不规则特性及改进的系统,要好过一个包含很多虽然好但独立、不协调的设计思想的系统。"