知识卡片
特定领域软件架构与软件产品线复用
内容
软件产品线指一组具有公共系统需求集的软件系统,它们都是根据基本用户需求,对同一个标准产品线架构进行定制,把可重用组件与系统独有部分集成而得到的——同一套架构可以派生出多个功能不同的具体系统,在产品族之间共享架构和一组可重用组件,从而降低整体的开发和维护成本。软件产品线之所以能够成立,依托的是”特定领域软件架构”(DSSA,Domain Specific Software Architecture)这一更底层的研究基础:业界对DSSA虽无统一定义,但公认它必须具备四个特征——①有一个严格定义的问题域/解域(不是漫无边界的通用架构);②具有普遍性,能用于该领域中某个特定应用的开发(不是只服务单一项目的一次性设计);③对整个领域做出适度的抽象(既不能抽象不足导致无法复用,也不能抽象过度导致失去指导意义);④具备该领域固定的、典型的、可在开发过程中复用的元素。这四个特征揭示了DSSA与通用架构框架的本质区别:通用架构框架(如组件/连接件/配置)追求跨领域的普适性,而DSSA刻意放弃这种普适性、换取在单一领域内更高的复用效率和更贴近领域语义的抽象粒度——这也是为什么美国国防部支持的DSSA、STARS两个项目分别从架构和重用两个角度共同推动了软件产品线的发展,两者是同一条思路的一体两面。
参考来源
- 位置:《软件架构理论与实践》第1章《软件架构概述》"1.4.1 软件架构理论和方法研究"节之"(6)软件产品线架构"(源文件:_epub-src/OEBPS/text00009.html)
- 结论依据:原文说明软件产品线"根据基本的用户需求对标准的产品线架构进行定制,将可重用组件与系统独有的部分集成而得到",并列出DSSA公认必须具备的四个特征,直接支撑本卡片结论。
- 原始内容:尽管业界对DSSA尚无统一的定义,但各种观点中DSSA都必须具备以下4个特征:①一个严格定义的问题域/解域;②具有普遍性,使其可以用于领域中某个特定应用的开发;③对整个领域的适度抽象;④具备该领域固定的、典型的、在开发过程中可复用的元素。