MD 更新:未知

架构描述与评估 · 知识点总结

综合整理自: 软件架构的概念4+1视图ADL架构评估软件评估方法 以及 llm-wiki 中的 ATAMSAAMCBAM质量属性敏感点权衡点风险点非风险点


知识图谱

架构描述与评估
├── 1. 软件架构基础
│   ├── 架构的概念与作用
│   └── 架构生命周期(SA流程)
├── 2. 架构描述
│   ├── 4+1视图模型
│   └── ADL(架构描述语言)
├── 3. 质量属性
│   ├── 四大质量属性
│   ├── 开发期 vs 运行期
│   └── 质量效用树
├── 4. 评估核心概念
│   ├── 风险点 / 非风险点
│   ├── 敏感点
│   └── 权衡点
└── 5. 评估方法
    ├── SAAM(可修改性)
    ├── ATAM(多属性权衡)⭐重点
    └── CBAM(成本效益)

一、软件架构基础

1.1 架构的本质

  • 软件架构为系统提供结构、行为和属性的高级抽象
  • 架构风格是特定领域的惯用模式,定义一个词汇表和一组约束
  • 架构设计 = 按需分配,将满足需求的职责分配到组件

1.2 架构的作用

作用说明
交流手段项目干系人之间的沟通桥梁
可传递可复用通过研究架构可预测软件质量
原型设计有助于循序渐进的原型开发

一句话: 架构设计是降低成本改进质量按时按需交付的关键因素。

1.3 架构生命周期(SA流程)

需求分析 → 设计 → 实现 → 构件组装 → 部署 → 后开发
阶段核心要点
需求分析如何根据需求构建SA模型,模型是否可追溯
设计 ⭐SA研究最核心阶段,使用ADL和4+1视图
实现根据设计进行代码实现
构件组装高层次实现系统,强调效率
部署SA提供高层视图指导部署
后开发系统结构动态变化,支持结构恢复与重建

二、架构描述

2.1 4+1视图模型 ⭐⭐

从5个视角描述软件架构,不同角色关注不同视图。

视图面向对象关注点核心内容
逻辑视图用户/设计者功能需求类、对象
开发视图程序员代码结构配置、装配
进程视图系统集成人员运行时行为并发、性能、吞吐量、可伸缩性
物理视图系统工程师部署结构硬件节点、网络拓扑、部署方式
用例视图 (场景)⭐分析/测试人员功能场景驱动其他4个视图

关键考点:

  • 用例视图是核心,驱动其他4个视图
  • 不同角色看不同视图,这是多视图存在的原因

视图间关系:

用例视图(驱动)
  ├──→ 逻辑视图(功能需求驱动)
  ├──→ 进程视图(性能需求驱动)
  ├──→ 开发视图(代码实现)
  └──→ 物理视图(部署实现)

2.2 ADL(架构描述语言)⭐⭐

定义: 一种形式化语言,为软件系统的概念体系结构提供具体的语法和概念框架。

三个基本要素(必考):

要素定义类比
构件计算或数据存储单元房间的墙壁
连接件构件之间交互的构造块及规则房间的门和走廊
架构配置构件与连接件的链接图房间的平面图

三者关系: 构件通过连接件进行交互,多个构件和连接件共同组成架构配置。

常见ADL类型:

ADL特点
C2SADL基于组件和消息
Wright分布式和并发系统建模
ACME架构互换(通用描述)
UniCon基于组件和连接
Rapide基于事件

三、质量属性 ⭐⭐

3.1 四大质量属性(ATAM评估对象)

质量属性定义衡量指标实现手段
性能系统响应速度和处理能力响应时间、吞吐率缓存、负载均衡、异步处理
可用性正常运行时间比例和故障恢复能力运行时间比例、恢复速度冗余部署、故障转移、健康检查
安全性阻止非授权访问和抵御攻击的能力非授权访问阻止率认证授权、加密传输、防火墙
可修改性系统进行变更所需的代价变革的代价松耦合、模块化、配置化

3.2 开发期 vs 运行期质量属性

开发期运行期
易理解性性能
可扩展性安全性
可重用性可伸缩性
可测试性互操作性
可维护性可靠性
可移植性可用性
鲁棒性

记忆口诀:

  • 开发期:“理扩重测维移”(理解、扩展、重用、测试、维护、移植)
  • 运行期:“性安伸互Rel可鲁”(性能、安全、伸缩、互操作、可靠性、可用性、鲁棒性)

3.3 质量效用树

         树根(系统目标)
        /    |    \
   质量属性  质量属性  质量属性
   /   \    /   \    /   \
 分类  分类  分类  分类  分类  分类
  |     |    |    |    |    |
场景  场景  场景  场景  场景  场景

优先级确定方法:

  1. 先按场景的重要性定优先级
  2. 再按场景实现的难易度定优先级

四、评估核心概念 ⭐⭐⭐

这四个概念是案例分析题的必考点,必须准确区分。

4.1 四大概念对比

概念定义关键词示例
风险点潜在的、存在问题的架构决策带来的隐患隐患、问题单点故障、不成熟技术
非风险点不会带来隐患的可接受决策可接受、安全采用Spring Boot、使用MySQL
敏感点实现某种特定质量属性,构件所具有的特性单一质量属性数据库索引设计(影响性能)
权衡点影响多个质量属性的特性(多个敏感点的交集)多个质量属性数据一致性(影响性能+可用性)

