收藏 分享(赏)

软件复用.ppt

上传人:weiwoduzun 文档编号:4195698 上传时间:2018-12-15 格式:PPT 页数:42 大小:751.50KB
下载 相关 举报
软件复用.ppt_第1页
第1页 / 共42页
软件复用.ppt_第2页
第2页 / 共42页
软件复用.ppt_第3页
第3页 / 共42页
软件复用.ppt_第4页
第4页 / 共42页
软件复用.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、软件复用与重构,软件复用组员:曲娇徐荣存 王巧玲,1.软件复用的背景,2.软件复用的基本概念,3.实现软件复用的关键技术,4.基于构件的软件复用技术,目录,5.,基于对象的软件复用技术,为什么需要软件复用,应用软件系统的一般开发模型,需求分析,设计,实现,测试,运行,每个应用系统的开发均涉及大量的重复劳动,用户需求获取的重复,需求分析、设计的重复,编码实现的重复,测试工作的重复,文档工作的重复,What is Reuse?,What is Software Reuse,1.软件复用思想的提出60年代开始出现的软件危机导致了软件复用技术的诞生 。 1968年 ,Dough Mcllory在德国提

2、出2.软件复用技术的发展 19681978年:萌芽、潜伏期 19791983年:再发现期 19831994年:发展期 1994年至今:成熟期,一位程序员编写了一些排序程序,通过不同的参数传递来实现多次调用;,C程序员编写了解三角方程的程序,整个程序共调用了12次正弦函数;,一位Ada程序员编写了一个一段模拟程序,涉及处理队列和一个处理器数组,为此查找通用Ada队列和数组程序包,并将其插入运行Ada环境中,并实例化队列两次(就绪队列和阻塞队列),实例化数组一次(处理器数组)。,二. 软件复用的基本概念,软件复用是指重复使用“为了复用目的而设计的软件”的过程。 与软件复用的概念相关 ,重复使用软件

3、的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程 ,或在一个应用系统的不同版本间重复使用代码的过程 ,这两类行为都不属于严格意义上的软件复用。但是现在也基本上没有区别。 软件复用是在软件开发中避免重复劳动的解决方案。其出发点是应用系统(Application)的开发不再采用一切“从零开始”的模式 ,而是以已有的工作为基础 ,充分利用过去应用系统开发中积累的知识和经验 。如 :需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分,基于构件(Components)的复用是产品复用的主要形式,也是当前复用研究的焦点。 当前软件构件技术被视为实现成

4、功复用的关键因素之一。,软件复用按抽象程度的高低,可以划分为: (1)代码的复用包括目标代码和源代码的复用。其中目标代码的复用级别最低,历史也最久,当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(Binding)等功能来支持这种复用。源代码的复用级别略高于目标代码的复用,程序员在编程时把一些想复用的代码段复制到自己的程序中,产生新旧代码不匹配的错误。要依靠大量可复用构件的构件库。如“对象链接及嵌入”(OLE)技术。,软件复用的分类:,(2)设计复用设计结果比源程序的抽象级别更高,因此它的复用受实 现环境的影响较少,从而使可复用构件被复用的机会更多, 并且所需的修改更少。这种复用

5、有三种途径,第一种途径是 从现有系统的设计结果中提取一些可复用的设计构件,并把 这些构件应用于新系统的设计;第二种途径是把一个现有系 统的全部设计文档在新的软硬件平台上重新实现,也就是把 一个设计运用于多个具体的实现;第三种途径是独立于任何 具体的应用,有计划地开发一些可复用的设计构件。,(3)分析的复用这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。复用的途径也有三种,即从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作输入,产生针对不同软硬件平台和其它实现条件

