DSSA特定领域软件体系结构

1、何为DSSA架构

特定领域软件架构(Domain Specific Software Architecture,DSSA)是一种有效实现特定领域软件重用的手段。简单地说,DSSA就是在一个特定应用领域为一组应用提供组织结构参考的标准软件体系结构。按照Tracz的说法,DSSA就是一个特定的问题领域中由领域模型、参考需求、参考架构等组成的开发基础架构,其目标就是支持一个特定领域中多个应用的生成。特定领域软件架构能够看做开发产品线的一个方法或理论,它的目标就是支持在一个特定领域中有多个应用的生成。并发

 

2、DSSA与体系结构之间有何关联?工具

一、DSSA是以问题域为出发点,而软件体系结构是以解决域为出发点的;设计

二、DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但能够同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构专家知识的组织时能够扩展到多个应用领域;对象

三、DSSA的特定领域参考体系结构一般选一个或多个体系结构风格,并设计一个专用的体系结构分析设计工具;blog

四、体系结构风格的定义和应用领域是直交的,提取的设计知识比用DSSA提取的设计专家知识的应用要普遍。递归

 

3、DSSA的特征ci

(1)一个严格定义的问题域和问题解域。项目管理

(2)具备广泛性。使其能够用于领域中某个特定应用的开发。开发

(3)对整个领域的构件组织模型的恰当抽象。

(4)具有该领域固定的、典型的在开发过程当中可重用元素。

 

4、DSSA领域的含义

从功能覆盖的范围角度一般有两种理解DSSA中领域的含义的方式。

(1)垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可做为系统的可行解决方案的一个通用软件体系结构。

(2)水平域:定义了在多个系统和多个系统族中功能区域的共有部分。在子系统级上涵盖多个系统族的特定部分功能。

在垂直域上定义的DSSA只能应用于一个成熟的、稳定的领域,但这个条件比较难以知足:若将领域分割成较小的范围,则更相对容易,也容易获得一个一致的解决方案。

 

5、DSSA的基本活动

实施DSSA的过程当中包含了一些基本的活动。虽然具体的DSSA方法可能定义不一样的概念、步骤和产品等,但这些基本活动大致上是一致的。

 

1.领域分析

 

这个阶段的主要目标是得到领域模型。领域模型描述领域中系统之间的共同的需求,即领域模型所描述的需求为领域需求。在这个阶段中首先要进行一些准备性的活动,包括定义领域的边界。从而明确分析的对象;识别信息源,整个领域工程过程当中信息的来源,可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等,在此基础上就能够分析领域中系统的需求,肯定哪些需求是领域中的系统普遍共享的,从而创建领域模型。当领域中存在大量系统时,须要选择它们的一个子集做为样本系统。对样本系统需求的考察将显示领域需求的一个变化范围。一些需求对全部被考察的系统是共同的,一些需求是单个系统所独有的。不少需求位于这两个极端之间,即被部分系统共享。

 

2.领域设计

 

这个阶段的目标是得到DSSA。DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是可以适应领域中多个系统的需求的一个高层次的设计。创建了领域模型以后,就能够派生出知足这些被建模的领域需求的DSSA,因为领域模型中的领域需求具备必定的变化性,DSSA也要相应地具备变化性。它能够经过表示多选一的(alternative)、可选的(optional)解决方案等来作到这一点。模型和DSSA来组织的,所以在这个阶段经过得到DSSA,也就同时造成了重用基础设施的规约。

 

3.领域实现

 

这个阶段的主要目标是依据领域模型和DSSA开发和组织可重用信息。这些可重用信息多是从现有系统中提取获得,也可能须要经过新的开发获得。它们依据领域模型和DSSA进行组织,也就是领域模型和DSSA定义了这些可重用信息的重用时机,从而支持了系统化的软件重用。这个阶段也能够看做重用基础设施的实现阶段。

 

值得注意的是,以上过程是一个反复的、逐渐求精的过程。在实施领域工程的每一个阶段中,均可能返回到之前的步骤,对之前的步骤获得的结果进行修改和完善,再回到当前步骤,在新的基础上进行本阶段的活动。

 

6、参与DSSA的人员

 

