基于领域工程的构件的软件开发技术研究

时间:2022-09-23 03:42:54

基于领域工程的构件的软件开发技术研究

摘要:该文分析和研究了基于构件的软件开发的含义和优点,研究了基于构件的软件开发的基本思路和生命周期模型,总结了基于构件的软件开发的不足,引出了领域工程的概念,对领域工程的相关理论知识,领域工程、专向领域工程概念,以及与应用工程的区别进行了研究,在此基础上,提出了一种基于领域工程的构件的软件开发过程及生命周期模型。

关键词:构件技术;领域工程;软件工程

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)33-9300-02

Study on Software Development Technology Based on Component of Field Engineering

HU Hui

(Suzhou Institute of Industry Technology, Suzhou 215104, China)

Abstract: The meaning and advantage of software development based on component were analyzed and studied, the basic thought and life cycle model of software development based on component was researched, the insufficiency of software development based on component was summarized, and the concept of field engineering was introduced, the related theoretic knowledge, field engineering, concept of special field engineering concept as well as the difference of applied field engineeringwas studied, respectively, on this base, a kind of software development process and life cycle mode base on the component based on field engineering was brought forward.

Key words: software component technology; field engineering; software engineering

1 传统构件开发技术

虽然以构件为单位独立地进行设计和实现,提高了应用系统各部分开发的独立性,是长期以来主流的复用技术,但是,实际操作起来,在整个过程及构件的开发、寻找和使用阶段必须要解决一些技术上面的问题。实际上,基于构件的开发并未真正实现其最初的“复用和灵活性”的承诺,并非很多的构件可以真正复用,一些因素阻碍了它的发展:

1) 构件在实际应用中的变化性。多数构件在应用时都有其局限性,需要对其修改以适应新系统,而且,构件的这种变化性需要在系统中加以实现才能真正实现软件复用。

2) 构件的发展还处于不完善阶段,多数构件的应用还是仅仅局限于代码复用或模块复用,而越来越多的大规模软件开发项目要求更高层次的复用。构件要达到一定的数量,才能支持有效的复用,而大量构件的获得需要有很高的投入和长期的积累。

正是这些因素的存在,在实际应用过程中,存在一些不太现实或者目前看来不够成熟的地方。

CBD采用独立的方式进行开发时,这一活动通常被称为领域分析(Domain Analysis)或领域工程(Domain Engineering)。领域工程中可复用构件开发的目标是针对于某一特定的应用领域,对该领域中一组已开发的系统进行领域分析,确定目标领域的公共特性,进行抽象并编码实现,包装为可复用构件,并在领域开发过程中,进行构件适当的修改,就可以在领域内实现真正的复用,并在实际的应用中,加入最流行的软件开发思想,如设计模式,分层思想等技术对其不足之处加以改进,从而使其更好地实现复用的目的,这样的软件开发技术叫基于领域工程的构件的软件开发技术。

2 基于领域工程的开发技术

2.1 领域工程的基本概念

领域工程中有一些基本的概念,正确、深入的理解这些概念对于理解和实施领域工程具有非常重要的意义。

1) 领域:领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域。

2) 领域模型:领域模型描述领域中系统之间的共同需求。领域模型描述了需求上的共性,因此称领域模型中描述的需求为“领域需求”。

领域需求是通过考察领域中己有的系统获得的,当领域中存在大量的系统时,需要选择它们的一个子集作为样本系统,对样本系统需求的考察将显示领域需求的一个变化范围。一些需求对所有被考察的系统是共有的,一些需求是单个系统所独有的,依据己获取的领域需求可以建立起领域模型,一般包括用例模型和特征模型。

用例建模是需求工程的一种形式,被认为是软件工程中良好的实践之一,在现在的软件工程中被广泛运用。从外部用户的视角看,一个用例是执行者与目标软件系统之间的一次典型的交互作用。对一个用例的完整描述包括用例名称、用例目标简述、执行者、前置条件、一个主事件流、零到多个辅事件流、后置条件和附加信息。如果用例的事件流比较复杂,还可以使用活动图来更为精确和直观地描述。

