MD 更新:未知

架构方法与过程 · 知识点总结

综合整理自: ABSDABSD总体流程MDA特定领域软件架构(DSSA)软件产品线软件架构复用


知识图谱

架构方法与过程
├── 1. ABSD(基于架构的软件开发方法)⭐⭐⭐
│   ├── 核心思想:业务+功能+质量驱动
│   ├── 三大基础:功能分解/架构风格/软件模板
│   └── 总体流程:需求→设计→文档化→复审→实现→演化
├── 2. MDA(模型驱动架构)⭐⭐
│   ├── CIM(计算无关模型)
│   ├── PIM(平台独立模型)
│   ├── PSM(平台相关模型)
│   └── Code(代码)
├── 3. DSSA(特定领域软件架构)⭐⭐
│   ├── 领域分析→领域设计→领域实现
│   ├── 垂直域 vs 水平域
│   └── 四类人员角色
├── 4. 软件产品线 ⭐
│   ├── 核心资源库 + 产品集合
│   └── 成功因素
└── 5. 软件架构复用 ⭐
    ├── 复用类型:水平/垂直/机会/系统
    └── 历史演进:函数库→类库→构件库→服务库

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

这是架构方法与过程中的最核心考点

1.1 核心思想

ABSD(Architecture-Based Software Design)是一种架构驱动的方法,强调由以下三个因素共同驱动架构设计:

业务需求(商业目标)

功能需求 → 通过用例获取

质量需求 → 通过场景获取(刺激+环境+响应)

架构设计(ABSD)

1.2 三大基础

基础说明
功能分解将系统按功能拆分,模块化设计(高内聚低耦合)
架构风格选择选择合适的架构风格满足业务和质量需求
软件模板(模式)使用已有架构模板或设计模型,提高复用性

1.3 需求获取方式

需求类型获取方式示例
功能需求用例(Use Case)用户登录、订单查询
质量需求场景(Scenario)刺激+环境+响应

质量需求场景示例:

  • 刺激:用户发起查询请求
  • 环境:正常运行状态
  • 响应:响应时间 ≤ 10ms

二、ABSD 总体流程 ⭐⭐⭐

2.1 六大阶段

架构需求 → 架构设计 → 架构文档化 → 架构复审 → 架构实现 → 架构演化
   ↑                                                      |
   └──────────────────── 可反馈迭代 ←──────────────────────┘
阶段核心任务一句话理解
架构需求识别构件找构件(从类到构件)
架构设计构建系统结构组织构件(构件如何协作)
架构文档化记录架构写文档(规格说明书+质量设计说明书)
架构复审发现问题查问题(评审架构是否满足需求)
架构实现编码实现落地构件(编码+测试+集成)
架构演化持续优化优化构件(适应需求变化)

2.2 ABSD 核心链条

需求 → 类 → 构件 → 架构
  • 需求阶段: 从需求中识别类 → 对类分组 → 打包成构件
  • 设计阶段: 选择架构模型 → 映射构件 → 分析交互 → 生成架构

2.3 架构文档化

输出文档:

文档内容
架构规格说明书系统结构
质量设计说明书质量需求

关键要求:

  • 面向用户编写
  • 分发给相关人员
  • 保证文档最新
  • 文档质量直接影响架构成功

2.4 整体逻辑记忆

需求阶段 → 找构件
设计阶段 → 组织构件
实现阶段 → 落地构件
演化阶段 → 优化构件

三、MDA(模型驱动架构)⭐⭐

3.1 核心概念

术语含义
Model客观事物的抽象表示
Architecture系统的部件、连接件及约束规则
Model-Driven使用模型完成分析、设计、构建、部署、维护

3.2 三大目标

目标英文含义
可移植性Portability系统可在不同平台运行
互通性Interoperability系统间可互操作
可重用性Reusability模型和代码可重复使用

3.3 四层模型 ⭐⭐

CIM → PIM → PSM → Code
业务需求   平台无关   平台相关   源代码
模型全称含义关注点
CIMComputation Independent Model计算无关模型业务需求和系统功能需求
PIMPlatform Independent Model平台独立模型高抽象层次,独立于实现技术
PSMPlatform Specific Model平台相关模型为特定实现技术量身定做
CodeSource Code源代码每个PSM转换为代码

转换关系:

CIM(业务分析)

PIM(平台无关设计)
  ↓ 可转换为多个
PSM1(Java平台)  PSM2(.NET平台)  PSM3(Python平台)
  ↓                ↓                ↓
Code1             Code2             Code3

记忆要点:

  • CIM = 业务视角(不关心技术)
  • PIM = 设计视角(不关心平台)
  • PSM = 实现视角(绑定具体平台)
  • Code = 编码视角(最终代码)

四、DSSA(特定领域软件架构)⭐⭐

4.1 定义

DSSA(Domain-Specific Software Architecture)以特定问题领域为对象,形成由领域模型、参考需求、参考架构组成的开发基础架构,支持一个特定领域中多个应用的生成。

4.2 领域类型

类型说明示例
垂直域某一狭小领域或某个行业的共性金融风控、医疗影像
水平域多个行业可通用的共性用户管理、日志系统

4.3 三大活动

领域分析 → 领域设计 → 领域实现
  ↓          ↓          ↓
