《软件复用概论》ppt课件

上传人:tia****nde 文档编号:69635896 上传时间:2019-01-14 格式:PPT 页数:91 大小:956.32KB
返回 下载 相关 举报
《软件复用概论》ppt课件_第1页
第1页 / 共91页
《软件复用概论》ppt课件_第2页
第2页 / 共91页
《软件复用概论》ppt课件_第3页
第3页 / 共91页
《软件复用概论》ppt课件_第4页
第4页 / 共91页
《软件复用概论》ppt课件_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《《软件复用概论》ppt课件》由会员分享,可在线阅读,更多相关《《软件复用概论》ppt课件(91页珍藏版)》请在金锄头文库上搜索。

1、,计算机与信息学院 2014.11,软件复用的概念和相关技术、方法,声 明 本课件为计算机与信息学院2014级硕士研究生课程软件复用专用; 本课件为非正式出版物,仅供选课同学参考,不得外传。如有不当之处,欢迎交流、指正; 在制作本课件的过程中,参阅了大量的学术论文、论著和教材,对它们的作者表示真诚的感谢。,本节课介绍软件复用的概念和相关技术、方法 一、概 述 二、复用的基本概念 三、实现软件复用的关键因素 四、复用的研究与实践成果,课 程 介 绍,What is Reuse? What is Software Reuse?,一位程序员编写了一些排序程序,通过不同参数调用多次使用; C程序员编写

2、了解三角方程的程序,整个程序共调用了12次正弦函数; 有人写了段程序我COPY过来,然后再改改 有个现成的控件(例如:COM控件、EJB、CORBA对象),我把它嵌入到我的软件系统中 .,为什么软件复用会成为一个问题,而硬件复用不会成为问题? 软件复用在那些方面与软件设计不同? 软件复用解决了哪些问题?,复用很神吗?,复用(Reuse)既不是杀手锏,也不是神奇的减肥药. 复用是一种食谱和锻炼程序 Paul G. Basset,1997,软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率和质量。 它通常可分为产品复用和过程复用两条途径。基于构件(Component

3、s)的复用是产品复用的主要形式,也是软件复用研究的重点。 当前软件构件技术被视为实现成功复用的关键因素之一。,一、概 述,二、复用的基本概念,关于复用(reuse)要弄明白三个问题: Why? What is ? How to?,1、为什么可以复用?,世界上没有两个完全相同的软件(完全相同就不是两个软件了) 但是,任何一个新开发的软件,一个新的软件项目和产品中一般有超过80%的成分是前人曾经开发过的,通常应用软件系统的开发过程包含以下几个阶段: 需求分析、设计、编码、测试、维护等 . 应用系统通常包含三类成分 : 通用基本构件:是特定于计算机系统的构成成分。 领域共性构件:是应用系统所属领域的

4、共性构成成分。 应用专用构件:是每个应用系统的特有构成成分。,从这些内容是不是可以找到一些提高软件效率的方法呢?,软件复用是在软件开发中避免重复劳动的解决方案 ,其出发点是应用系统(Application)的开发不再采用一切“从零开始”的模式 ,而是以已有的工作为基础 ,充分利用过去应用系统开发中积累的知识和经验 ,如 :需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免

5、了重新开发可能引入的错误,从而提高了软件的质量。,软件复用的发展过程 子程序的概念也体现了复用的思想 . 1968年软件工程会议上 , Mcilroy的论文“大量生产的软件构件”中第一次提出;,在其后的发展过程中 ,有许多复用技术的研究成果和成功的复用实践活动 .但是 ,复用技术在整体上对软件产业的影响却并不尽如人意 ; 近十几年来 ,面向对象技术出现并逐步成为主流技术 ,为软件复用提供了基本的技术支持 ; 软件构件技术(及Web 服务等)的产生,为软件复用提供了更高层次的支撑。,2.复用的基本概念,软件复用是指重复使用“为了复用目的而设计的软件”的过程。相应地 ,可复用软件是指为了复用目的而

