复用与产品线
基于产品线的架构
特定领域软件架构
1、DSSA的定义
架构的本质在于其抽象性,包括连个方面:业务抽象性和技术抽象性、其中业务抽象面向特定的应用领域。
特定领域软件架构(Domain Specific Software Architecture,DSSA)可以看成产品线的一个方法它的目标就是支持在一个特定领域中有多个应用的生成。
DSSA特征:
(1)一个严格定义的问题域或解决域;
(2)具有普遍性,使其可以用于领域中某个特定应用的开发;
(3)对整个领域的合适程度的抽象;
(4)具备该领域固定的、典型的在开发过程中的可复用元素。
从功能覆盖范围角度理解DSSA中领域的含义两种方法:
(1)垂直域。定义了一个特定的系统族,导出在该领域中可作为系统的可行解决方案的一个通用软件架构。
(2)水平域。定义了在多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统(族)的特定部分功能。
在垂直域上定义的DSSA只能应用于一个成熟的稳定的领域,但这个条件比较难以满足:若将领域分割为较小的范围,则更相对容易,也容易得到一个一致的解决方案。
对于中等复杂项目:应该在系统的领域模型中找到 50~100
2、DSSA的基本活动
实施DSSA的过程中包含了一些基本的活动。虽然具体的DSSA方法可能定义不同的概念、步骤和产品等,主要分三个阶段。
(1)领域分析
这个阶段的主要目的是获得领域模型。
领域模型描述领域中系统之间共同的需求,即领域模型所描述的需求为领域需求。这个阶段中收线要进行一些准备性的活动面包括定义领域的边界。从而明确分析的对象;识别信息源,整个领域工程过程中信息的来源,可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录,在此基础上就可以分析领域中系统需求,确定那些需求是领域中的系统广泛共享,从而建立领域模型。当领域中存在大量系统时,需要选择他们的一个子集作为样本系统。
(2)领域设计
这个阶段设计的目标是获得DSSA。
(3)领域实现
这个阶段的主要目标是依据领域模型和DSSA开发和组织可重用信息。
3、参与DSSA的人员
参与DSSA的人员可以划分为四种角色:领域专家、领域分析人员、领域设计人员、领域实现人员。
领域专家:
领域专家可能包括该领域中的系统有经验的用户,从事该领域中的系统的需求分析,设计,实现及项目管理的有经验的软件工程师。
主要任务:提供关于领域中系统的需求规约和实现的知识,帮助组织规范的,一致的领域字典,帮助选择样本系统作为领域工程的依据,复审领域模型,DSSA等领域工程产品。
领域专家应该熟悉该领域系统中的软件设计和实现,硬件限制,未来用户需求及技术走向。
领域分析人员:
领域分析人员应该具有工程知识背景,有经验的系统分析人员。应属虚软件重用和领域分析方法:熟悉进行知识获取和知识表示所需的技术、语言和工具;应该具有一定的该领域的经验,以便分析领域中的问题及与领域专家进行交互;应具有较高的进行抽象、类比和关联的能力;应该具有较高的与他人交互和合作的能力。
主要任务:控制整个领域分析过程,进行知识获取,将获取的只是组织到领域模型中,根据现有系统,标准规范等验证领域模型的准确性和一致性,维护领域模型。
领域设计人员:
领域设计人员应该由有经验的软件设计人员来担任。
主要任务:控制整个软件设计过程,根据领域模型和现有的系统开发出DSSA,对DSSA的准确性和一致性进行验证,建立领域模型和DSSA之间的联系。
领域设计人员应该熟悉重用和领域设计方法;熟悉软件设计方法;熟悉软件设计方法,应该有一定的该领域的经验,以便于分析领域中的问题与领域专家进行交互。
领域实现人员:
领域是实现人员应该由经验的程序设计人员来担任。领域实现人员的主要任务包括根据领域模型和DSSA,或者从头可重用构件,或者利用软件再工程技术从现有系统中提取可重用构建,可对重用构建进行验证,建立DSSA与可重用构建之间的联系。
领域实现人员应熟悉软件重用、领域实现及软件在工程技术;熟悉程序设计;具有一定的该领域的经验。
4、DSSA的建立过程
DSSA 五个阶段特点:每一步骤可以进一步划分为一些步骤或子阶段
DSSA建立过程五个阶段:
- 定义领域范围
- 定于领域特定的元素
- 定于领域特定的设计和实现需求约束
- 定义领域模型和架构
- 产生,搜集可重用的产品单元。
每个阶段包括一组需要回答的问题,一组需要输入,一组将产生的输入和验证标准。过程是并发(concurrent),递归(recusive)反复(Iterative)螺旋形。目的是将用的需求映射为基于实现限制集合的软件需求,这些定义了DSSA。在此之前的领域工程和领域分析过程并没有对系统的功能呢个性需求和实现限制进行区分,而是统称为"需求"