知识卡片

ADL的四大核心设计元素

结构图卡

内容

ISO/IEC/IEEE 42010标准定义了一个ADL至少应该支持的最小需求——四个核心设计元素:组件(表示系统中主要的计算元素和数据存储,如客户端、服务器、数据库)、连接件(定义组件之间的交互关系,如过程调用、消息传递、事件广播)、架构配置(描述组件、连接件之间的拓扑关系)、约束条件(定义组件之间依赖、组件与连接件之间依赖的约束)。这与[[软件架构参考定义框架的五种元素]](组件/连接件/配置/端口/角色)高度呼应但视角不同:五要素框架是从”架构本身长什么样”出发的静态描述框架,而ADL四要素是从”一门语言至少要能表达什么”出发的语言最小能力集合,多出的”约束条件”正体现了ADL作为一门可被工具处理的形式化语言、必须能显式声明和检查约束这一特殊需求。组件和连接件定义中有一个共同的重要方面:都需要描述其外部特性,即接口(组件/连接件与外部世界的交互点集合)、端口(组件一侧的交互点,通过不同端口类型一个组件可提供多重接口)、角色(连接件一侧的交互点,定义连接件所表示交互中的参与者,如二元连接件的两个角色)——这组”接口-端口-角色”术语与[[软件架构参考定义框架的五种元素]]中的定义完全一致,说明ADL四要素本质上是把参考定义框架的五要素落地成一套可被形式化语言实际表达的最小集合。架构配置除了确定组件是否正确连接、接口是否匹配,还要说明”实现要求行为的组合语义”——这是配置真正的难点:不只是画连线图,还要能表达”连起来之后系统整体行为是什么”。ADL通常还会借助一种形式化技术(如π-calculus、偏序事件集理论)作为语义描述的理论基础,这也是ADL和纯图形化建模工具的关键区别:ADL的连接图背后有严格的数学语义支撑。

结构图

flowchart TD
    A[组件<br/>计算元素/数据存储] -->|通过端口暴露| I1[接口]
    B[连接件<br/>交互关系] -->|通过角色暴露| I2[接口]
    A --> C[架构配置<br/>组件-连接件拓扑关系]
    B --> C
    C --> D[约束条件<br/>依赖约束]
    C -.形式化语义基础<br/>π-calculus/偏序事件集.-> E[行为组合语义]

参考来源

- 位置:《软件架构理论与实践》第5章《软件架构描述语言》"5.2 ADL的核心设计元素"节(源文件:_epub-src/OEBPS/text00041.html) - 结论依据:原文明确"一个ADL至少应该支持的核心设计元素包括组件(component)、连接件(connector)、架构配置(architecture configuration)和约束(constraint)条件四个方面",并逐一说明各元素的接口/端口/角色定义及架构配置需要说明的"组合语义",直接支撑本卡片的结构图与内容解释。 - 原始内容:ISO/IEC/IEEE 42010标准定义了ADL的最小需求:一个ADL至少应该支持的核心设计元素包括组件(component)、连接件(connector)、架构配置(architecture configuration)和约束(constraint)条件四个方面……架构配置提供信息来确定组件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现要求行为的组合语义。