特征模型被作为领域需求的一种重要表现方式。它是对一个特定领域的软件所具有的特征的有组织的描述,主要记录了特征自身具有的重要属性和特征之间存在的各种关系。在领域工程的各个阶段领域分析、领域设计、领域实现中可能存在的特征都应该被一一记录到特征模型中。特征模型由特征图和特征描述信息组成,特征图是由特征和特征之间的关系组成的分层结构图。

3) 领域工程:领域工程是为一组相似或相近的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动。领域工程对领域中的系统进行分析,识别这些应用的共同特征和可变特征,对刻画这些特征的对象和操作进行选择和抽象,形成领域模型,依据领域模型产生体系结构,并以此为基础识别、开发和组织可复用构件。这样,当开发同一领域中的新应用时,可以根据领域模型,确定新应用的需求规约,根据特定领域的软件体系结构形成新应用的设计,并以此为基础选择可复用构件并进行组装,从而形成新系统。

2.2 领域工程的三个基本阶段

实施领域工程的过程包含了一些基本的行为,虽然具体的领域工程方法可能定义不同的概念、步骤、产品等,但这些基本行为大体上是一致的,这些行为分为三个阶段。

1) 领域分析:这个阶段的主要目标是获得领域模型。在这个阶段中首先要进行一些准备性的工作,包括定义领域的边界,明确分析的对象,识别信息源,即领域分析和整个领域工程过程中信息的来源,可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等。在此基础上,就可以分析领域中系统的需求,确定哪些需求是被领域中的系统广泛共享的,从而建立领域模型。

2) 领域设计:这个阶段的目标是获得特定领域的软件体系结构(DSSA)。建立了领域模型之后可以派生出满足这些领域需求的DSSA。由于领域模型中的领域需求具有一定的变化性,DSSA也要相应地具有变化性。同时复用构件是依据领域模型和DSSA来组织的,因此在这个阶段通过获得DSSA,也就同时形成了复用构件的规约。

3) 领域实现:这个阶段的主要目标是依据DSSA开发和组织可复用信息。这些可复用信息可能是从现有系统中提取得到的,也可能需要通过新的开发得到。这个阶段也可以看作复用构件的实现阶段。

需要说明的是,领域工程的三个基本阶段所描述的过程是一个反复的、逐渐求精的过程。在实施领域工程的每个阶段中,都可能返回到以前的步骤,对以前得到的结果进行修改和完善,再回到当前步骤,在新的基础上实施本阶段的过程。

2.3 专向领域工程

将领域工程技术引入软件复用中,形成了专向领域复用思想。专同领域工程的目标就是在一个特地给你的应用领域中实现软件复用。由于目标集中,因此可复用构件的制作不需要在很广的范围内考虑其通用性,构件库也不需要包括与本领域无关的构件。因此,构件的开发和构件的存储与管理都比较容易,构件的使用频率与检索效率都会明显的提高。另外,在专向领域中,由于同一领域的应用系统之间有更多的共性构件的粒度可以增大。

2.4 领域工程和应用工程的关系

领域工程和应用工程又是互相联系的。一方面,通过应用工程得到的现有系统(包括需求规约、设计、实现等)是领域工程的主要信息来源,领域工程的各个阶段主要是对应用工程中相应阶段产品的抽象,领域工程又对本领域中新系统的开发提供了支持。另一方面,领域工程和应用工程需要解决一些相似的问题,例如怎样从各种信息源中获取用户的需求,如何表示需求规约,如何进行设计,如何表示设计模型,如何进行构件开发,如何在需求规约、设计和实现间保持逻辑联系,如何对需求规约、设计和实现进行演化等。因此,领域工程的步骤,行为、产品等很多方面都可以和应用工程进行类比,在应用到构件的软件开发过程中时可以使需求更全面,获取得到的可复用构件更具有全面性,有利于提高软件开发的效率,更有利于软件的复用。

3 基于领域工程的构件的软件开发

3.1 基于领域工程的软件开发过程模型

