软件复用(softwarereuse)

软件复用(softwarereuse) : 提高软件生产力和质量的一种技术,将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。


发展简史 软件复用的最早例子是子程序库。但是通常认为,软件复用的正式提出是在1968年。D.Mcllroy在国际上首次讨论软件工程的会议上建议建立生产软组件的工厂,用产品目录上的软组件构成复杂系统,以作为解决“软件危机”的一种可能技术途径。 在20世纪70年代中开始了软件工厂的多项研究实验。80年代软件复用技术得到美国、欧洲、日本的政府和企业界的倡导与支持,如美国先进研究汁划署(ARPA)的STARS计划;欧洲信息技术研究战略计划支持的若干计划,特别是Eureka软件工厂;日本的若干软件工厂(Hitachi,Toshiba,NEC,Fu-jitsu及NTT等);以及美国的若干公司级计划(GTE,AT&T,IBM,Hewlett-Packard)等等。 80年代后期在构件库系统、构件分类技术、可复用构件的创建与分发、复用支撑环境、公司级复用计划等方面取得了许多进展。但是没有达到原来对软件复用所预期的那种在软件生产力和质量上的重大提高,据认为是因为复用的范围太狭窄,许多对效率和质量关系重大的因素未在考虑之列。这导致了 80年代末提出对软件复用的广义理解,使得与软件计划有关的一切,包括知识,均在复用之列。这就大大拓宽了研究领域,使复用问题无处不在。最新的研究工作涉及非技术因素:管理、经济学、文化、法律。这些问题是重要的,是可能比技术问题更难以解决的。新的复用观把这些因素也包括在内。 软件复用技术的基本内容、现状和趋势 (1)复用什么 思想、概念、算法:被复用的是对一类问题的一般性解决方法。以算法来说,寻求算法的研究已经相当成熟。但是从复用的角度看,还需要在发展和分发标准目录方面做更多工作,并且提供专门的有关如何复用算法的详细信息的基本目录。制成品、构件:这是一直在着重做的。80年代初以来,软件工厂和公司级的复用计划都在从事软构件复用。面向对象的技术在构件复用上非常受重视。构件复用研究工作着重点是质量和可靠性,构件的适应性也是重要问题。特定领域的构件集合是研究的新趋势。过程、技能:最集中的研究领域之一,即如何把软件开发过程加以形式化并加以封装,创建可复用对象的集合。技能和技术诀窍的复用主要受到专家系统研究者的关注。 (2)复用形式及范围 垂直式:在同一应用领域中的复用,目的是得出一族系统的通用模型,可以用作样板来装配新的系统。研究重点在领域分析和领域建模,使用面向对象的术语,就是在特定问题领域中标识出一类相似系统的对象及操作和建立领域的模型。大多数软件工厂和有长期计划的机构都集中力量于垂直式复用。水平式:目的是在不同的应用中使用通用部件,科学子程序库、Unix工具是这类复用的例子。主要问题在于部件的包装和表达,以及发展可供广泛接触的库和库的网络,为此需要建立部件分类标准和部件目录。 (3)复用方式 有计划复用:系统化和正式的复用,软件工厂中的复用模式。有确定的指导原则和规程可以遵循,并且收集度量数据以评定复用的性能。这种复用需要真正来自高层的投资和承诺,而且难以预测投资的回报。还需要对现行的软件开发实践作重大的改变,对开发者有强制性的纪律要求,并且需要他们的妥协。核心问题是建立复用成熟性模型和经济学模型,以使经理人员了解预期效益、投资回报、初始代价和性能准则。专有化复用:非正式的复用,通常也称为看机会的复用。这是现在发生得最多的情形,复用是个人行为,不是在课题一级。不存在规程,所使用的构件也不是为复用目的而专门设计的。 (4)实现复用的途径 合成途径:用已有构件作为新系统的积木块。基于完善地建立起来的积累、高效的库系统和标准接口。虽然标榜复用所有的软件产物,但是主要着重于源代码复用。主要问题是库系统(构件选择和检索)、领域分析(构件理解和构件适应)以及接口技术(构件集成)。生成途径:在规约级的复用。通过应用代码生成器,可以提供具有最高潜力的回报。Unix中语法分析器的生成器Lex和YACC是著名例子。主要问题是如何形式地表达针对特定领域的规约语言、软件进程和元生成器。 (5)单元如何复用 黑箱:复用构件不经任何修改。可复用构件是封装了的,具有标准接口。这种途径保证了更高的质量和可靠性,但是创建这种可复用黑箱的代价比较昂贵。主要问题是验证和(发给证书)证明在任何可能情形下构件都完美无缺陷地执行。 白箱:构件可以修改使得适应于具体情形的需要。这是最常见的途径,特别是在专有化复用的场合。绝大多数复用计划,包括软件工厂都属于白箱复用。主要问题是构件的参数化和内部可适应性,以及把复用扩展到更高级产物如设计和规约。 (6)何种工作产物被复用 源代码:现状是代码复用。已有的绝大多数复用工具、环境及方法是针对代码复用,但是发展趋势是越来越少强调代码复用。到最后,代码将从更高级的表达自动地生成。设计:设计复用可提供比代码级复用更高的回报,但是仍是在生长中的技术。面向对象的方法可以部分地或间接地实现设计复用,但是系统化的实践仍在研究阶段。 规约:可以提供最高的回报,是生成式复用的焦点。当规约可供复用时,通常也就实现了设计级和代码级的复用。对象:越来越受到重视的复用物。有多种方法、工具和环境来创建对象,面向对象的方法看来是未来的复用技术。趋势是走向集成化的工具和方法来覆盖开发全过程。 正文:即除代码之外的所有工作产物,特别是供人使用的文档。正文复用日益重要,趋势是把可复用正文与所有其他工作产物一起集成。。体系结构:最大的复用单位。要分析应用领域以找出共同的设计,然后用作基本样板来集成可复用部件或是开发专门的代码生成器。领域分析同时支持生成式和合成式复用。(董韫美)




http://iknow.seforge.org/sewiki/X_e8_bd_af_e4_bb_b6_e5_a4_8d_e7_94_a8SoftwareReuse

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值