知识卡片

组成派的代表性架构定义

普通读书笔记卡

内容

[[组成派与决策派两大定义流派的分歧]]中提到,组成派定义强调系统由哪些部分组成、以及这些部分如何组成。1992年Dewayne和Alexander给出了最早的软件架构定义之一——”软件架构={元素,组成,原理}“,其中元素分处理元素(加工数据)、数据元素(被加工的信息)、连接元素(组合连接不同部分)三类,架构组成由”加权的属性”(约束元素选择)和”加权的关系”(约束元素放置)构成,架构原理则是指导多种设计选择背后的基础理论、解释基本哲学和美学思想。1993年David(Garlan)和Mary(Shaw)的定义把架构核心归纳为组件(component)、连接件(connector)、约束(constraint)三大要素——组件可以是一组代码或独立程序,连接件可以是过程调用、管道、消息等,用于表示组件间的相互关系,约束一般是组件连接时的条件;这个”3C模型”后来被广泛称为软件架构的核心模型。此后陆续出现的定义(如1994年Jones的”组件+交互规则”、1995年Bass等人的”组件+组件外部可见特性+相互关系”、2004年张友生的”结构+行为+属性的高级抽象”)大多是对这两个早期定义的细化或重新表述,核心骨架始终没有脱离”系统由什么元素构成、这些元素靠什么连接、连接受什么约束”这一基本框架——这也是为什么组成派后来的定义会持续朝着[[软件架构参考定义框架的五种元素]](在组件/连接件/约束基础上进一步拆出配置/端口/角色)这个方向演进。

参考来源

- 位置:《软件架构理论与实践》第2章《软件架构的概念》"2.2 组成派的主要定义"节(源文件:_epub-src/OEBPS/text00015.html) - 结论依据:原文分别给出1992年Dewayne和Alexander"元素/组成/原理"定义、1993年David和Mary的"组件/连接件/约束"3C模型定义,并说明"现在很多人都称之为软件架构的核心模型"(见2.5节),后续多个定义均围绕这一骨架变化,直接支撑本卡片对组成派定义演变脉络的归纳。 - 原始内容:1993年David和Mary定义的软件架构包括组件(component)、连接件(connector)和约束(constraint)三大要素,认为软件架构是软件设计过程的层次之一,该层次超越计算过程中的算法设计和数据结构设计。组件可以是一组代码,也可以是独立的程序;连接件可以是过程调用、管道和消息等。