摘 要:为了能够更好的解决软件危机,加快了软件复用技术研究和使用的步伐。并且经过实践证明,软件复用技术不仅提高了软件工程开发的效率以及软件系统的质量,而且也降低了软件开发成本,总而言之,促进了软件开发的进程。本文主要对软件复用内容、软件复用的优势、软件复用的关键技术进行了分析。
关键词:软件复用;内容;优势;技术
软件复用就是利用现有的软件成分构造出高质量、高效率的新的软件系统。软件复用不仅仅只是包括程序的复用,而且还包括每个活动所产生的制成品的复用。随着软件复用技术的快速发展,人们发现了软件资产的一些问题。为了能够有效地解决此类问题,必须将软件复用技术能够准确地、合理地运用到软件开发中,将软件复用技术的优势充分发挥出来,其实这也正是软件复用技术的难点所在。
1. 软件复用内容
应用软件系统的开发过程包含以下几个阶段:领域和需求分析、设计、编码、测试以及维护等,各个阶段的工作中均存在重复,而这些重复都可以作为软件复用的内容。一般可以分四个层次:第一,领域和需求分析阶段的复用。这个层主要包括对领域知识、软件总体框架结构、项目计划、成本估计等的复用;第二,设计阶段的复用。这个层主要包括对分析建模方法、领域模型、软件功能模型等的复用;第三,编码阶段的复用。这个层主要包括对功能模块、用户和技术文档、用户界面风格等的复用;第四,测试阶段的复用。这个层主要包括对测试方法、测试用例等的复用。
2. 软件复用的优势
软件复用的优势主要表现在以下几个方面:第一,软件复用使软件生产率得以提高,并且也使开发代价因此而少。由于可复用构建经过了高度优化和考验,其构造的系统更加可靠、性能更加强大;第二,软件复用也使系统的维护代价得以减少。用可复用的构件构建系统减少了错误的发生,也就是减少了维护频率;第三,软件复用使系统间的互操作性得以提高。系统由于使用了统一的接口,使其与其他系统之间的互操作性得以实现;第四,软件复用对快速原型设计有一定的支持效果,那么快速有效地构造出应用程序的原型可以充分利用可复用构件和构架,从而获得用户对系统功能的反馈;第五,培训成本的减少也可以通过软件复用来实现。总而言之,采用软件复用技术提高了软件质量。
3. 软件复用的关键技术
3.1软件构件技术
软件构件技术是软件复用的核心。构件是系统中可以明确辨识的构成成分;而软件构件则是软件系统中具有一定意义的相对独立的构成成分;可复用构件是指在具有独立功能的基础上,实现复用功能的构件。随着人们对软件复用技术研究越来越深入,构件的概念也得到了延伸。它们应用于各个不同的开发过程,目前,主要关注的构件是代码级构件,它可以直接由工具进行支持。代码级构件主要分为源代码和二进制代码构件两种,其源代码所采用的复用方式也有两种,即黑盒复用和白盒复用两种方式;而二进制代码构件的复用方式主要就是一种,即黑盒复用方式,通常也只能对构件的接口和属性等信息进行了解。软件构件技术的研究内容主要包括:(1)构件获取。构件生产是有目的的,其构件是从已有的系统中挖掘出来的;(2)构件模型。在对构件本质特征研究的基础上,充分认识构件间的关系;(3)构件描述语言。此目的就是为了使构件的精确描述、理解和组装问题进行解决;(4)构件分类和检索。对构件分类和检索策略进行研究,为构件库系统的构建创造良好的条件;(5)构件复合组装。对构件组装机制进行研究且在构件模型的基础上进行;(6)标准化。这里的标准化主要是构件模型和构件库系统的标准化。
3.2构件构架
对于软件架构,目前还没有一个统一的定义。一个典型的定义是:一个程序或计算系统的软件构架是系统的一个或多个结构,包含软件构件、这些构件的对外可见的性质以及它们之间的关系。体系结构描绘的是系统的蓝图,是沟通软件需求与软件设计的一座桥梁。体系结构的研究,使软件复用从代码复用发展到设计复用和过程复用。在基于构件和体系结构的软件开发方法下,程序开发模式也相应地发生了根本变化。软件开发不再是"算法+数据结构",而是"构件开发+基于体系结构的构件组装"。软件构架包括全局组织与控制结构,构件间通讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元素集成,伸缩性和性能,设计选择等。软件构架研究如何快速、可靠地从可复用构件构造系统的方式,着重于软件系统自身的整体结构和构件间的互联。其中主要包括:软件构架原理和风格、软件构架的描述和规约、特定领域软件构架、构件向软件构架的集成机制等。
3.3领域工程
领域工程是针对一组相似或相近应用的共同领域及用户需求进行分析,识别这些应用的共同特征和可变特征,进行面向复用的开发,产生出特定领域的构件和构架。它覆盖了建立可重用构件的所有活动;主要过程分为领域分析(定义"问题空间")、领域设计(提出"解决问题的框架")和领域实现(实现所提出的"解决空间")三个阶段。它以领域分析为出发点,对领域中的系统进行分析,包括识别、搜集、组织、分析和表示领域中相关的共性和个性信息,形成领域定义和领域模型。其中领域模型确定了该领域系统的公共功能和数据;依据领域模型,设计面向特定领域的软件构架DSSA,包括系统中各种构件间交互关系的共性和差异,并以此领域构架为中心,识别、开发和组织可重用构件,供应用工程师使用。这样,当开发同一领域中新的应用时,可以根据领域分析模型,确定新应用的需求规约;根据特定领域的软件构架形成新应用的设计,并以此为基础选择可复用构件进行组装,从而形成新系统。
3.4软件再工程
随着软件技术的不断开发,一些遗产软件系统已经不能在满足现今的要求,慢慢地退出软件舞台,如果能够从这些系统中获取有用的软件构件,再对它们进行维护,使其系统软件生命周期得以延长,而这个过程就是软件再工程所要解决的问题,从而构造出新的系统来。如果没有对其进行维护,即使获取了有用的软件构件,那么这些软件构件随着技术的发展最终还是被淘汰。
3.5开放系统技术
使用接口标准是开放系统技术的基本原则。开放系统技术能够为系统开发的决策设计提供良好的依据,尤其是为系统的演化提供了稳定的基础,同时也进一步保证了各子系统间的互操作。开放系统技术不仅能够确保系统效率的稳定进行,而且在此基础上,能够使开发成本得以降低以及开发周期得以缩短。系统依赖稳定的接口标准促进了开发系统更容易适应技术。
3.6软件过程
软件过程就是从软件需求定义开始,直至软件使用后废弃为止,针对系统开发、运作和维护所实施的全部过程、活动和任务的结构。随着软件工程的快速发展,软件过程也发生了一些变化。软件过程又称软件生存周期过程,软件生存周期主要可划分为三个时期,第一时期就是计划、分析时期,第二时期就是设计、实现时期,第三时期就是运行、维护时期。当前,软件工程研究的热点就是软件过程及其完善。
3.7 CASE技术
软件工程思想已经在人们心中有了更深入的渗透,其已经越来越受到广大软件开发者的欢迎,CASE工具和CASE环境得到越来越广泛的应用。对于软件工程而言,CASE技术是非常重要的,它能够支持软件工程,并且使软件开发的复杂性有所降低,也就是说,能够促使软件开发人员有效控制软件开发的复杂性,进而使软件开发的效率和质量得以提高。同理,CASE技术也能够有效地支持软件复用。其主要内容包括:在面向复用的软件开发中,可复用构件的抽取、描述、分类和存储;在基于复用的软件开发中,可复用构件的检索、提取和组装;可复用构件的度量等。
4.结语
面对软件危机的发生,软件复用技术起到了非常重要的作用。软件复用技术是缓解软件危机的重要手段,它不仅能够提高软件开发效率,而且还能够提高软件的可靠性,以及能够降低软件开发成本,在软件测试和维护方面也有一定的优势。因此,软件复用技术已经成为现在软件工程方面的研究热点。
参考文献:
[1] 朱俊波,史素娟. 浅议软件开发中的复用技术[J].福建电脑, 2008, (02) .
[2] 杨敬君. 基于构件的软件复用技术研究与应用实践[D].大连海事大学, 2009 .
[3] 仉新刚. 浅谈软件复用的理论与技术[J].科技信息(学术研究), 2008, (13) .
[4] 吴树德,曾庆弘,左壮. 软件复用技术在管理信息系统设计中的应用[J].通化师范学院学报, 2006, (06) .
[5] 武伟,张明新. 基于构件的软件复用技术应用研究[J]. 山西大同大学学报(自然科学版), 2009, (01) .
[6] 陈东升. 软件复用技术研究[J]. 硅谷, 2008, (18) .