系统架构设计师备考第62天——嵌入式系统软件架构设计方法
·
一、基于架构的软件设计开发方法(ABSD)
1. 核心思想
- 驱动因素:由业务需求、质量属性(可靠性/安全性)和功能需求共同驱动架构设计。
- 开发模式:自顶向下递归细化,需求分析与设计活动并行迭代。
- 关键工具:使用软件架构模板规范设计过程,降低随意性。
2. 嵌入式系统适配要点
| 特性 | 设计策略 |
|---|---|
| 硬件关联性 | 需求从系统角度分解,关注硬件约束(如温度适应性) |
| 可复用性 | 通过架构模板实现模块化复用 |
| 可移植性 | 抽象硬件差异,定义标准化接口 |
典型考题:
ABSD方法如何解决嵌入式系统的硬件关联性问题?
答:从系统级需求分解,明确硬件约束(如环境温度),通过抽象层隔离硬件差异。
二、属性驱动的软件设计方法(ADD)
1. 质量属性与场景
- 质量属性分类:
- 核心属性:可靠性、安全性、实时性、可维护性。
- 场景六要素:刺激源、刺激、环境、制品、响应、响应度量。
- 质量场景示例(可用性):
要素 值举例 刺激源 系统内部传感器故障 响应 记录故障并切换备份模块 响应度量 系统降级运行时间 ≤ 50ms
2. ADD开发流程
| 步骤 | 关键行动 | 输出产物 |
|---|---|---|
| 1. 评审输入 | 确认架构驱动因子(质量场景/功能/约束) | 已验证的需求清单 |
| 2. 选择驱动因子 | 确定当前迭代目标(如满足性能场景) | 迭代目标文档 |
| 3. 细化系统元素 | 分解模块(如任务调度子系统) | 模块分解图 |
| 4. 选择设计概念 | 采用分层架构或半同步/半异步模式 | 架构模式选择报告 |
| 5. 实例化元素 | 定义层数、分配职责(如表示层/业务层) | 元素接口规范 |
| 6. 草拟视图 | 绘制任务架构图(图16-26) | 架构视图草案 |
| 7. 分析评审 | 验证是否满足驱动因子,风险评估 | 架构评审报告 |
考点:ADD通过递归分解满足质量场景,步骤4中“设计概念”指架构模式(如分层)。
三、实时系统设计方法(DARTS)
1. 核心方法论
- 任务分解:将系统拆分为并发任务,定义任务间接口(消息/事件/IHM)。
- 任务结构化标准:
- 时间顺序:按功能执行时序分组任务(如工业控制流水线)。
- 接口类型:消息通信(紧耦合/松耦合)、事件同步、信息隐藏模块(IHM)。
2. 设计工具
- 任务架构图:可视化并发任务及接口。
- 信息隐藏(IHM):封装共享数据存储,同步多任务访问。
3. 优劣分析
| 优势 | 不足 |
|---|---|
| 强调并发任务分解,适合实时系统 | 依赖RTSA阶段质量,需求不清时设计困难 |
| 提供详细接口定义指南 | 未完全实现数据封装(不如OOD彻底) |
典型考题:
DARTS方法中IHM的作用是什么?
答:封装共享数据存储,通过同步机制确保多任务访问的安全性。
四、嵌入式软件架构案例分析:鸿蒙OS
1. 分层架构
| 层级 | 核心组件 | 技术特性 |
|---|---|---|
| 内核层 | 多内核(LiteOS/Linux)、驱动框架(HDF) | 自适应裁剪,支持不同设备资源 |
| 系统服务层 | 分布式软总线、方舟运行时、安全子系统 | 按设备形态裁剪子系统(如穿戴设备专有服务) |
| 框架层 | Ability框架、多语言API(Java/C++/JS) | 一次开发多端部署 |
| 应用层 | FA(有UI)、PA(无UI后台任务) | 跨设备调度与分发 |
2. 四大技术突破
- 分布式架构:
- 软总线:设备自动发现与低时延通信(≤20ms)。
- 设备虚拟化:多设备融合为“超级终端”。
- 确定时延引擎:
- 优先级任务调度,应用响应时延降低25.7%。
- 微内核安全:
- 形式化验证TEE微内核,通过CC EAL 5+认证。
- 代码量仅为Linux内核的1/1000,攻击面极小。
- 统一IDE:
- 方舟编译器静态化Java程序,支持多语言统一编译。
3. 安全机制
- 三层防护:
- 多端协同身份认证 → “正确的人”。
- 可信执行环境(TEE) → “正确的设备”。
- 数据分级管理 → “正确使用数据”。
- 证书传输:设备间TEE通道加密(图16-28)。
考点:鸿蒙的分布式软总线实现跨设备通信,微内核通过形式化方法提升安全等级。
五、考点与考题汇总
- ABSD递归细化:需求分析与设计并行迭代,降低架构随意性。
- ADD质量场景六要素:刺激源、刺激、环境、制品、响应、响应度量(表16-4)。
- DARTS任务接口:消息通信(紧/松耦合)、事件同步、IHM数据封装。
- 鸿蒙分布式能力:软总线、设备虚拟化、数据管理、任务调度四大核心。
- 微内核安全优势:代码量小(千分之一)、形式化验证、TEE防护。
更多推荐
所有评论(0)