软件架构复用是系统化的软件开发过程:开发一组基本的软件构件模块,以覆盖不同需求/体系结构之间的相似性,提高系统开发的效率、质量和性能。
| 类型 | 含义 |
|---|---|
| 机会复用 | 开发过程中,只要发现有可复用的资产就复用(被动、随机) |
| 系统复用 | 开发之前进行规划,决定哪些复用(主动、系统化) |
复用的原因:减少开发工作量、缩短开发时间、降低开发成本、提高生产力、提高产品质量、更好的互操作性、使维护更简单。
可复用资产包括:需求、架构设计、元素、建模与分析、测试、项目规划、过程+方法+工具、人员、样本系统、缺陷消除。一般形式的复用:函数的复用、库的复用、面向对象中类/接口/包的复用(趋势:从小粒度代码复用向架构级大粒度资产复用演进)。
DSSA(Domain Specific Software Architecture)是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构,即用于某一类特定应用领域的标准软件构件集合。目标:支持在一个特定领域中多个应用的生成。
参与 DSSA 的四种人员:领域专家(提供领域知识/需求规约)、领域分析人员(知识工程背景的有经验的系统分析员)、领域设计人员(有经验的软件设计人员)、领域实现人员(有经验的程序员)。
建立过程是一个并发的、递归的、反复的、螺旋过程,分五个阶段:① 定义领域范围 → ② 定义领域特定元素(领域字典、术语)→ ③ 定义领域特定的设计和实现约束 → ④ 定义领域模型和体系结构 → ⑤ 产生、搜集可重用的产品单元。
| 三层次模型 | 对应角色 | 内容 |
|---|---|---|
| 领域开发环境 | 领域架构师 | 产出核心通用架构:参考需求、参考架构、领域模型、开发工具 |
| 领域特定应用开发环境 | 应用工程师 | 根据具体环境将核心架构实例化(真题考点:应用工程师在此层工作) |
| 应用执行环境 | 操作员 | 运行实例化后的应用 |