随着政府职能的转型,XX行业职能主管部门(国家相关部委,各省、市的相关厅、局、委等)机构日趋精简,但随着国家现代化的发展,业务量反而越来越大。为保证本行业管理工作的质量和效率,实现企业资质审批管理信息化、网络化和电子化,提高工作效率和质量,规范业务处理流程,提高管理工作的广度、深度、力度和速度,更有效地为相关企业和业主提供服务,该行业主管部门委托FT软件开发公司开发一个XX行业管理信息系统。该系统由公共信息管理模块、系统管理维护模块、资质管理模块、企业信息管理模块和系统扩展接口模块等5大功能模块组成。
在该项目架构分析会上,FT公司高层领导提出,为了使那些公共功能模块比较容易地被其他电子政务项目所复用,应充分利用领域分析和软件复用的知识,采用基于可复用的软件开发方式,在这些公共模块的实现中保持高度的独立性,即在实现的具体细节上与XX行业国家部委(或者其他的政府机构)无关。
特定领域软件架构(Domain Specific Software Architecture, DSSA)是一种有效实现特定领域软件重用的手段。结合你的系统架构设计经验,请用300字以内的文字简要说明基于DSSA的软件设计开发主要包含哪些阶段以及每个阶段的目标。
参考答案:阶段 目标
定义领域范围 确定领域应用需要满足的用户需求
定义领域特定的元素 制订领域字典和领域术语的同义词词典(或识别领域中各种应用间的共同性和差异性)
定义领域特定的设计和实现需求约束 描述解空间中的特性,识别约束并记录其对设计和实现决定造成的后果,
以及记录对处理这些问题时产生的所有问题的讨论
定义领域模型和构架 产生该领域的参考架构,并说明构件的语法和语义
产生和搜集可复用产品 为DSSA增加构件,为问题域实现新应用提供支持。
解析:领域分析是分析和研究某个应用领域特性的活动,它是识别、收集、组织和描述一个领域相关信息,发现和记录领域中的共性和差异的过程,是系统化、形式化、有效复用的关键。通过领域分析,类似系统的公共特性将被提取,使用于该领域所有公共的、基本的对象及操作被标志出来,并且通过定义模型来描述他们之间的关系。领域分析的本质是以复用为目的,对具有若干共同特性的一群应用系统进行分析,对共同的部分开发出一系列公用的组件,对不同的部分进行参数化。
按照Will Tracz的说法,特定领域软件架构(DSSA)就是一个特定的问题领域中由领域模型、参考需求和参考架构等组成的开发基础架构,其目标就是支持一个特定领域中多个应用的生成。DSSA的基本活动包括领域分析、领域设计和领域实现。领域分析的主要目的是获得领域模型,领域模型描述领域中系统之间的共同需求,即领域需求;领域设计的主要目标是获得DSSA,DSSA描述领域模型中表示需求的解决方案;领域实现的主要目标是依据领域模型和DSSA开发、组织可重用信息。
在最高的级别上,DSSA方法共有5个阶段,每个阶段可以进一步划分为一些步骤或子阶段,每个阶段包括一组需要回答的问题、一组需要的输入。该方法的领域工程过程是并发的、递归的和反复的,或者可以说,它是螺旋型的,完成该过程可能需要对每个阶段经历几遍,每次增加更多的细节。该领域工程过程的5个阶段如下。
(1)定义领域范围:重点是确定领域中包含哪些元素及领域工程过程到何时结束。这一阶段的一个主要输出是领域中的应用需要满足的一系列用户的需求。
(2)定义领域特定的元素:目标是制订领域字典和领域术语的同义词词典。在领域工程过程的前一个阶段产生的高层次块图中增加更多的细节,特别是识别领域中各种应用间的共同性和差异性。
(3)定义领域特定的设计和实现需求约束:目标是描述空间中的特性,不仅要识别约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论。
(4)定义领域模型和构架:目标是产生DSSA,并说明构成它的模块或构件的语法、语义。
(5)产生和搜集可复用的产品:目标是为DSSA增加构件,使得它可以被用来产生问题域中的新应用。
从软件实践上看,面对特定领域的系统开发,迫切需要一种好的开发方法来有效地支持软件重用性,而DSSA方法已经在实践中被证明是有效的,能显著加大重用的粒度,从而缩短整体开发周期,在提高产品品质的同时降低开发费用。