当前位置:首页 期刊杂志

基于构件的软件复用技术

时间:2024-07-28

何晓琴,白 勇,邓 谱

(重庆电力高等专科学校,重庆400053)

随着软件需求的逐渐递增,软件在整个开发和应用过程中出现了一些问题。例如,硬件发展非常快,而软件发展较为逊色,跟不上硬件的发展速度,导致硬件的有些功能得不到充分发挥;软件开发过程中,重复开发现象严重,花费的资源较多,浪费所占比例较大,效率较低。软件复用是重新应用软件开发过程中已有的思想,具有灵活性高、开发成本低的优点。

1 软件复用的关键技术

影响软件复用的各种因素之间有着密切联系。无论是技术因素还是非技术因素,其主要包括软件构件技术、软件架构、领域工程、软件工程、软件再工程、开放系统以及CASE技术等,如图1所示,软件复用的实现受到它们共同结合的影响。

图1 实现软件复用的关键因素

1.1 软件构件技术

构件是可以独立交付、发布的二进制功能单元。不同构件开发机构开发的构件能够按软件应用的需要进行组装。近年来,为了促进软件构件技术的发展,促进构件技术的标准化,工业界中一些主要的软件公司和产业联盟纷纷提出了一些构件软件的建议标准和技术规范。具有相对独立的功能和可复用价值的构件就是可复用构件。事实上,构建的定义还没统一,有的认为构件是一个语义,它能够将目标问题域体现出来,并且实现都是通过独立的方式进行的;有的认为构件是一个可独立交付的软件单元,对软件设计和内容进行了封装,并向外提供接口,通过接口与其它构建组装成更大的整体;有的认为构件是一个若干个对象集,这些对象集都是动态变化的,并且可以存在于构件的内部,也可能是其接口的一部分。构件与构件之间可以实现交互和胶合,交互是直接实现,而胶合则是通过独立的对象实现的。以上是从对象实现技术的角度给出的构件定义;而微软的技术文档给出的构件定义是通过接口向外提供服务的软件包。综合以上内容,软件构件技术是支持软件复用的核心技术,主要研究内容包括:构件获取、构件模型、构件描述语言、构件分类与检索、构件复合组装、标准化。

1.2 软件构架

系统的整体设计格局就是软件架构,软件架构为基于构件的软件开发提供了构件组装的基础。对于不同系统的高层共性,可以通过对软件架构的研究发现其规律,并能够给系统设计提供一个灵活且正确的保障、规约、分析、验证和管理系统的整体结构和全局属性。总而言之,软件架构就是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件、组件的外部可见属性及相互关系。软件系统自身的整体结构和构件间的互联是软件架构如何快速、可靠地从可复用构件中构造系统方式的关键。

1.3 领域工程

领域工程覆盖了建立可复用软件构件的所有活动,它是一组相似或相近系统的应用工程建立基本能力和必备基础的过程。一组具有相似或相近软件需求的应用系统所覆盖的功能区域就是所谓的领域。领域工程与软件工程的关系如图2所示。(1)复用信息的领域特定性。可复用性依赖于特定的问题和特定的解决方法,它不是信息的一种孤立属性。(2)问题领域的内聚性和稳定性。大量软件复用研究和实践表明,特定领域的软件复用活动相对容易取得成功,这是由领域的内聚性和稳定性决定的。领域工程创建应用领域的模型,标识、构造、分类和传播一组可重用的软件。领域工程主要包括以下三个阶段:(1)领域分析。获得领域模型就是领域分析的主要目标。在领域中系统之间具有共同的需求,而这些共同的需求就是通过领域模型来进行描述的。(2)领域设计。获得领域架构是领域设计这个阶段的目标,同时也是系统需求的一个高层次设计。如何完成系统需求是获得领域架构的目的之一。在领域模型建立后,为了能够满足系统的各种需求,就诞生了领域架构。值得注意的是,系统需求不是永远不变的,影响其发生变化的因素较多,只要系统需求发生变化,获得领域架构也要随之发生变化。(3)领域实现。领域实现这个阶段主要就是完成一种机制,这种机制就是将需求翻译成能够由可复用构建创建的系统识别的机制。

图2 领域工程与软件工程的关系

1.4 软件再工程

软件复用中的一些问题与现有系统密切相关,当前技术的发展速度是非常快的,软件系统能够很好地适应其发展则应该从比较容易理解、可复用的系统软件架构中将可复用的软件提炼出来,并挖掘、整理由于技术的发展而退出的、现存的、大量不再应用的软件系统。随着时间的推移,已存在的软件构件已不能使用,如何对这些软件进行维护和怎样进行维护,才能使其生命期能够延长,这是当前面临的主要问题,而解决这一问题的关键技术手段就是软件再工程。软件再工程是一个工程过程,它将现存系统重新构造为新的形式,而系统理解是软件再工程的基础。系统理解主要包括源代码、运行系统、设计、分析等的全面理解。但在很多情况下,各类文档都容易存在损失。因此,只能理解源代码,即程序理解,软件再工程程序理解就变得尤为重要。

2 基于构件的软件开发思想

