资源描述:
《[工学]01-02软件复用概论》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机与信息学院2010.11软件复用的概念和相关技术、方法声明本课件为计算机及信息工程学院2010级硕士研究生课程《软件复用》专用;本课件为非正式出版物,仅供选课同学参考,不得外传。如有不当之处,欢迎交流、指正;在制作本课件的过程中,参阅了大量的学术论文、论著和教材,对它们的作者表示真诚的感谢。本节课介绍软件复用的概念和相关技术、方法一、概述二、复用的基本概念三、实现软件复用的关键因素四、复用的研究与实践活动课程介绍WhatisReuse?WhatisSoftwareReuse?一位程序员编写了一些排序
2、程序,通过不同参数调用多次使用;C程序员编写了解三角方程的程序,整个程序共调用了12次正弦函数;一位Ada程序员编写了一段模拟程序,涉及处理队列和一个处理器数组,为此查找通用Ada队列和数组程序包,并将其插入运行Ada环境中,并实例化队列两次(就绪队列和阻塞队列),实例化数组一次(处理器数组).为什么软件复用会成为一个问题,而硬件复用不会成为问题?软件复用在那些方面与软件设计不同?复用很神?…..复用(Reuse)既不是杀手锏,也不是神奇的减肥药.复用是一种食谱和锻炼程序……PaulG.Basset,19
3、97软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率和质量。它通常可分为产品复用和过程复用两条途径。基于构件(Components)的复用是产品复用的主要形式,也是当前复用研究的焦点。当前软件构件技术被视为实现成功复用的关键因素之一。一、概述二、复用的基本概念关于复用(reuse)要弄明白三个问题:Why?Whatis?Howto?1.为什么要复用通常应用软件系统的开发过程包含以下几个阶段:需求分析、设计、编码、测试、维护等.应用系统通常包含三类成分:①通用基本构件:是特
4、定于计算机系统的构成成分。②领域共性构件:是应用系统所属领域的共性构成成分。③应用专用构件:是每个应用系统的特有构成成分。从这些内容是不是可以找到一些提高软件效率的方法呢?软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统(Application)的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。通过软件复用,在应用系统开发中可以充分地利
5、用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。2.复用的基本概念软件复用是指重复使用“为了复用目的而设计的软件”的过程。相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。在软件演化的过程中
6、,重复使用的行为可能发生在三个维上:(1)时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护.(2)平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运行于新平台,即软件移植.(3)应用维:将某软件(或其中构件)用于其他应用系统中,新系统具有不同功能和用途,即真正的软件复用.这三种行为中都重复使用了现有的软件,但是,真正的复用是为了支持软件在应用维的演化,使用“为复用而开发的软件(构件)”来更快、更好地开发新的应用系统.软件复用的发展过程子程序的概念也体现了复用的
7、思想.1968年NATO软件工程会议上,Mcilroy的论文“大量生产的软件构件”中第一次提出;在其后的发展过程中,有许多复用技术的研究成果和成功的复用实践活动.但是,复用技术在整体上对软件产业的影响却并不尽如人意;近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持;软件构件技术(及Web服务等)的产生,为软件复用提供了更高层次的支撑。分析传统产业的发展,其基本模式均是符合标准的零部件(构件)生产以及基于标准构件的产品生产(组装),其中,构件是核心和基础,“复用”是必需的手段.
8、软件产业要发展并形成规模经济,标准构件的生产和构件的复用是关键因素.这正是软件复用受到高度重视的根本原因软件复用的分类:依据复用的对象,可以将软件复用分为产品复用和过程复用.产品复用:指复用已有的软件构件,通过构件集成(组装)得到新系统;过程复用:指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需系统.过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应用领域.产品复用是目前现实的、主流的途径.依