6、设计的软件 .与软件复用的概念相关 ,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程 ,或在一个应用系统的不同版本间重复使用代码的过程 ,这两类行为都不属于严格意义上的软件复用。,在软件演化的过程中 ,重复使用的行为可能发生在三个维上 : (1)时间维 :使用以前的软件版本作为新版本的基础 ,加入新功能 ,适应新需求 ,即软件维护 . (2)平台维 :以某平台上的软件为基础 ,修改其和运行平台相关的部分 ,使其运行于新平台 ,即软件移植 . (3)应用维 :将某软件 (或其中构件 )用于其他应用系统中 ,新系统具有不同功能和用途 ,即真正的软件复用 . 这三种行为中都

7、重复使用了现有的软件 ,但是 ,真正的复用是为了支持软件在应用维的演化 ,使用“为复用而开发的软件 (构件)”来更快、更好地开发新的应用系统 .,软件复用的分类: 依据复用的对象 ,可以将软件复用分为产品复用和过程复用 . 产品复用:指复用已有的软件构件 ,通过构件集成 (组装 )得到新系统 ; 过程复用:指复用已有的软件开发过程 ,使用可复用的应用生成器来自动或半自动地生成所需系统 . 过程复用依赖于软件自动化技术的发展 ,目前只适用于一些特殊的应用领域 .产品复用是目前现实的、主流的途径 .,依据对可复用信息进行复用的方式 ,可以将软件复用区分为黑盒 (Black Box)复用和白盒 (W

8、hite Box)复用 . 黑盒复用:指对已有构件不需作任何修改 ,直接进行复用 .这是理想的复用方式 . 白盒复用:指已有构件并不能完全符合用户需求 ,需要根据用户需求进行适应性修改后才可使用 . 而在大多数应用的组装过程中 ,构件的适应性修改是必需的。 灰盒复用?,分析传统产业的发展 ,其基本模式均是符合标准的零部件 (构件 )生产以及基于标准构件的产品生产(组装) ,其中 ,构件是核心和基础 ,“复用”是必需的手段.,软件产业要发展并形成规模经济 ,标准构件的生产和构件的复用是关键因素.这正是软件复用受到高度重视的根本原因,3 如何实现复用,实现复用的基本条件: 一是必须有可以复用的对象

9、 ; 二是所复用的对象必须是有用的 , 三是复用者需要知道如何去使用被复用的对象 . 软件复用包括两个相关过程 :可复用软件 (构件 )的开发 (Development for reuse)和基于可复用软件(构件 )的应用系统构造 (集成和组装 ) (Development with reuse) .,实现软件复用的关键因素 (技术和非技术因素 )主要包括 : 软件构件技术 (Software component technology) 领域工程 (Domain Engineering) 软件构架 (Software Architecture) 软件再工程 (Software Reengine

10、ering) 开放系统 (Open system) 软件过程 (Software Process) 技术等以及各种非技术因素。,二、实现软件复用的关键因素,实现软件复用的各种技术因素和非技术因素是互相联系的。,CASE技术,软 件 过 程,非 技 术 因 素,领域工程,构件、构架 获取,软件构件技术,应用系统 领域,软件再工程,软件构架技术,开放系统技术,构件标准 化与描述,构件分类、 存储与检索,构件组装,遗产软件 系统,构件库系统,1 软件构件技术,构件 (Component)是指应用系统中可以明确辨识的构成成分。而可复用构件 (Reusable Component) 是指具有相对独立的功

11、能和可复用价值的构件。 随着对软件复用理解的深入 ,构件的概念已不再局限于源代码构件 ,而是延伸到需求、系统和软件的需求规则约、系统和软件的构架、文档、测试计划、测试案例和数据以及其他对开发活动有用的信息 .这些信息都可以称为可复用软件构件。,可复用构件应具备以下属性,有用性 (Usefulness):构件必须提供有用的功能 ; 可用性 (Usability):构件必须易于理解和使用 ; 质量 (Quality) :构件及其变形必须能正确工作 ; 适应性 (Adapt ability) :构件应该易于通过参数化等方式在不同语境中进行配置 ; 可移植性 (Portability) :构件应能在不