6、的多项设计;独立于具体应用,专门开发一些可复用的分析构件。,(4)测试信息的复用主要包括测试用例的复用和测试过程信息的复用。前者是把一个软件的测试用例在新的软件测试中使用,或者在软件作出修改时在新的一轮测试中使用。后者是在测试过程中通过软件工具自动地记录测试的过程信息,包括测试员的每一个操作、输入参数、测试用例及运行环境等一切信息。这种复用的级别,不便和分析、设计、编程的复用级别作准确的比较,因为被复用的不是同一事物的不同抽象层次,而是另一种信息,但从这些信息的形态看,大体处于与程序代码相当的级别。,依据复用的对象 ,可以将软件复用分为产品复用和过程复用 . 产品复用:指复用已有的软件构件 ,

7、通过构件集成 (组装 )得到新系统 ; 过程复用:指复用已有的软件开发过程 ,使用可复用的应用生成器来自动或半自动地生成所需系统 . 过程复用依赖于软件自动化技术的发展 ,目前只适用于一些特殊的应用领域 .产品复用是目前现实的、主流的途径 .,依据对可复用信息进行复用的方式 ,可以将软件复用区分为黑盒 (Black Box)复用和白盒 (White Box)复用。,黑盒复用:指对已有构件不需作任何修改 ,直接进行复用 .这是理想的复用方式 . 白盒复用:指已有构件并不能完全符合用户需求 ,需要根据用户需求进行适应性修改后才可使用 .,按照重用活动所跨越的应用领域类型可以分为横向复用和纵向复用两

8、种类型。,横向复用:也成为水平重用,是指复用活动范围跨越了几个不同应用领域,如数据结构、算法、人机界面构件等。纵向复用:也称为垂直重用,是指重用活动的范围限制在同一个应用领域或者是一类具有较多共性的应用领域内。,三、实现软件复用的关键技术,软件复用技术分为组装技术和生成技术。,组装技术(harvesting reuse)是利用组装方式来复用软件构件,即对已有的软件构件不做修改或少做修改,直接将其插装在一起,从而构造出新的目标系统。,生成技术由程序生成器来获得复用.它是对模式的复用.生成器导出模式的专有的或定 制的版本,来实现模式的复用.模式相当于“种子”,从中可以生长出新的专有的软件构件.,从

9、软件复用的实质性质和过程, 软件复用技术又分为:,抽象技术 抽象是软件复用的关键,抽象是指对复用对象的概括与提炼,即将基本操 作和处理对象从语言、环境和其他细节中提炼出来.每一个抽象可描述相关的可复用对象集,每一个相关的可复用对象决定了一个抽象.抽象的结果为软构架,抽象可分为规范抽象和实现抽象两个层次.,选择技术 选择技术完成存放、比较和检索可复用软件对象的功能.选择是根据问题需求,在复用成分库中进行检索和匹配,以期得到可复用的对象.其主要涉及分类、检索和说明3个方面的问题.,例化技术:例化技术是对类属对象进行参数设置、转换、约束或某种形式化的技术,它是选择技术的继续.通过例化,将选定的满足问

10、题规范的复用对象的实现部分转换成可执行的程序代码.,集成技术:集成技术是根据复用技术所提供的框架,将选定的已实例化的复用对象组合成完整的软件系统的过程,也就是实现由软件部件构造软件系统的过程.,四、基于面向对象的软件复用技术,面向对象的软件复用方法以其独特的特点一将复用构件的构造技术、复用技术、修改技术和合成技术有机地揉合在一起,日益引起人们的注意。 (1)面向对象方法中的对象(类)是复用构件的一种雏形; (2)类和类继承是强有力的复用机制; (3)继承和重载是复用构件的修改技术; (4)继承和消息传递是复用构件合成新构件的构件合成机制。,oo方法中软件复用的可行性,面向对象的软件开发和软件复

11、用之间的关系是相辅相成的。一方面,00方法的基本概念、原则与技术提供了实现软件复用的有利条件;另一方面,软件复用技术也对面向对象的软件开发提供了有力的支持。 面向对象技术通过方法、消息、类、继承、封装和实例等机制构造软件系统,并为软件复用提供强有力的支持。很多面面向对象语言为应用程序开发着提供了易于使用的类库,如VC+中的MFC、java的JDK。,复用技术对oo方法的支持,五、基于构件的软件复用技术,基于构件的软件复用支持技术,构件、构架 获取,构件标准 化与描述,构件分类、 存储与检索,构件组装,CASE技术,软 件 过 程,非 技 术 因 素,领域工程,应用系统 领域,软件再工程,软件构