充分借鉴传统工业生产模式是基于构件软件开发方法的主要思路。首先,对消费者需求进行分析,将整体结构框架进行设计,然后到构件库中,根据需要选择相应的构件,再对应用系统进行组装。如果系统所需的构件在现存的构件库中不存在,那么就需要对所需的新的构件进行购买、定制或者自行研发。在获得新构件的过程中,构件生产组和系统开发组之间对任务的分工要严格按照生产者——消费者关系进行,并且通过从经验工厂中请求所需的构件集成组装,得到所需最新的系统。在经验工厂中,其所拥有的活动也不是单一的,主要包括同步活动和异步活动,同步活动指配合项目组的活动,接收构件查找请求或定制请求,为项目组服务;异步活动指有目的的构件生产或对同步活动中的构件进行再工程以提高构件的可复用性。

3 基于构件的软件复用技术在嵌入式系统中的应用

软件复用技术在嵌入式系统中应用时,首先要能够清楚了解嵌入式系统,包括其特点、硬件和软件架构。嵌入式系统有着非垄断的高度分散的应用领域,系统内核小,开发需要的开发工具和环境、软硬件可裁剪、可配置,实时操作系统开发平台面向用户/产品/应用的产品的热点等特点。PC环境软件的通用性使其很容易实现复用。相比之下,嵌入式系统的专用性使其不容易实现复用,此系统是由软件和硬件两部分组成,两者协同合作,统一构成嵌入式系统整体。嵌入式系统硬件是整个嵌入式系统的运行平台,包括输入/输出接口,处理器、存储器、数/模转换等部分,其中嵌入式微处理器是嵌入式系统硬件的核心,它拥有比通用计算机CPU更低的功耗,内部通常有专用调试电路,外部有JTAG之类的调试接口。嵌入式系统软件直接与用户交互,在一定程度上决定了整个产品的成败。在硬件系统搭建完毕后,软件的操作系统要想规划好,必须根据硬件相关的条件来进行,从而实现软件复用。

嵌入式软硬件结构决定了软硬件系统紧密结合,软件的开发往往都是根据特定的硬件来进行。因此,即使针对同一种产品进行修改时,由于其硬件不同,也会产生不同的修改方式。因此软件的开发人员就必须能够熟悉不同的硬件平台和操作系统,这样增加了开发难度,并且软件复用难度也增加了。为了能够提高开发人员的软件开发水平,采取的有效措施就是将软件复用技术运用到嵌入式软件系统中。在此过程中硬件无关层和设备开发驱动层将起着至关重要的作用。硬件无关层是由硬件和平台相关的代码组成,它能够产生初始化等函数集,在此过程中,硬件模块的类型和特点占据一定位置。设备开发驱动层主要是对一个通用的驱动程序模型进行描述,与平台功能是没有任何关系的,此层还可以对复杂的事件进行精确的处理,实现DDI接口函数集,此函数集主要是用于应用层的编程。即程序员在应用层编程时,可以采用DDI接口函数集来进行编程,最终实现怎么支配硬件设备资源,然后将这个硬件模块的驱动程序封装成一个新的、符合标准的功能模块,再将其引入到嵌入式系统中。一般情况下,该驱动软件应用生存能力是非常强大的,可以直接在新环境下进行,也不会涉及较大的改变。

软件复用不仅仅只是实现代码的可重复利用,目前的任何软件都需要具有强大的适应能力,因此,还应该考虑到在多环境下的应用。目前为止,对于PC机而言,其很多软件都能够实现在多环境下应用。嵌入式系统也应该借鉴这个优点,实现一个软件在多环境下进行应用。另外,软件程序员在编程时,还需要对硬件进行处理。

综上所述,嵌入式系统在实现软件复用技术时,通过将软件代码按其功能和对象特征,封装成一个模块的形式是非常重要的。因为这样可以给其他软件工程在以后的工作中提供良好的借鉴基础,并且还可以使软件更容易维护,延长软件使用寿命。嵌入式系统中应用复用技术,在很大程度上已经缓解了软件编写受硬件约束的程序,程序员不需要隐藏自己的潜力,可以在这个空间中将能力充分发挥出来。如此下去,软件的复用目的也就实现了。

软件复用技术解决了软件危机问题,提高了软件开发效率,降低了软件开发中的浪费,使软件成本变得较低,从而使软件质量得到了进一步的保障。

[1] 李艳平.基于可复用构件的软件开发方法[J].菏泽学院学报,2008,(5).

[2] 武伟,张明新,李聪.软件复用技术在基于B/S模式的新闻管理系统中的应用研究[J].科技信息:科学教研,2008,(2).

[3] 王亚明,郭峰,向阳霞.软件复用技术及其开发方法[J].北京广播电视大学学报,2007,(2).

[4] 程煜,刘会忠.软件复用技术在管理软件中的应用[J].中国科技信息,2007,(15).

[5] 盛洁谞.基于软件构件技术的CMM模型研究[J].舰船电子工程,2007,(5).

[6] Gang Huang,Hong Mei,Yang Fu-qing.Runtime Recovery and Manipulation of Software Architecture of Component-based Systems[J].Automated Software Engineering,2006,13,(2).

[7] Ivar Jacobson,Martin Griss,Patrik Jonsson.Software Reuse Architecture,Process and Organization for Business Success[M].北京:机械工业出版社,2003.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!