建立领域模型  获得DSSA   开发可复用信息
  ↑                      |
  └────── 逐渐求精 ←──────┘
活动核心任务输出
领域分析建立领域模型领域模型
领域设计获得DSSA参考架构
领域实现开发和组织可复用信息可复用构件

4.4 四类人员角色 ⭐

人员任务
领域专家提供需求规约和实现知识,复审领域模型和DSSA
领域分析人员控制领域分析过程,知识获取,组织领域模型
领域设计人员控制设计过程,开发DSSA,建立模型与DSSA联系
领域实现人员开发可重用构件,提取构件,建立构件与DSSA联系

记忆口诀: “专家提需求,分析建模型,设计出架构,实现造构件”

4.5 建立过程

领域范围

定义领域特定元素

定义领域特定的设计和实现需求约束

定义领域模型和架构

生产、收集可复用的资产

(递归、并发、螺旋)→ 回到领域范围

4.6 领域驱动设计(DDD)

定义: 通过将软件实现与持续进化的领域模型结合来处理复杂业务需求。

核心: 聚焦核心领域逻辑,强调业务与技术专家建立统一语言,利用分层架构分离业务与技术复杂度。

子域类型:

子域类型定义投入精力示例
核心域核心竞争力70%直播、提问
支持域核心必要的支撑20%考勤、管理
通用域行业通用,可复用10%登录、通知、支付

限界上下文:

  • 定义一个特定边界,在此边界内领域模型拥有明确、无歧义的含义
  • 作用:解耦与内聚、消除歧义、明确集成关系

五、软件产品线 ⭐

5.1 概念

软件产品线 = 核心资源库(领域工程所有结果的集合)+ 产品集合

5.2 特点

特点说明
核心资源产品构造的基础
产品集合基于核心资源构建的产品族
过程驱动按照定义好的过程开发
特定领域针对特定业务领域
技术支持需要工具和基础设施支持
以架构为中心架构是核心资产

5.3 成功因素

  1. 对该领域具备长期和深厚的经验
  2. 一个用于构件产品的好的核心资源库
  3. 好的产品线架构
  4. 好的管理

六、软件架构复用 ⭐

6.1 概念

系统化的开发过程,通过识别、分析、分类、获取和修改软件实体,以便在不同软件开发中重复使用

6.2 复用历史演进

函数库 → 类库 → 构件库 → 服务库

6.3 复用类型

类型说明示例
水平复用不分行业领域,通用日志工具、加密库
垂直复用分行业领域,专用金融风控模型
机会复用开发中发现可复用资产就复用临时复用已有代码
系统复用开发前规划,决定哪些需要复用有计划的复用策略

6.4 基本过程

  1. 构造/获取可复用资产
  2. 管理资产
  3. 选择可复用的部分

七、方法横向对比

7.1 ABSD vs MDA vs DSSA

维度ABSDMDADSSA
核心架构驱动设计模型驱动转换领域特定架构
关注点业务+功能+质量模型层次转换领域复用
驱动力需求驱动模型驱动领域驱动
输出架构设计文档CIM→PIM→PSM→Code领域模型+参考架构
适用场景通用软件开发跨平台系统开发特定领域产品族

7.2 软件产品线 vs DSSA

维度软件产品线DSSA
核心核心资源库 + 产品集合领域模型 + 参考架构
范围产品族开发特定领域架构
关系DSSA 是产品线的技术基础产品线是 DSSA 的应用形式

八、高频考点速记

8.1 选择题高频

  1. ABSD三大基础:功能分解、架构风格选择、软件模板
  2. ABSD核心链条:需求→类→构件→架构
  3. ABSD六大阶段:需求→设计→文档化→复审→实现→演化
  4. MDA四层模型:CIM→PIM→PSM→Code
  5. DSSA三大活动:领域分析→领域设计→领域实现
  6. DSSA四类人员:专家、分析人员、设计人员、实现人员
  7. 复用类型:水平/垂直/机会/系统
  8. 软件产品线 = 核心资源库 + 产品集合

8.2 案例分析高频

  1. ABSD流程的应用(识别构件→组织构件→实现构件)
  2. 质量需求的场景描述(刺激+环境+响应)
  3. MDA模型转换过程
  4. DSSA的领域分析和架构设计
  5. 架构复用策略的选择

8.3 论文写作素材

  • ABSD方法在项目中的应用
  • 基于DSSA的领域架构设计
  • 软件产品线的实践经验
  • 架构复用的策略和效果

九、速记口诀

“ABSD三驱动,六阶段找组落优;MDA四层转,CIM PIM PSM Code;DSSA三活动,分析设计实现走;产品线两资源,核心库加产品集”

分解记忆:

ABSD:

  • 三驱动 = 业务 + 功能 + 质量
  • 六阶段 = 需求→设计→文档化→复审→实现→演化
  • 核心逻辑 = 找构件→组织构件→落地构件→优化构件

MDA:

  • 四层 = CIM → PIM → PSM → Code
  • 目标 = 可移植性 + 互通性 + 可重用性

DSSA:

  • 三活动 = 领域分析→领域设计→领域实现
  • 两域 = 垂直域(行业专用)+ 水平域(通用)
  • 四人员 = 专家提需求,分析建模型,设计出架构,实现造构件

相关笔记