12、架技术,开放系统技术,遗产软件 系统,构件库系统,软件构件,1.构件的概念 构建是被标准化的可重用的软件资源。随着对软件复用理解的深入 ,构件的概念已不再局限于源代码构件 ,而是延伸到需求、系统和软件的需求规则约、系统和软件的构架、文档、测试计划、测试案例和数据以及其他对开发活动有用的信息 .这些信息都可以称为可复用软件构件。,2.构件的特点: 有用性 (Usefulness):构件必须提供有用的功能 ; 可用性 (Usability):构件必须易于理解和使用 ; 质量 (Quality) :构件及其变形必须能正确工作 ; 适应性 (Adapt ability) :构件应该易于通过参数化等方式

13、在不同语境中进行配置 ; 可移植性 (Portability) :构件应能在不同的硬件运行平台和软件环境中工作。,领域工程,什么是领域一组具有相似和相近软件需求的应用系统所覆盖的功能区域领域中通常具有一组对应的具有相似和相近软件需求的应用系统 领域工程为一组相似或相近的软件系统建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动。,领域工程包括三个主要的阶段:(1)领域分析:这个阶段的主要目标是获得领域模型(DomainModel)。它包含三项活动:建立领域需求定义建立领域面向对象分析模型建立领域术语字典其中,建立领域需求定义又可以划分为确定领域业务模型确定领域业务过程确定领域需

14、求建立领域需求定义与建立面向对象分析模型构成领域分析的主线,建立领域需求定义,建立领域面向对象分析模型,建立领域术语字典,确定术语,确定解释,确定同义词,确定领域中共同的需求,建立 面向对象 分析模型,建立与 领域需求定义间的 可追踪性,确定领域中需求的变化性,确定具有变化性的需求间的关系,复审,领域分析过程:,(2)领域设计:这个阶段的目标是获得领域构架(DomainSpecificSoftwareArchitecture)。DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。建立了领域模型之后,就可以派生出满足这些被建模的

15、领域需求的DSSA。由于领域模型中的领域需求具有一定的变化性,DSSA也要相应地具有变化性。,复审,结合设计模式,实现变化性,进行初步的领域设计,问题域 部分,人机交互 部分,控制接口 部分,数据接口 部分,建立与领域分析模型的可追踪性,领域设计过程:,(3)领域实现该阶段的主要目标是依据领域分析模型和DSSA开发领域特定的构件与构架(可复用信息)它们 可以从现有系统中提取得到,也可以通过重新开发而得到在可复用构件与DSSA之间需要建立可追踪性以将可复用构件与其规约联系起来,从方便使用角度应尽量提供黑盒式复用方式,软件再工程,再工程是一个工程过程它将逆向工程重构和正向工程组合起来,将现存系统

16、重新构造为新的形式。再工程的基础是系统理解,包括对运行系统、源代码、 设计、分析、文档等的全面理解,正向工程,再工程,逆向工程,需求,设计,实现,重构,重构,重新建立 文档、重构,向前,向前,设计 恢复,规约 恢复,再工程,再工程,软件构架是对系统整体结构设计的刻划,包括全 局组织与控制结构,构件间通讯、同步和数据访问 的协议,设计元素间的功能分配,物理分布,设计 元素集成,伸缩性和性能,设计选择等。在基于复用的软件开发中,为复用而开发的软件 构架可以作为一种大粒度的、抽象级别较高的软件 构件进行复用,而且软件构架还为构件的组装提供 了基础和上下文,对于成功的复用具有非常重要的意义。,软件构架

