[2017年整理]软件复用与软件构件技术

上传人:豆浆 文档编号:915506 上传时间:2017-05-21 格式:DOC 页数:16 大小:138.50KB
返回 下载 相关 举报
[2017年整理]软件复用与软件构件技术_第1页
第1页 / 共16页
[2017年整理]软件复用与软件构件技术_第2页
第2页 / 共16页
[2017年整理]软件复用与软件构件技术_第3页
第3页 / 共16页
[2017年整理]软件复用与软件构件技术_第4页
第4页 / 共16页
[2017年整理]软件复用与软件构件技术_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《[2017年整理]软件复用与软件构件技术》由会员分享,可在线阅读,更多相关《[2017年整理]软件复用与软件构件技术(16页珍藏版)》请在金锄头文库上搜索。

1、软件复用与软件构件技术Software Reuse and Software Component Technology杨芙清 梅宏 李克勤(北京大学计算机科学技术系 北京 100871)【提要】软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率和质量。近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持。软件复用研究重新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可行的途径。软件复用通常可分为产品复用和过程复用两条途径。基于构件的复用是产品复用的主要形式,也是当前复用研究的焦点。同时,在分布对象研究领域,软件构件技术也是一

2、个重要内容。当前软件构件技术被视为实现成功复用的关键因素之一。软件复用技术的广泛应用将促进软件产业的变革,使其重组分工,软件构件生产必将成为独立的行业而存在。这种变革对我国软件产业的发展将是一个很好的机遇。本文将对软件复用技术的发展作一全面综述,介绍软件复用的基本概念及关键技术,同时介绍国内外在软件复用方面的成功的研究和实践活动,包括我国政府支持的国家重点科技攻关项目青鸟工程,并对我国如何加强相关技术研究和应用,推动软件产业发展提出一些思路。关键词:软件工程,软件复用,软件构件技术,CASEAbstract: Software reuse offers a solution to elimin

3、ate repeated work and improve efficiency and quality in the software development. In the recent ten years, object-oriented technology has appeared and become a mainstream technology, thereby providing fundamental technology support for software reuse. Software reuse regains more attention in softwar

4、e engineering research and is considered a practical and feasible approach to solving the software crisis.Software reuse is generally classified into two catalogues: product reuse and process reuse. Reuse based on software components is the important form of product reuse and is the major area of so

5、ftware reuse research. At the same time, software component technology plays an important role in distributed object research. Therefore, software component technology is regarded as a key factor of successful software reuse.The development and application of software reuse technology will facilitat

6、e the revolution of software development and reorganize software industry. As a result, the development of software components will become an independent and inseparable industry. The revolution offers a good chance for Chinese software development.This paper is a summarization on the development of

7、 software reuse technology. It presents fundamental concepts and key techniques of software reuse. After introducing several successful research and practice in software reuse, including Jade Bird Project, a Chinese national key project supported by the government, it proposes some ideas on how to r

8、einforce research and application of related techniques and facilitate the development of software industry in China.Key words: Software Engineering, Software Reuse, Software Component Technology, CASE一、 引言1.1 为什么要复用 通常情况下,应用软件系统的开发过程包含以下几个阶段:需求分析、设计、编码、测试、维护等。当每个应用系统的开发都是从头开始时,在系统开发过程中就必然存在大量的重复劳动,

9、如:用户需求获取的重复、需求分析和设计的重复、编码的重复、测试的重复和文档工作的重复等。探讨应用系统的本质,可以发现其中通常包含三类成分:通用基本构件:是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素等,它们可以存在于各种应用系统中;领域共性构件:是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中;应用专用构件:是每个应用系统的特有构成成分。应用系统开发中的重复劳动主要在于前两类构成成分的重复开发。软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,

10、如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。1.2 复用的基本概念软件复用是指重复使用“为了复用目的而设计的软件 ”的过程 22。相应地,可复用软件是指为了复用目的而设计的软件。与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本间重复使用代码的

