🏠 首页›第一梯队 · 决胜核心 · 第 9 小时 · 系统架构设计基础

基于架构的软件开发方法(ABSD)

选择 8~15 分案例 25 分论文高频
📄 教材出处 · 第 9 小时《架构设计》 (书第 87–96 页) ▸ 查看原文摘录 打开教材 PDF ↗
第 87 页 ↗系统架构设计基础知识 9.0 章节考点分析 主要学习软件架构的基本概念、基于架构的软件开发方法、软件架构风格、软件架构 复用以及特定领域软件体系结构等内容。
第 88 页 ↗【导读小贴士】 软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。
第 89 页 ↗系统架构设计基础知识 81 1)组成SA模型(软件架构模型)的基本概念。
第 90 页 ↗9.2 基于架构的软件开发方法 【基础知识点】 1.体系结构的设计方法概述 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)方法是体系 结构驱动的,即指构成体系结构的商业、质量和功能需求的组合驱动的。
第 91 页 ↗ 9.3 软件架构风格 【基础知识点】 1.软件架构风格概述 软件体系结构设计的核心目标是重复的体系结构模式(软件复用/重用)。
第 92 页 ↗ 图9.3 管道和过滤器风格 3.调用/返回体系结构风格 调用-返回风格在系统中采用了调用与返回机制。

知识点目录(共 5 项)

  1. ABSD 六个子过程:架构需求 → 设计 → 文档化 → 复审 → 实现 → 演化
  2. 架构需求的获取与质量属性场景
  3. 架构设计:基于用例 + 质量场景驱动
  4. 架构文档化(架构规格说明书 / 质量设计说明)与架构复审
  5. 基于架构的开发与传统开发的差异

知识点详解

一、ABSD 方法概述

ABSD(Architecture-Based Software Design,基于架构的软件设计)是架构驱动的方法,即由构成架构的商业需求、质量需求和功能需求的组合驱动。三个关键描述手段:

ABSD 的三个基础:① 功能的分解(使用基于模块的内聚和耦合技术);② 通过选择架构风格来实现质量和商业需求;③ 软件模板的使用。ABSD 是自顶向下、递归细化的,迭代的每一步都有清晰定义,有助于降低架构设计的随意性。设计元素逐层分解:系统 → 概念子系统 + 软件模板 → 概念构件 + 附加软件模板。

考法:"设计活动可在需求尚未完成时开始"——ABSD 的设计活动与需求获取和分析并行进行(特别是在产品线系统或长期运行的系统中)。

二、ABSDM 开发模型:六个子过程(必背)

架构需求 架构设计 架构文档化 架构复审 架构实现 架构演化 不满足 → 迭代回需求 复审不通过 → 返回设计/文档化 满足新需求 → 演化 O:N / O:M:需求与设计是 1:N,文档化与复审迭代循环;演化后可作为新一轮需求重新进入循环
图 1-3 ABSDM 基于架构的软件开发过程六子过程(重绘自教材图 9.2,标注迭代关系)

三、六个子过程要点

子过程核心内容
① 架构需求三步:需求获取(三个来源:质量目标、系统的商业目标、系统开发人员的商业目标)→ 标识构件(三步:生成类图 → 对类分组〔隔离的类/概括关联的类/聚合或合成关联的类〕→ 把类打包成构件)→ 需求评审(审查需求是否真实反映用户要求、类的分组/构件合并是否合理)
② 架构设计迭代过程:提出架构模型(首要工作是选择合适的架构风格)→ 映射构件(产生只含明确适合构件的中间结构)→ 分析构件相互作用 → 产生架构 → 设计评审(必须邀请独立于系统开发的外部人员)
③ 架构文档化产出两个结果:体系结构规格说明 + 测试架构需求的质量设计说明书。文档是用户与开发者之间的协约、沟通媒介
④ 架构复审主版本架构分析后,安排外部人员(用户代表和领域专家)参加复审;目的:标识潜在风险,及早发现设计缺陷和错误;必要时搭建可运行的最小化系统评估测试。设计、文档化、复审是迭代过程
⑤ 架构实现以复审后的文档化架构说明书为基础:分析与设计 → 构件实现 → 构件组装 → 系统测试(单个构件的功能测试 + 组装后整体功能与性能测试)
⑥ 架构演化满足新需求的七步:需求变化归类 → 制定演化计划 → 构件变动 → 更新构件相互作用 → 构件组装与测试 → 技术评审 → 演化后的架构;不符合则第 2~6 步迭代

四、视角与视图、用例与质量场景

记忆:"质变可交性,用例管功能"——质量场景 4 类(变更/性能/可靠性/交互性)+ 必须含预期与非预期;用例捕获功能需求。
考法:选择题常考"质量场景不包括以下哪项"(答案为四类之外的选项);"ABSD 的三个基础";"复审参加人员=外部人员(用户代表+领域专家)";"需求获取三来源"。