构件复用技术在领域工程中的应用
2012-09-24程海水
程海水
(江西广播电视大学 江西 南昌 330046)
构件复用技术在领域工程中的应用
程海水
(江西广播电视大学 江西 南昌 330046)
随着计算机软件行业的不断发展,系统开发变得越来越复杂、工程越来越庞大、成本越来越高,而且重复开发,资源浪费的现象也越来越多。为了解决这些问题,领域系统开发的技术应运而生。基于构件的软件复用技术在领域工程技术中具有极其重要的作用。
领域工程;构件;软件复用
1 构件技术
1.1 构件的概念
自软件复用的概念的提出后,由于具有面向对象等相关技术的支持,构件复用技术发展非常迅速。但直到目前,业界对构件的定义,还没有一个统一的标准。从广义上说,构件一般是指一个可单独开发和交付的软件单元,其设计和实现都封装在一起,具有相对独立功能和可复用价值,通过其接口向外界提供服务。构件思想贯穿于整个系统开发中,构件的形式可以多种多样,系统需求分析、开发文档、开发思想、编程代码、系统框架等都可以看作构件。
构件技术可以让系统开发过程如同工厂组装零件一样标准化、简单化。但是如果构件技术仅仅只是用在为某个特定的系统软件上,那么构件技术的优越性将无法真正体现,甚至反而加大系统开发的工作量和难度,起到适得其反的作用。只有将构件技术运用到相关领域技术中去,才能体现构件技术的最大优越性。
2 领域工程(Domain Engineering)
2.1 领域
这里所说的领域并非现实中经常说的领域,而是在领域工程中的概念。领域是领域工程中的一个最基本的专业术语,是指共享某种功能性(functionality)的系统或应用程序的集合。领域含义中包含了领域工程中的很多属性和方法。在领域工程中,软件开发人员在整个开发过程中要时刻保持与“领域专家”进行沟通、讨论。领域专家不仅需要懂得计算机系统,而且需懂得现实领域知识。
2.2 领域模型(Domain Model)
领域模型是对领域内的概念类或现实世界中对象的可视化表示,又称概念模型、领域对象模型、分析对象模型。领域系统开发人员通过分析整个领域中所有系统之间的共同特征和可变特征,同时对刻划这些特征的对象和操作进行研究、分析,从中抽象出领域系统的需求和操作,从而形成领域模型。领域模型可以帮助领域系统开发人员理解整个应用领域。依据领域模型产生出领域中共同具有的DSSA(即特定领域的软件构架),在此基础上进行可重用构件的抽取和开发。这样,当开发领域中的任何一个应用系统时,可以根据领域模型进行应用系统的需求分析和设计,并从领域构件管理库中选择需要的构件进行组装,从而形成新的应用系统。构建领域模型是领域工程中的核心环节,也是领域系统需求分析的关键步骤。
领域模型设计的步骤如下:
1.从领域中所有相关环节的描述中提取领域字典,并对领域字典进行分类;
2.从领域中提取领域对象,形成操作对象集;
3.从领域对象集中抽象业务模型,建立问题域的概念;
4.用UML提供的方法和图例进行领域模型设计、确定模型之间的关系;
2.3 领域工程技术
在同一领域中的所有应用系统都具有很多相似,甚至相同的需求和基本功能,领域工程是为这些相似或相近的领域系统的建立基本需求和能力分析的过程,它覆盖了建立可重用软件构件和领域系统开发的所有活动。领域工程一般可以分为领域分析、领域设计和领域实现三个阶段:
(1)领域分析:这个阶段通过对领域的边界、对象、现存相应的系统进行分析,抽取出领域系统中的共同特征和可变特征,形成领域分析模型;
(2)领域设计:通过领域分析得到的领域分析模型,领域开发人员设计出适应所有领域系统的共同构架DSSA。DSSA是一个高层次设计,需满足领域所有系统的需求,但因领域需求具有可变性,因此DSSA需要具有一定的可扩展性;
(3)领域实现:在领域分析和领域实现基础上,领域实现主要是通过领域分析模型和DSSA去提取、设计、实现领域中可复用资源,这些资源可以是领域框架、领域特定设计和代码构件等。
领域系统开发主要经过以上三个阶段,但在开发过程中,当在某一阶段发现前一个阶段所得到的结果需要进行调整,则要返回前一阶段进行重新调整后再回到当前阶段继续开发设计。因此这种系统开发过程并不是流水线式的过程,而是需要经过一个不断反复、逐渐求精的过程。
在现实中,北大青鸟所采用的领域工程方法就是将领域工程主要划分为领域分析、领域设计、领域实现三个主要阶段,其活动如图1所示。
图 1 领域工程中的活动与结果
3 领域构件的抽取
领域构件的抽取主要是从领域工程中的三个阶段中抽取:
(1)领域分析阶段的构件获取:领域分析是领域工程的重要组成部分,在这个阶段主要是收集、分析、组织、描述领域中的所有相关信息,并在定义领域边界、明确分析对象、识别信息源等基础上,确定哪些资源可被领域系统共享,从而抽取相应的构件。此阶段抽取的构件主要包含文档说明构件、领域对象构件等。
(2)领域设计阶段的构件获取:领域设计阶段主要是获得领域系统构架DSSA。领域设计是一个高层次的设计,该设计必须适应领域中的所有应用系统需求和领域构件划分。此阶段抽取的构件主要包含各种框架设计构件。
(3)领域实现阶段构件的获取:此阶段主要是对以上两个阶段中获取的领域构件进行实现以及管理。构件的实现可以通过现有的系统中提取得到,也可以通过自行编码开发得到。此阶段抽取的构件主要包含领域框架构件、领域描述构件(用特定的语言描述)和代码构件等。
经过以上三个阶段后,当需要开发一个领域的新应用系统时,就可以象组装产品一样,根据具体的需求,将需要的构件按照应用系统设计去组装形成,而无需从零开始。
4 结束语
领域工程技术的关键是建立领域模型,而构件复用技术在领域工程中运用的关键是在建立好的领域模型中识别、抽取可复用的构件。抽取领域构件是一件非常庞大而复杂的工程,如何建立一个科学、全面、可操作的方法,使得抽取出的领域构件能满足领域中所有应用系统的共同需求和特殊需求,这需要做进一步探讨和研究。
[1]李克勤,陈兆良,梅宏等.领域工程概述 [J].计算机科学,1999.
[2]林正奎,杨德礼.软件构件复用技术综述〔J〕.计算机工程与设计,Jun.2004,Vo.12,No,6:877 一 890.
[3]Kashiwazaki,How Component-Based Software Engineering Changes the Way of Software Development,1998.
[4]胡文蕙,赵 文,张世琨,王立福.基于构件技术的应用框架元模型的研究,软件学报,2004.
[5]Object:Management Group.The Common Object Request Broker:Architecture[美]Alan W.Brown.赵文耘,张志等译.大规模基于构件的软件开发.北京:机械工业出版社,2003.
责任编辑:刘石玉
校 对:红 农
TP203
A
1008-3537(2012)02-0069-02
2012-03-26
程海水,男,江西广播电视大学教师,研究方向:信息技术。