复用研究在软件应用开发领域研述

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:junr
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:软件重用是近年来软件工程一个很活跃的研究领域。实践证明,软件重用是从根本上提高软件生产率、降低成本、提高质量的有效途径。但同时,软件重用还需要在关键技术、管理等很多方面引入注重实效的变革。该文首先介绍了软件重用的概念以及可重用的软件成分,随即介绍了软件重用技术,最后提出了在实际应用中使用软件重用技术的要点。
  关键词:软件重用技术;模块;面向对象;类;构件
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)34-1980-02
  A Study of Software Reuse in the Development of Software Applications
  HU Qian
  (Ningbo Dahongying University, Ningbo 315175, China)
  Abstract: Software reuse technology is an active area of software engineering research in recent years. Practice has proved that software reuse is an effective way to improve software productivity, reduce costs and improve quality. At the same time, It needs more pragmatic change on the aspect of key technology, management. This article introduced the concept of software reuse, and reusable software components at first. And then it introduced software reuse technology.Finally it presented the main points of the use of reusable software technology in the practical application.
  Key words: software reuse technology; module; object-oriented; class; components
  
  1 引言
  20世纪70年代以来,一些机构认识到复用研究在软件开发应用领域具有重要应用价值。软件重用是复用研究的最后意义课题之一。软件重用在改进生产率、提高所构建产品质量方面上的潜力。20世纪80年代初,美国联邦政府,特别是国防部,在其软件提供商圈内,进而在整个软件界,发起了有助于理解、组织和推动软件重用的一些活动。80年代以后,软件重用技术已被广泛认为能成倍提高软件生产率的重要技术。目前软件重用技术已经成为内容非常广泛的研究领域,是当今软件工程领域中的一个研究热点。比起重新开发一个软件,软件重用技术能大大缩短开发时间,节约人力、物力,提高软件可靠性。
  2 软件重用技术的基本概念
  最初的计算机中,由于软件依赖于具体的硬件结构,重用的可能性很小;随着系统的发展和软件的不断丰富,人们开始在更高一层的虚拟机器上开发软件,此时软件不再依赖于具体的机器结构,这就使重用成为可能;当今由于软件系统越来越庞大,重用显得更加重要 。软件重用也叫再用或复用。软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似的软件成分的过程。简单的说就是使用现已存在的软件成分构成新的软件系统。广义地讲,软件重用可分为以下3个层次:知识重用、方法和标准的重用、软件成分的重用。本文仅讨论软件成分的重用。
  3 软件成分可重用的必要条件
  1) 独立性强
  只有在模块化的系统结构中,模块内部的修改和局部系统的重构才能不影响系统的整体面貌。模块必须功能完整且唯一,并经过反复测试被确认为正确。它应该是不受或少受外界干扰的封装体。
  2) 高度可塑性
  在模块化的结构的前提下,这样的系统可以把依赖于具体运行环境的部分集中在少数几个模块内,一旦环境变化可以用其他模块替代。从而使重用因素能适应各种环境,提供为适应特定需求而扩充或修改已有构件的机制,而且所提供的机制必须使用起来简单方便。
  3) 结构清晰
  具有适当的规模,易读、易理解。同时接口必须清晰、简单、可靠。
  4) 建立在标准的统一的数据界面上
  以标准的数据模式为依据,可以减少系统中模块之间的数据交换和相互依赖关系,是数据的操作集中在几个模块内统一管理。
  4 软件可重用成分分析
  1) 代码。人们谈论最多的是代码重用,通常把它理解为调用库中的模块(比如标准函数库)。实际上代码重用可以采用源代码剪贴、源代码包含、继承三种形式。
  2) 数据。采用标准的数据交换格式有利于软件重用,尤其是在当前阶段声音、图像等也被定义为数据。因为如果数据是标准的形式,应用程序无须依据格式和内容的事先一致就可以利用数据。
  3) 程序结构。有效的重用需要一个结构出发点,而不仅是将模块组合连接。
  4) 程序设计。可用的描述公共应用程序设计类型的构造方法与通用程序设计的参考资料。这种重用有助于把一个应用系统移植到完全不同的软硬件平台上。
  5) 程序分析结果。重用某个软件系统的分析模型。这种重用特别适用于拥护需求未改变,但系统体系结构发生了变化的场合。
  6) 可重用的软件可重用的不仅仅是软件成分,整个软件系统也可重用。就是说,在环境和功能需求发生变化时,可以通过一些局部性的修改,在仍然保持整体稳定性的前提下,适应新的环境和需求。
  5 软件重用关键技术分析
  软件的重用技术可分为三个层次:知识重用、方法和标准的重用、软件成分的重用。就软件成分的重用可分为:代码重用、设计结果重用、分析结果重用。当前阶段来说,实现软件重用的技术途径有三种,一种是基于软件的自动生成,另一种是将重用部件进行组装。还有一种是正在走向成熟的面向对象的软件重用技术。
  1) 软件组合技术
  该技术就是按照一定规则把可重用的软件成分组合在一起,构成软件系统或新的可重用成分。特点是,可重用的软件成分作为被动的原子模块使用,它们在整个组合过程中保持不变。用底层部件库法和上层组合法可把软构件组合成所需的软件。
  2) 软件生成技术
  该技术是按照形式化的软件功能描述和一定的生成机理,由生成器系统主动地生成目标程序。这种方法所使用的可重用部件是生成器本身的代码摸板或隐藏在变换规则集中的摸板。这种技术抽象级别高,需要有可重用软件库和知识库的支持。
  3) 面向对象的软件重用技术
  面向对象的软件技术是重用技术中最成功的一个,它可以通过提高方法的聚合性、减小方法的规模和交互耦合的程度,以及利用继承机制、委托和封装等来提高软件的可重用性。
  利用面向对象技术,可以更方便更有效地实现软件重用。面向对象技术中的“类”,是比较理想的可重用软构件,不妨称为类构件。它有实例重用、继承重用和多态重用三种重用方式。
  实例重用。实例重用是最基本的重用方式。因为类的封装性,使用者不用了解实现细节,就可以使用适当的构造函数,按照需要创建类的实例。然后向所创建的实例发送适当的消息,启动相应的服务,完成需要的工作。这是最基本的重用。此外,还可以用几个简单的对象作为类成员,创建出一个更复杂的类。但是设计出一个理想的类构件并非一件容易的事。以确定某个类对外提供的服务为例:提供的服务过多,会增加接口的复杂度,使类构件难于理解;提供的服务过少,则会失去重用价值。
  继承重用。面向对象方法特有的继承性,提供了一种对已有的类构件进行裁剪的机制。当已有的类构件不能通过实例重用完全满足当前系统需求时,继承重用提供了一种安全地修改已有类构件,以便在当前系统中重用的手段。要提高继承重用的效果,关键是每个子类在继承父类的属性和服务的基础上,只加入少量新属性和新服务,这不仅降低了每个类构件的接口复杂度,表现出一个清晰的进化过程,提高每个子类的可理解性,而且为软件开发人员提供了更多可重用的类构件。
  为提高继承重用的效果,其关键是设计一个合理的、具有一定深度的类构件继承层次结构。必要时应在领域专家帮助下,建立符合领域知识的继承层次。
  多态重用。利用类的多态性不但可以降低消息连接的复杂程度,使对象的对外接口更加一般化,而且还提供了一种简单可靠的软构件组合机制。系统运行时,根据接收消息的对象类型,由多态机制启动正确的方法,去响应一个一般化的消息,从而简化了消息界面和软构件连接的过程。
  为充分实现多态重用,在设计类构件时,应该把注意力集中到一些可能影响重用特性的操作上(如与表示方法有关的操作、与数据结构有关的操作、与外部设备有关的操作等)。否则,这些操作会妨碍类构件的重用。这时,必须把它们从类的操作中分离出来,作为“适配接口”,也可以把适配接口再进一步细分为转换接口和扩充接口。
  6 软件重用技术的应用分析
  为了能够在软件开发过程中重用现有的软部件,必须在此之前不断的进行软部件的积累,并将它们组织成软部件库。这就是说,软件重用不仅要讨论如何检索所需的软部件以及如何对它们进行必要的修剪,还要解决如何选取软部件、如何组织软部件库等问题。因此,软件重用方法学通常要求软件开发项目既要考虑重用已有软部件的机制,又要系统的考虑生产可重用软部件的机制。这类项目通常被称为软件重用项目。软件重用技术一个典型范例就是IBM系统程序开发中基于构件的设计理念。其基本思想是要求设计的构快具有类似芯片的特性:抽象性、封闭性及信息隐蔽。一个构件可以是对某一函数、过程、数据类型、算法等可重用成分的抽象。使用构件的软件重用技术比传统方法可以简单不少,提高生产率,缩短了开发周期。
  在软件重用,必须靠严密有效的组织工作措施来保证其使用和改进。该技术使用要点包括:
  1) 理解。重用必须以对被重用成分的理解为基础。
  2) 表达。如何表达对可重用成分的需求。表达清楚才能寻找有关的构件。
  3) 集成。把寻找到的可重用成分如何集成。
  4) 正确性。集成后的软件系统如何保证其结果的正确性。
  5) 效益评估。如何对软件重用后的系统进行效益的定量估算。
  6) 组织措施。重用涉及整个软件生存周期,采取什么样的组织措施来保证全体软件人员协调一致地使用新技术。
  7 软件重用技术的未来分析
  有人预测:到2030年至少70%的新应用程序将会由构筑模块(building blocks)构成,这些构筑模块(如软构件和应用程序框架)加快了产品的开发速度和企业的应变能力。以设计模式,框架和商业构件形势出现的软部品可以通过重用显著的提升开发品质和生产力,重用反过来也可以显著的降低成本和缩短软件开发周期。未来应用程序的开发依存于一个开放的,便利构件选择和装配的综合体系结构。信息系统组织必须为基于构件开发制定一项战略。
  参考文献:
  [1] Mcclure C.软件复用技术在系统开发过程中考虑复用[M].北京:机械工业出版社,2003.
  [2] Reifer,Donald J.软件复用实践[M].北京:机械工业出版社,2005.
  [3] 雅各布森.软件复用结构、过程和组织[M].北京:机械工业出版社,2003.
  [3] 张海藩.软件工程导论[M].北京:清华大学出版社,1999:60-81.
  [4] 郑人杰,殷人昆,陶永雷.实用软件工程[M].北京:清华大学出版社,1997.
其他文献
从教二十多年,不断积累教育教学经验的同时,我也不断成长,这种成长不仅是教学水平的提高,更重要的还有教育教学情感上的升华。“爱学生”之行为持之以恒,在我看来,关爱之余还
期刊
摘要:将数据挖掘技术运用于软件质量管理,根据影响系统质量的属性,建立了质量管理和分析模型,并根据模型给出了系统实现的初步方案。该系统的实施,能够有效的保证软件产品的质量。  关键词:软件质量管理;数据挖掘;联机分析处理;关联规则  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)34-1977-03  Design and Research of Software Qu