基于领域工程的软件开发过程可以概括为:

1) 领域分析:领域分析阶段的主要任务是通过对领域知识的抽象,区分出共性和可变性,生成概念级BCMS。领域分析的最终结果是领域知识的形式化表示,用基于UML的领域模型来表示。包括领域框架和领域构件的设计。领域模型中的共性在领域框架中映射为稳定不变的凝固点,领域模型中的可变性在领域框架中映射为易变的热点。在具体构件的设计中可以遵循COM/DCOM/COM+/OLE/ACTIVEX构件模型标准。

2) 领域实现:领域实现阶段产生物理模型。物理模型包括领域构件和热点子系统的具体设计、编码和测试及领域框架的动态生成,加入最先进的软件开发思想,完成代码级的开发。

3)应用实现:领域工程向应用工程的过渡,体现构件化开发的行业分工思想,把系统开发者分为构件生产者和构件装配者。应用工程将参考领域框架进行系统设计,生成具体应用的体系结构(框架);然后根据应用框架要求从领域构件库挑选构件进行组装,实现构件在框架上的集成(静态或动态的),或根据热点子系统对热点进行特化,实现静态的集成领域设计阶段产生逻辑模,它是领域模型的具体设计。

图1是根据实践结合最新的软件思想得来的过程模型,领域工程创建应用领域的模型,该模型被用作在软件工程流中分析用户需求的基础。类属的软件体系结构为应用的设计提供了输入。最后,在可复用构件己经被购买、从现存库中选出或构造好后作为领域工程的一部分,它们可以被从事基于构件开发的软件工程师使用。

3.2 基于领域工程的构件软件生命周期

在软件开发的发展历史中,软件开发经历了无模型、瀑布型、快速原型、渐增模型、螺旋型、软件复用型、基于CASE模型等阶段。软件复用结合了技术、方法和过程。

图2反映了面向领域工程的软件生命周期。其中构件库是核心,它是构件及其关系组成,构造构件库必须注意两方面的问题:一是可复用构件应具有有用性、可用性、质量、适用性、可移植性;二是领域工程。软件构件是对系统整体结构设计的刻画,包括全局组织与控制结构,构件间通讯、同步和数据访问的协议,功能分配,物理布局,设计元素集成,伸缩性和性能,设计选择等以及指导这些集成的模式。

4 总结与展望

随着软件需求的激增,软件规模和复杂度的不断增大,传统的软件开发模式面临着前所未有的挑战,人们开始探索新的软件开发技术来适应软件发展的要求,软件复用则是解决这一软件危机行之有效的方法,软件构件技术则在软件复用中扮演着重要的角色,是当前软件复用研究的焦点。构件技术的基本实现在于创建和利用复用的软件构件来解决应用软件的开发问题。它与面向对象编程语言不同,只规定构件的外在形式,不关心其实现方法。只要遵循构件技术规范,各个软件开发商就可以用自己方便的语言去实现构件,应用软件可以通过构件间相互提出请求和返回服务结果的协同工作机制来达到系统目标。

参考文献:

[1] 杨芙清,梅宏,李克勤.软件复用与软件构件技术[J].电子学报,1999,27(2):41-42.

[2] 薛春光,吴绍东.软件复用技术及其展望[J].天津理工学院学报,2002,18(1):68-71.

[3] 梅宏.软件复用技术研究与应用[J].科技与经济,2002(1):12-13.

[4] 张世混,张文娟,常欣,等.基于软件体系结构的可复用构件制作和组装[J].软件学报,2001(9):12-14.

[5] 朱建江,基于软件构件的软件复用的研究[D].南京航空航天大学博士论文,2002.

[6] Brown A W,大规模基于构件的软件开发[M].赵文耘,译.北京:机械工业出版社,2003.

[7] 张伟,梅宏.一种面向特征的领域模型及其建模过程[J].软件学报,2003(8):1-3.

上一篇:计算机网络化管理在南陵县新型农村合作医疗中... 下一篇:基于RapidForm的三维曲面重构