4.2 记忆技巧

风险点 = 有问题的决策(隐患)
非风险点 = 没问题的决策(安全)
敏感点 = 影响"一个"质量属性
权衡点 = 影响"多个"质量属性 = 多个敏感点的交集

易混淆点:

  • 敏感点 ≠ 权衡点:敏感点只影响一个属性,权衡点影响多个
  • 风险点 ≠ 敏感点:风险点是”隐患”,敏感点是”特性”
  • 权衡点是ATAM方法的核心产出物

4.3 案例分析答题模板

题目问”识别风险点、敏感点、权衡点”时:

  1. 风险点: 找描述中”可能出问题”的架构决策

    • 例:“系统采用单台数据库服务器” → 风险点(单点故障)
  2. 非风险点: 找描述中”合理、成熟”的决策

    • 例:“系统采用成熟的微服务框架” → 非风险点
  3. 敏感点: 找只影响”某一个”质量属性的构件特性

    • 例:“数据库索引策略” → 敏感点(只影响性能)
  4. 权衡点: 找同时影响”多个”质量属性的特性

    • 例:“缓存策略” → 权衡点(影响性能+一致性)

五、评估方法 ⭐⭐⭐

5.1 三大评估方法对比

方法全称侧重点复杂度关系
SAAMSoftware Architecture Analysis Method可修改性最早的方法
ATAMArchitecture Tradeoff Analysis Method多质量属性评价与折中在SAAM基础上发展
CBAMCost-Benefit Analysis Method成本效益分析在ATAM基础上增加成本

发展关系: SAAM → ATAM → CBAM

5.2 ATAM(架构权衡分析方法)⭐⭐⭐ 重点中的重点

评估对象: 性能、可用性、安全性、可修改性

四个阶段(8个步骤):

阶段步骤内容
第一阶段:场景和需求收集① 收集场景从干系人获取使用场景
② 收集需求/约束/环境明确系统约束条件
第二阶段:架构视图和场景实现③ 描述架构视图用4+1视图等描述架构
④ 实现场景将场景映射到架构上
第三阶段:属性模型构造和分析⑤ 特定属性分析构造质量属性模型
⑥ 单一理论分析评估单一质量属性
第四阶段:折中⑦ 标志敏感度识别敏感点
⑧ 标志折中识别权衡点

ATAM的核心产出:

  • 敏感点列表
  • 权衡点列表
  • 风险点列表
  • 非风险点列表

5.3 SAAM(软件架构分析方法)

  • 最早的架构评估方法
  • 最初只用于分析可修改性
  • 方法相对简单,为ATAM/CBAM奠定基础

5.4 CBAM(成本效益分析方法)

  • 在ATAM基础上引入成本效益分析
  • 不仅评估质量属性,还考虑实现成本
  • 帮助在多个架构方案中选择性价比最高的方案
  • 复杂度最高

5.5 评估方式分类

方式说明
基于调查问卷通过问卷收集干系人意见
基于度量通过量化指标评估
基于场景 ⭐最常用,通过具体场景评估质量属性

5.6 性能场景六要素

场景 = 从风险承担者角度与系统交互的简短描述

要素定义示例
刺激源生成刺激的实体用户、外部系统
刺激在某些条件下发生的事件请求、故障、攻击
制品被刺激的对象整个系统或某个组件
响应刺激到达后采取的行动处理请求、记录日志
响应度量可度量的响应指标响应时间、恢复时间
环境刺激发生时系统所处状态正常操作、降级操作

可用性场景示例:

要素内容
刺激源系统内部 / 系统外部
刺激疏忽、错误、崩溃、时间
环境正常操作 / 降级操作
制品系统处理器、通信信道、持久存储器、进程
响应检测事件 → 记录并通知 → 禁止错误源
响应度量系统必须可用的时间间隔

六、高频考点速记

6.1 选择题高频

  1. 4+1视图中用例视图驱动其他视图
  2. ADL三要素:构件、连接件、架构配置
  3. SAAM最早用于可修改性评估
  4. ATAM针对性能、可用性、安全性、可修改性
  5. CBAM在ATAM基础上增加成本效益分析
  6. 权衡点 = 影响多个质量属性的特性

6.2 案例分析高频

  1. 识别风险点、敏感点、权衡点、非风险点
  2. ATAM的四个阶段和8个步骤
  3. 质量效用树的构建和优先级确定
  4. 根据场景描述判断质量属性类型
  5. 选择合适的架构评估方法

6.3 论文写作素材

  • ATAM方法的实际应用过程
  • 如何在项目中进行架构评估
  • 质量属性之间的权衡决策

七、速记口诀

“4+1视图用例驱,ADL有三件,ATAM四阶段,敏感权衡要分清”

  • 4+1视图 → 用例视图驱动
  • ADL → 构件+连接件+架构配置
  • ATAM → 场景收集→视图实现→属性分析→折中
  • 敏感点 → 影响一个属性
  • 权衡点 → 影响多个属性

相关笔记