11、过程,这两类行为都不属于严格意义上的软件复用。以下的类比有助于进一步说明软件复用的概念。在软件演化的过程中,重复使用的行为可能发生在三个维上:1. 时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护。2. 平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运行于新平台,即软件移植。3. 应用维:将某软件(或其中构件 )用于其他应用系统中,新系统具有不同功能和用途,即真正的软件复用。这三种行为中都重复使用了现有的软件,但是,真正的复用是为了支持软件在应用维的演化,使用“为复用而开发的软件(构件)” 来更快、更好地开发新的应用系统。复用概念的第一次引入是在

12、 1968 年 NATO 软件工程会议上,McIlroy 的论文“大量生产的软件构件”中。在此以前,子程序的概念也体现了复用的思想。但其目的是为了节省当时昂贵的机器内存资源,并不是为了节省开发软件所需的人力资源。然而子程序的概念可以用于节省人力资源的目的,从而出现了通用子程序库,供程序员在编程时使用。例如,数学程序库就是非常成功的子程序复用的例子。在其后的发展过程中,有许多复用技术的研究成果和成功的复用实践活动。但是,复用技术在整体上对软件产业的影响却并不尽如人意。这是由于技术方面和非技术方面的种种因素造成的,其中技术上的不成熟是一个主要原因。近十几年来,面向对象技术出现并逐步成为主流技术,为

13、软件复用提供了基本的技术支持。软件复用研究重新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可行的途径 12。分析传统产业的发展,其基本模式均是符合标准的零部件(构件) 生产以及基于标准构件的产品生产(组装),其中,构件是核心和基础,“ 复用”是必需的手段。实践表明,这种模式是产业工程化、工业化的必由之路。标准零部件生产业的独立存在和发展是产业形成规模经济的前提。机械、建筑等传统行业以及年轻的计算机硬件产业的成功发展均是基于这种模式并充分证明了这种模式的可行性和正确性。这种模式是软件产业发展的良好借鉴,软件产业要发展并形成规模经济,标准构件的生产和构件的复用是关键因素。这正是软件复

14、用受到高度重视的根本原因。软件复用可以从多个角度进行考察 18。依据复用的对象,可以将软件复用分为产品复用和过程复用。产品复用指复用已有的软件构件,通过构件集成(组装) 得到新系统。过程复用指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应用领域。产品复用是目前现实的、主流的途径。依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒(Black-box)复用和白盒(White-box)复用。黑盒复用指对已有构件不需作任何修改,直接进行复用。这是理想的复用方式。白盒复用指已有构件并不能完全符合用户需求,需

15、要根据用户需求进行适应性修改后才可使用。而在大多数应用的组装过程中,构件的适应性修改是必需的。1.3 如何实现复用软件复用有三个基本问题,一是必须有可以复用的对象,二是所复用的对象必须是有用的,三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关的过程:可复用软件(构件) 的开发(Development for Reuse)和基于可复用软件( 构件)的应用系统构造(集成和组装)(Development with Reuse)。解决好这几个方面的问题才能实现真正成功的软件复用。与以上几个方面的问题相联系,实现软件复用的关键因素(技术和非技术因素) 主要包括:软件构件技术(Softwar

16、e Component Technology)、领域工程(Domain Engineering)、软件构架(Software Architecture)、软件再工程(Software Reengineering)、开放系统 (Open System)、软件过程(Software Process)、CASE 技术等以及各种非技术因素。1.4 文章组织本文第二章将详细讨论实现软件复用的主要技术因素。第三章将介绍国际上关于软件复用的成功的研究和实践活动。第四章将介绍青鸟软件生产线。第五章进行总结和展望。二、实现软件复用的关键因素实现软件复用的各种技术因素和非技术因素是互相联系的。如图 1 所示,它们结合在一起,共同影响软件复用的实现。2.1 软件构件技术构件(Component) 是指应用系统中可以明确辨识的构成成分。而可复用构件(Reusable Component)是指具有相对独立的功能和可复用价值的构件。可复用构件应具备以下属性 22:有用性(Usefulness):构件必须提供有用的功

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号