Appearance
考点清单
- [x] ABSD(基于架构的软件设计)— 六个子过程
- [x] DSSA(特定领域软件架构)— 领域分析/设计/实现
- [x] 4+1 视图模型
- [x] 架构文档化
- [x] 软件架构复用(机会复用/系统复用/水平式/垂直式)
- [x] 架构复审与演化
笔记
一、ABSD — 基于架构的软件设计
ABSD 方法是由商业、质量和功能需求的组合驱动的,是一个自顶向下、递归细化的方法,直到能产生软件构件和类。
ABSD 方法的三个基础:
- 对系统进行功能分解
- 采用架构策略实现质量属性与商业需求
- 采用软件模板设计软件结构
六个子过程:
- 架构需求 — 获取需求
- 架构设计 — 设计方案
- 架构文档化 — 输出架构规格说明和测试架构需求的质量设计说明书
- 架构复审 — 标识潜在风险,及早发现架构设计中的缺陷和错误
- 架构实现 — 编码实现
- 架构演化 — 应对需求变化,修改应用架构满足新需求
二、DSSA — 特定领域软件架构
DSSA 是特定应用领域中为一组应用提供组织结构参考的标准软件架构。
| 阶段 | 目标 | 产出 |
|---|---|---|
| 领域分析 | 获得领域模型,描述领域中系统间的共同需求 | 领域模型 |
| 领域设计 | 获得特定领域软件架构(DSSA) | 领域架构 |
| 领域实现 | 开发和组织可重用信息,实现基础软件架构 | 可重用构件/资产 |
四类参与角色:
- 领域专家 — 提供领域知识
- 领域分析者 — 控制领域分析过程,进行知识获取,组织领域模型
- 领域设计者 — 根据领域模型开发领域设计,验证设计的准确性和一致性
- 领域实现者 — 实现可重用资产
DSSA 三级层次:
- 领域开发环境 → 应用工程师主要在领域特定应用开发环境中工作
- 领域特定应用开发环境
- 应用执行环境
垂直域 vs 水平域:
- 垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统
- 水平域:定义了多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统族
三、4+1 视图模型
4+1 视图模型从多个视图描述软件体系结构,核心思想是关注点分离。
| 视图 | 作用 | 关注点 |
|---|---|---|
| 逻辑视图 | 描述对象模型,说明系统应提供哪些服务 | 功能需求(用户视角) |
| 过程视图 | 捕捉设计的并发和同步特性 | 系统行为特性(动态视角) |
| 开发视图 | 描述开发环境中软件的静态组织结构 | 模块组织 |
| 物理视图 | 描述软件到硬件的映射 | 部署拓扑 |
| 场景(+1) | 用例视图,验证其他视图一致性 | 统一场景 |
视图与视角关系:
- 静态视角(展示功能组织)→ 判断质量特性
- 动态视角(展示并发行为)→ 判断系统行为特性
- 四个视图:逻辑视图、进程视图、实现视图、配置视图
- 使用逻辑视图记录设计元素的功能和概念接口
四、架构文档化
架构文档化过程的主要输出结果是架构规格说明书和测试架构需求的质量设计说明书。
文档化原则:
- 从使用者的角度书写文档
- 随时保证文档是最新的
- 将文档分发给相关人员
- 针对不同背景的人员书写文档的方式不同
五、软件复用
机会复用 vs 系统复用:
- 机会复用(发现复用):开发过程中,只要发现有可复用的资产,就进行复用
- 系统复用(计划复用):开发之前就进行规划,决定哪些需要复用
水平式重用 vs 垂直式重用:
| 类型 | 特点 | 典型代表 |
|---|---|---|
| 水平式重用 | 跨领域通用(应用领域无关),提供基础功能 | 标准函数库、通用类库 |
| 垂直式重用 | 面向特定领域(领域相关),包含领域知识 | 医学词汇表、电子商务标准、网银支付接口 |
复用过程的三个主要阶段:
- 构造/获取可复用的软件资产
- 管理可复用资产
- 使用可复用资产
六、架构复审与演化
架构复审目的: 标识潜在风险,及早发现架构设计中的缺陷和错误。复审过程中主要由用户代表与领域专家决定架构是否满足需求、质量需求是否在设计中得到体现。
架构演化: 针对用户需求变化,修改应用架构满足新的需求。
架构描述与需求对应:
- 架构 → 用视角与视图描述
- 功能需求 → 用用例描述
- 质量需求 → 用质量场景描述