乐于分享
好东西不私藏

【2610架构】04 软件架构复用

【2610架构】04 软件架构复用
大家好,我是轩辕,我们通过一系列内容学习软件架构设计师相关内容,这一篇重点学习软件架构复用相关内容等。

1.5. 软件架构复用(★★)

1.软件架构复用的定义及分类

软件产品线:一组共享核心资产的软件系统,通过复用核心资产(如架构、设计方案、测试计划等)提高开发效率、降低成本、缩短上市时间。
软件复用:通过开发、分类、修改和管理软件实体,使其在不同系统中重复使用,提高开发效率和质量。
复用类型:
♦机会复用:在开发过程中发现可复用资产即进行复用。
♦系统复用:在开发前规划好哪些资产需要复用。

2.软件架构复用的对象及形式

可复用的资产包括:
需求:相似系统间的需求可复用(如网上银行vs. 柜面交易)。
架构设计:复用经过验证的架构可减少设计时间与风险。
元素(组件):不仅是代码复用,还包括可行设计方案。
建模与分析:如性能分析、容错方案、负载均衡方案等。
测试:测试用例、测试数据、测试工具等可复用。
项目规划:复用已有项目的预算、进度、团队安排等经验。
过程、方法与工具:建立可复用的编码标准、开发流程等。
人员:培训后的开发人员适用于整个产品线的多个产品。
样本系统:已投产的产品可作为设计和演示原型。
缺陷消除:复用已发现并修复的缺陷,提高新系统质量。
复用形式:函数、库(C/C++)、类、接口、包等,趋势是从小粒度向大粒度发展。

3.软件架构复用的基本过程(★★★)

复用分为三个阶段:
(1)获取可复用的软件资产:确保资产可靠、可广泛使用、易理解和修改。
(2)管理可复用资产:
构件库(Component Library):存储、管理、检索和维护复用构件。
关键问题:构件分类(按特定方式组织构件)、构件检索(快速查找符合需求的构件)。
(3)使用可复用资产:
获取需求→ 检索复用库 → 选取可复用资产 → 修改、扩展、配置 → 组装、集成形成最终系统。
软件架构复用的基本过程

1.6. DSSA(领域特定软件体系结构)(★★★★)

DSSA(Domain Specific Software Architecture)是为特定应用领域提供标准化软件体系结构的一种方法。其核心目的是在某个特定领域内,为一组相关应用提供可复用的架构模式和构件组织方式。

1.DSSA的核心特征

DSSA 的定义和描述虽然各有不同,但其具有以下几个必备特征:
严格定义的问题域和解域:明确指定适用范围和所要解决的问题。
具备普遍性:能够支持该领域中多个应用的开发。
对领域构件组织模型的恰当抽象:形成可复用的软件架构模式。
可重用元素:包括固定的、典型的领域内可重用开发组件。

2.DSSA的领域分类

从功能覆盖范围来看,DSSA 可分为两种类型:
垂直领域(Vertical Domain)
针对特定系统族,定义一组通用的软件架构。适用于某个成熟、稳定的领域,但构建难度较大。
水平领域(Horizontal Domain)
涉及多个系统和系统族的共有功能部分。主要在子系统级别上进行功能复用,更易形成一致的解决方案。

3.DSSA的基本活动

DSSA 的实施主要包括三个阶段:
(1) 领域分析
主要目标:获得领域模型,识别领域中的共性需求。
关键活动:
♦确定领域边界,明确分析对象。
♦识别信息源,如现有系统、技术文献、专家意见、市场分析等。
♦选取样本系统,分析共性和变化性需求,构建领域模型。
(2) 领域设计
主要目标:获得DSSA,提供多个系统的通用解决方案。
关键活动:
♦基于领域模型,设计满足领域需求的 DSSA。
♦设计具有变更适应性的架构,如可选(Optional)和多选一(Alternative)方案。
♦形成可复用的基础设施标准,支持多个系统的开发。
(3) 领域实现
主要目标:依据领域模型和DSSA开发和组织可重用信息。支持软件复用。
关键活动:
♦从现有系统提取或新开发可重用构件。
♦组织可重用构件,定义其复用方式和时机。
♦验证可重用构件的适用性,确保架构可行性。
注意:DSSA 过程是迭代的,需不断优化和调整每个阶段的成果。

4.DSSA的人员角色

DSSA 的实施涉及以下四类人员:
(1) 领域专家
可能包括该领域中系统的有经验的用户、从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等。
职责:提供领域知识,确保领域模型和DSSA 的合理性。
要求:熟悉领域内系统的需求、设计、实现及未来发展方向。
(2) 领域分析人员
应由具有知识工程背景的有经验的系统分析员来担任。
职责:负责领域分析,构建领域模型。获取和组织领域知识,维护模型的一致性。
要求:熟悉软件重用、领域分析方法、知识获取技术。具备抽象建模能力和良好的沟通能力。
(3) 领域设计人员
应由有经验的软件设计人员来担任。
职责:负责DSSA 设计,确保其准确性和一致性。关联领域模型与 DSSA,形成架构标准。
要求:熟悉软件设计、重用技术和领域知识。
(4) 领域实现人员
应由有经验的程序设计人员来担任。
职责:开发或提取可重用构件,验证其可用性。建立DSSA 与可重用构件的联系。
要求:熟悉软件实现、软件再工程技术及程序设计。

5.DSSA的建立过程(★★★★)

DSSA 的建立过程是一个并发的、递归的、反复的过程,是螺旋模型,需要不断迭代以增加细节。
DSSA 的建立过程分为五个阶段
(1)定义领域范围
确定所研究领域的边界,明确感兴趣的领域内容和过程终止条件。
识别领域中的应用,并收集用户需求。
(2)定义领域特定的元素
编制领域字典和领域术语同义词词典,统一领域术语。
识别领域内应用之间的共性和差异性,增加高层模型的细节。
(3)定义领域特定的设计和实现需求约束
识别影响设计和实现的约束条件,并记录这些约束对决策的影响。
记录处理约束过程中遇到的问题及讨论内容。
(4)定义领域模型和体系结构
设计通用的体系结构,明确各模块或构件的语法和语义
形成DSSA 结构,确保其适应该领域内多个系统的需求。
(5)产生、搜集可重用的产品单元
开发或提取可重用构件,形成可用于新应用开发的可重用基础设施。

- DSSA 的三层次系统模型

以上内容希望能为大家备考提供帮助。刷题小程序

感谢大家长期以来的支持,有任何问题或想了解更多关于架构、系分、高项、软设的内容,直接私信我。我们快来一起进步吧!

软考学习,请关注公众号,进群加微信

私信:架构、系分、高项、软设

相关学习资料