参与DSSA的人员能够划分为4种角色:领域专家、领域分析师、领域设计人员和领域实现人员。

 

1.领域专家

 

领域专家可能包括该领域中系统的有经验的用户、从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等。领域专家的主要任务包括提供关于领域中系统的需求规约和实现的知识,帮助组织规范的、一致的领域字典,帮助选择样本系统做为领域工程的依据,复审领域模型、DSSA等领域工程产品等。领域专家应该熟悉该领域中系统的软件设计和实现、硬件限制、将来的用户需求及技术走向等。

 

2.领域分析人员

 

领域分析人员应由具备知识工程背景的有经验的系统分析员来担任。领域分析人员的主要任务包括控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中,根据现有系统、标准规范等验证领域模型的准确性和一致性,维护领域模型。领域分析人员应熟悉软件重用和领域分析方法;熟悉进行知识获取和知识表示所需的技术、语言和工具;应具备必定的该领域的经验,以便于分析领域中的问题及与领域专家进行交互;应具备较高的进行抽象、关联和类比的能力;应具备较高的与他人交互和合做的能力。

 

3.领域设计人员

 

领域设计人员应由有经验的软件设计人员来担任。领域设计人员的主要任务包括控制核个软件设计过程,根据领域模型和现有的系统开发出DSSA,对DSSA的准确性和一致性进行验证,创建领域模型和DSSA之间的联系。领域设计人员应熟悉软件重用和领域设计方法;熟悉软件设计方法;应有必定的该领域的经验,以便于分析领域中的问题及与领域专家进行交互。

 

4.领域实现人员

 

领域实现人员应由有经验的程序设计人员来担任。领域实现人员的主要任务包括根据领域模型和DSSA,或者从头开发可重用构件,或者利用再工程的技术从现有系统中提取可重用构件,对可重用构件进行验证,创建DSSA与可重用构件间的联系。领域实现人员应熟悉软件重用、领域实现及软件再工程技术;熟悉程序设计;具备必定的该领域的经验。

 

7、DSSA的创建过程

 

因所在的领域不一样,DSSA的建立和使用过程也各有差别,Tract曾提出了一个通用的DSSA应用过程,这些过程也须要根据所应用到的领域来进行调整。通常状况下,须要用所应用领域的应用开发者习惯使用的工具和方法来创建DSSA模型。同时Tracz强调了DSSA参考体系结构文档工做的重要性。由于新应用的开发和对现有应用的维护都要以此为基础。

 

DSSA的创建过程分为5个阶段,每一个阶段能够进一步划分为一些步骤或子阶段。每一个阶段包括一组须要回答的问题,一组须要的输入,一组将产生的输出和验证标准。本过程是并发的(concurrent)、递归的(recursive)、反复的(iterative)。或者能够说,它是螺旋模型(spiral)。完成本过程可能须要对每一个阶段经历几遍,每次增长更多的细节。

 

(1)定义领域范围。本阶段的重点是肯定什么在感兴趣的领域中以及本过程到什么时候结束。这个阶段的一个主要输出是领域中的应用须要知足一系列用户的需求。

 

(2)定义领域特定的元素:本阶段的目标是编译领域字典和领域术语的同义词词典。在领域工程过程的前一个阶段产生的高层块圈将被增长更多的细节,特别是识别领域中应用间的共同性和差别性。

 

(3)定义领域特定的设计和实现需求约束:本阶段的目标是描述解空间中有差异的特性。不只要识别出约束,而且要记录约束对设设计和实现决定形成的后果,还要记录对处理这些问题时产生的全部问题的讨论。

 

(4)定义领域模型和体系结构:本阶段的目标是产生通常的体系结构,并说明构成它们的模块或构件的语法和语义。

 

(5)产生,搜集可重用的产品单元:本阶段的目标是为DSSA增长构件,使它能够被用来产生问题域中的新应用。

 

DSSA的创建过程是并发的、递归的和反复进行的。该过程的目的是将用户的须要映射为基于实现限制集合的软件需求,这些需求定义了DSSA。在此以前的领域工程和领域分析过程并无对系统的功能性需求和实现限制进行区分,而是统称为“需求”。

 

DSSA三个层次的系统模型

相关文章
相关标签/搜索