12、同的硬件运行平台和软件环境中工作。,其主要研究内容包括 : (1)构件获取 :有目的的构件生产和从已有系统中挖掘提取构件 ; (2 )构件模型 :研究构件的本质特征及构件间的关系 ; (3 )构件描述语言 :以构件模型为基础 ,解决构件的精确描述、理解及组装问题 ; (4)构件分类与检索 :研究构件分类策略、组织模式及检索策略 ,建立构件库系统 ,支持构件的有效管理 ; (5)构件复合组装 :在构件模型的基础上研究构件组装机制 ,包括源代码级的组装和基于构件对象互操作性的运行级组装 ; (6 )标准化 :构件模型的标准化和构件库系统的标准化。,2 软件构架,软件构架是对系统整体结构设计的刻划

13、,包括全局组织与控制结构 ,构件间通讯、同步和数据访问的协议 ,设计元素间的功能分配 ,物理分布 ,设计元素集成 ,伸缩性和性能 ,设计选择等. 软件构架研究如何快速、可靠地从可复用构件构造系统的方式 ,着重于软件系统自身的整体结构和构件间的互联 .其中主要包括 :软件构架原理和风格 ,软件构架的描述和规约 ,特定领域软件构架 ,构件向软件构架的集成机制等。,重要的意义 : 通过对软件构架的研究 ,有利于发现不同系统在较高级别上的共同特性 ; 获得正确的构架对于进行正确的系统设计非常关键 ; 对各种软件构架的深入了解 ,使得软件工程师可以根据一些原则在不同的软件构架之间作出选择 ; 从构架的层

14、次上表示系统 ,有利于系统较高级别性质的描述和分析 . 在基于复用的软件开发中 ,为复用而开发的软件构架可以作为一种大粒度的、抽象级别较高的软件构件进行复用 ,而且软件构架还为构件的组装提供了基础和上下文 ,对于成功的复用具有非常重要的意义 .,3 领域工程,领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程 ,它覆盖了建立可复用软件构件的所有活动.领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域 领域工程包括三个主要的阶段 . (1)领域分析 (2)领域设计 (3)领域实现,(1)领域分析 :,这个阶段的主要目标是建立领域分析模型 它包含三项活动:建立领域需求定

15、义 建立领域面向对象分析模型 建立领域术语字典 其中,建立领域需求定义又可以划分为 确定领域业务模型 确定领域业务过程 确定领域需求 建立领域需求定义 与建立面向对象分析模型构成领域分析的主线,领域分析模型描述领域中系统之间的共同的需求 领域分析模型主要包括:领域术语字典、 领域需求定义、领域面向对象分析模型等,建立领域需求定义,建立领域面向对象分析模型,建立领域术语字典,确定术语,确定解释,确定同义词,确定领域中共同的需求,建立 面向对象 分析模型,建立与 领域需求定义间的 可追踪性,确定领域中需求的变化性,确定具有变化性的需求间的关系,复审,领域分析过程:,(2)领域设计 :,这个阶段的主

16、要目标是 针对领域分析阶段获得的 对目标领域的问题域和系统责任的认识 开发出相应的领域设计模型 并且显示地表示出来 领域设计模型的具体表现形式为: 特定于领域的软件构架:DSSA Domain-Specific Software Architecture 它要保持与领域分析模型中 需求变化的可追踪性,复审,结合设计模式,实现变化性,进行初步的领域设计,问题域 部分,人机交互 部分,控制接口 部分,数据接口 部分,建立与领域分析模型的可追踪性,领域设计过程:,(3)领域实现,该阶段的主要目标是 依据领域分析模型和DSSA 开发领域特定的构件与构架 它们 可以从现有系统中提取得到 也可以通过重新开发而得到 在可复用构件与DSSA之间需要建立可追踪性 以将可复用构件与其规约联系起来 从方便使用角度 应尽量提供黑盒式复用方式,DSSA和构件的详细设计,DSSA和构件的实现,从现有系统中 利用再工程技术 提取DSSA和构件,对现有构件 进行包装,依据领域分析模型和DSSA 组织可复用构件库,依据详细设

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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