DSSA / 软件产品线
软件复用方向,案例常考"领域工程 + 应用工程"两阶段、产品线核心活动
一、DSSA 定义 ⭐⭐⭐
DSSA(Domain-Specific Software Architecture),领域特定软件架构:在 一个特定应用领域内,为一组应用提供组织结构参考的标准软件架构。
3 个核心特征
- 面向特定领域(有领域知识)
- 有领域参考体系结构、构件库
- 有 领域专家 参与
4 个基本活动(必背)
- 领域分析:建立 领域模型,描述共性和可变性
- 领域设计:形成 DSSA(参考架构)
- 领域实现:开发 可重用构件库
- 领域验证:在多个应用中验证
口诀:"分 · 设 · 现 · 验"四步建领域
二、DSSA 的 3 层架构
- 领域开发环境(领域专家用):领域分析、设计、构件库构建
- 应用开发环境(应用工程师用):基于 DSSA 快速组装应用
- 应用执行环境(运行时):支持应用部署运行
三、参与角色
- 领域专家(熟悉业务领域)
- 领域分析人员(建模)
- 领域设计人员(架构师)
- 领域实现人员(开发构件)
四、软件产品线 SPL ⭐⭐⭐
软件产品线(Software Product Line):在共同的核心资产基础上,通过定制方式开发一族相关产品。
双过程模型(必背)
两个核心过程
领域工程(Domain Engineering):构建可复用核心资产
↓ 提供
应用工程(Application Engineering):基于核心资产开发具体产品
产品线的核心资产
- 产品线架构
- 可重用构件
- 需求文档
- 设计文档、测试用例
- 过程模型
产品线的 4 个基本活动
- 核心资源开发(领域工程)
- 产品开发(应用工程)
- 管理(技术管理 + 组织管理)
- 建立产品线计划
五、软件复用的 4 个层次
- 代码复用:库、子程序
- 设计复用:模式、模板
- 架构复用:DSSA、产品线架构
- 分析复用:需求规约、领域模型
复用收益(论文常用)
- 提高开发效率,缩短工期
- 降低成本
- 提升质量(经验证的资产)
- 提升一致性
- 降低维护成本
六、答题模板
题型:为什么采用产品线 / DSSA?
- 企业内 多个相似产品 重复开发,效率低
- 通过 DSSA / 产品线,沉淀 核心资产 + 参考架构
- 新产品基于核心资产 组装/定制,开发效率提升 N 倍
- 质量更高,因为构件经过多次验证
- 风险:前期投入大,需要领域专家、需要组织变革
📘 常考补充 · DSSA / 产品线 完