软考架构描述语言(ADL)知识点总结

254 阅读6分钟

软考架构描述语言(ADL)知识点总结

架构描述语言(Architecture Description Language, ADL)是软件架构设计中的重要工具,用于以形式化的方式描述系统的架构。以下是软考中关于架构描述语言的核心知识点总结:

一、架构描述语言概述

架构描述语言(ADL)是一种用于软件架构设计的语言,它允许开发者以形式化的方式描述系统的高层结构,包括系统的组件、组件之间的连接以及它们如何协同工作以实现系统的功能。
ADL专注于描述系统的高层结构,而不是具体实现细节、用户界面设计或数据库设计。目前存在多种软件架构描述语言,比较典型的有:

  • 基于组件和消息的软件架构描述语言C2SADL
  • 分布、并发类型的架构描述语言Wright
  • 架构互换语言ACME
  • 基于组件和连接的架构描述语言UniCon
  • 基于事件的架构描述语言Rapide
  • 其他有影响力的描述语言:Darwin、MetaH、Aesop、Weaves、SADL、xADL等

二、ADL的核心要素

ADL的基本构成要素包括以下三个核心部分:

1. 构件(Components)

构件是系统中执行特定功能的独立单元,是软件架构中的基本构建块
每个构件都封装了一组功能,并对外提供接口以与其他构件交互
构件大小不一,可以是计算单元或数据存储单元

2. 连接件(Connectors)

连接件定义了构件之间如何相互通信
不仅仅是简单的数据通道,还包含控制信息的传递、数据转换和协议匹配等功能
支持不同构件之间的有效合作

3. 架构配置(Configurations)

描述了构件和连接件的组织方式,即它们如何被组合在一起构成完整的系统
定义了系统的结构框架,包括构件和连接件的实例化、它们之间的连接关系以及对系统行为的约束

三、ADL的特点与作用

架构描述语言具有以下特点:

  • 层次化结构:采用层次化的结构将软件系统分解为不同的模块和子模块
  • 接口定义:通过定义模块之间的接口来描述它们之间的关系
  • 依赖关系:通过定义模块之间的依赖关系来描述系统的结构
  • 可扩展性:可以根据需要进行扩展,以适应不同规模和复杂度的软件系统

ADL的主要作用包括:

  • 帮助开发人员更好地理解和设计软件系统
  • 提供清晰的方式表示系统结构和组件间关系
  • 便于系统设计、代码编写和维护
  • 提高开发效率和软件质量

四、架构描述与视图模型

软件系统架构是关于软件系统的结构、行为和属性的高级抽象(关键词:结构、行为、属性)。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
多视图指从不同角度和视角描述系统体系结构,以获得多个视图,并将其组合在一起以描述整体模型。多视图反映了关注点分离的思想,每个视图只关注系统的一个侧面。
"4+1"视图模型

  • 逻辑视图:从最终用户的角度出发,关注系统提供的功能
  • 开发视图:站在程序员、软件项目经理的角度,描述软件在开发环境下的静态组织
  • 进程视图(处理视图):关注系统动态运行时的情况
  • 物理视图:描述系统的物理部署情况
  • 场景:可以看作是其他四个视图的综合体现和验证,通过用例或场景来说明系统的架构

五、架构分析与评估方法

架构分析的内容可分为结构分析、功能分析和非功能分析。分析的目的是在系统被实际构造之前预测其质量属性。
常用的架构分析方法包括:

  • 软件架构分析方法SAAM
  • 架构权衡分析法ATAM
  • 成本效益分析法CBAM
  • 基于场景的架构再工程SBAR
  • 架构层次的软件可维护性预测ALPSM
  • 软件架构评估模型SAEM等

六、架构设计方法

架构设计是指生成一个满足用户需求的软件架构过程。常用的架构设计方法有:

工件驱动方法(artifact-driven):从工件描述中提取架构描述
用例驱动方法(usecase-driven):从用例导出架构抽象
模式驱动方法(pattern-driven):从模式导出架构抽象
域驱动方法(domain-driven):从领域模型导出架构抽象
属性驱动设计方法(attribute-driven design):从设计过程中获得架构质量属性需求

七、架构测试

架构测试着重于仿真系统模型、解决架构层的主要问题。根据测试的抽象层次不同,架构测试策略分为:

  • 单元测试策略
  • 子系统测试策略
  • 集成测试策略
  • 验收测试策略

主要的测试方法包括:

  • 架构测试覆盖方法
  • 组件设计正确性验证方法
  • 基于CHAM的架构动态语义验证方法

八、真题示例与解析

以下是一些关于ADL的选择题示例及答案解析:

  1. 题目:架构描述语言(ADL)用于描述:
    A. 系统的具体实现细节
    B. 系统的高层结构
    C. 系统的用户界面设计
    D. 系统的数据库设计
    答案:B。ADL专注于描述系统的高层结构。
  2. 题目:构件在软件架构中扮演的角色是:
    A. 数据存储
    B. 执行特定功能的独立单元
    C. 用户接口
    D. 数据加密
    答案:B。构件是执行特定功能的独立单元。
  3. 题目:连接件在ADL中的主要功能是:
    A. 存储数据
    B. 加密数据
    C. 定义构件之间的通信方式
    D. 提供图形用户界面
    答案:C。连接件定义了构件之间的通信方式。
  4. 题目:架构配置在软件架构中定义的是:
    A. 构件和连接件的颜色和形状
    B. 构件和连接件的物理位置
    C. 构件和连接件的组织方式
    D. 构件和连接件的大小
    答案:C。架构配置描述了构件和连接件的组织方式。

总结

架构描述语言是软考系统架构设计师考试中的重要知识点,涉及ADL的概念、核心要素、特点作用、视图模型、分析方法、设计方法和测试策略等多个方面。掌握这些知识点不仅有助于通过考试,更能提升实际的软件架构设计能力。备考时应重点理解构件、连接件和架构配置这三个核心概念,熟悉"4+1"视图模型,并了解常用的架构分析和评估方法。