17、技术,开放系统技术,开放系统技术的基本原则是在系统的开发中使用接口标准 ,同时使用符合接口标准的实现 . 对于系统的演化 ,提供了一个稳定的基础 。 系统 (子系统 )间的互操作提供了保证 . 对于稳定的接口标准的依赖 ,使得开发系统更容易适应技术的进步 解决异构环境中的互操作为目标 开放系统技术为软件复用提供了良好的支持 ,在符合接口标准的前提下 ,构件就可以独立地进行开发 。特别是分布对象技术使得符合接口标准的构件可以方便地以“即插即用”的方式组装到系统中,实现黑盒复用。,软件过程,软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。一个良好定义的

18、软件过程对软件开发的质量和效率有着重要影响。当前,软件过程研究以及企业的软件过程改善己成为软件工程界的热点,并已出现了一些实用的过程模型标准,如CMM、1509001/TicklT等。然而,基于构件复用的软件开发过程和传统的一切从头开始的软件开发过程有着实质性的不同,探讨适应于软件复用的软件过程自然就成为一个迫切的问题。,CASE技术,随着软件工程思想的日益深入人心,以计算机辅助开发软件为目标的CASE(ComputerAidedSoftwareEngineering)技术越来越为众多的软件开发人员所接受。 CASE工具和CASE环境得到越来越广泛的应用。 CASE技术对软件工程的很多方面,例

19、如分析、设计、代码生成、测试、版本控制和配置管理、再工程、软件过程、项目管理等等,都可以提供有力的自动或半自动支持。CASE技术的应用,可以帮助软件开发人员控制软件开发中的复杂性,有利于提高软件开发的效率和质量。软件复用同样需要CASE技术的支持。,CASE技术中与软件复用相关的主要研究内容包括:在面向复用的软件开发中,可复用构件的抽取、描述、分类和存储;在基于复用的软件开发中,可复用构件的检索、提取和组装;可复用构件的度量等等。 CASE是一组工具和方法的集合,可以辅助软件生存周期各阶段进行软件开发。 CASE把软件技术、软件工具和软件开发方法集成到一个统一的框架中,构成软件开发的环境,成为

20、CASE环境。,CASE工具的分类,(1)按功能分:1.圆形工具 2.电脑荧幕显示和报表产生器3.分析工具 4.数据库 5.文件产生器 6.程式产生器(2)按支持的过程分:1.设计工具 2.编程工具 3.维护工具(3)按支持的范围分1.窄支持 2.较宽支持 3.一般支持工具,非技术因素,除了上述的技术因素以外,软件复用还涉及众多的非技术因素,如:机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题等等。,普通意义上的构架应从以下几个方面来理解: 1)构架是与设计

21、的同义理解,是系统原型或早期的实现。 2)构架是高层次的系统整体组织。 3)构架是关于特定技术如何合作组成一个特定系统的解释。 框架 如果把软件的构建过程看成是传统的建筑过程; 框架的作用相当于为我们的房屋搭建的“架子”。 框架从重用意义上说,是一个介于构件和构架之间的一个 概念。 三者的主要区别在于:对重用的支持程度的不同: 1)构件是基础,最小单元。构件重用包括可重用构件的制作和利用可重用构件构造新构件或系统。,补充,软件构架 框架 构件,2)一个框架和构架包含多个构件。这些构件使用统一的框架(构架)接口,使得构 造一个应用系统更为容易。 3)框架复用包括代码复用和分析设计复用,一个应用系

22、统可能需要若干个框架的 支撑,从这个意义上来说,框架也是一个“构件”的同时,框架又是一类特定领域的构架。 4)构架复用不仅包括代码复用和分析设计复用,更重要的是抽象层次更高的系统 级复用。 5)框架和构架的复用层次更高,比构件更为抽象灵活,但也更难学习和使用。,Thank you!,参考文献:,1.杨芙清,朱 冰,梅 宏.软件复用.软件学报, 1995, 6 (9): 525533 2 .陈 英,李 丰,邬延风. 软件复用技术研究 ,1998, 3.魏远旺,基于面向对象的软件复用技术的研究和应用,2005 4.王海燕, 吴晓燕,基于构件的软件复用技术,2009 5.李戈,软件复用与构件技术简介,2008,软件系统的构成成分,通用的系统构成成分,领域共用的构成成分,系统专用的构成成分,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 软件工程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报