软件工程第十章精.ppt

上传人:石*** 文档编号:65722186 上传时间:2022-12-06 格式:PPT 页数:34 大小:4.77MB
返回 下载 相关 举报
软件工程第十章精.ppt_第1页
第1页 / 共34页
软件工程第十章精.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《软件工程第十章精.ppt》由会员分享,可在线阅读,更多相关《软件工程第十章精.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件工程第十章软件工程第十章第1页,本讲稿共34页软件复用的基本概念软件复用的基本概念引言:做事习惯性地沿用已有的经验和方法.简单的说,软件复用就是将已有的软件成分用于构造新的软件系统软件共享:在一个系统中多次使用一个相同的软件成分软件移植:对一个软件进行修改,使它能运行于新的软、硬件平台第2页,本讲稿共34页软件复用的定义软件复用的定义 在构造新的软件系统的过程中,对已存在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。在的软件人工制品的使用技术。制造软件构件的技术制造软件构件的技术:独立于单个软件:独立于单个软件系统开发的,可服务于整个应用领域的系统开发的,可服务于整个应用领域

2、的构件生产技术构件生产技术使用软件构件的技术使用软件构件的技术:在软件系统开:在软件系统开发中使用已有软件构件的技术,也称发中使用已有软件构件的技术,也称为为“基于构件的软件开发基于构件的软件开发”第3页,本讲稿共34页软件复用和软件开发的关系:软件复用和软件开发的关系:开发伴随着复用,开发为了复用。开发伴随着复用,开发为了复用。CBSE的一种过程模型的一种过程模型制造软件构件的制造软件构件的技术技术领域工领域工程程基于构件的软件基于构件的软件工程工程CBSE使用软件构件的使用软件构件的技术技术基于构基于构件的开发件的开发第4页,本讲稿共34页CBSE的一种过程模型的一种过程模型第5页,本讲稿

3、共34页软件复用的重要性软件复用的重要性 软件复用的目的是能更快、更好、成本更软件复用的目的是能更快、更好、成本更低地生产软件制品。低地生产软件制品。一般地说,在软件开发中采用复用构件可一般地说,在软件开发中采用复用构件可以比从头开发这个软件更加容易。以比从头开发这个软件更加容易。第6页,本讲稿共34页企业需要解决的问题企业需要解决的问题充分认识软件复用的重要性,尽快建立支充分认识软件复用的重要性,尽快建立支持软件复用的基础设施(例如构件库、制持软件复用的基础设施(例如构件库、制造可复用构件的辅助开发工具)造可复用构件的辅助开发工具)建立相应的培训计划,在企业内部形成建立相应的培训计划,在企业

4、内部形成一个使用复用技术的环境一个使用复用技术的环境采用更先进的,可以促进软件复用的软采用更先进的,可以促进软件复用的软件开发方法。如面向对象的开发方法件开发方法。如面向对象的开发方法采用相应的激励措施。例如改变传统的工采用相应的激励措施。例如改变传统的工作量计算方法作量计算方法代码行代码行第7页,本讲稿共34页软件复用的粒度软件复用的粒度 四类四类源源代代码码复复用用:对对对对构构构构件件件件库库库库中中中中用用用用高高高高级级级级语语语语言言言言编编编编写写写写的的的的源源源源代代代代码码码码构构构构件的复用。件的复用。件的复用。件的复用。优优点点:构构件件具具有有较较高高的的可可靠靠性性

5、,使使用用者者只只需需设设置置参数而无需介入构件内部,降低复用的难度参数而无需介入构件内部,降低复用的难度缺缺点点:构构件件的的通通用用性性、抽抽象象性性成成为为在在具具体体使使用用时时必须面对的问题必须面对的问题软件体系结构复用:软件体系结构复用:对已有的软件体系结构的复用。对已有的软件体系结构的复用。对已有的软件体系结构的复用。对已有的软件体系结构的复用。优优点点:可可复复用用较较大大粒粒度度的的软软件件制制品品,其其修修改改具具有有局部性局部性缺缺点点:难难以以抽抽象象出出简简明明的的描描述述,存存放放体体系系结结构构的的库往往不易管理库往往不易管理第8页,本讲稿共34页软件复用的粒度软

6、件复用的粒度应用程序生成器:应用程序生成器:对整个软件系统的设计的复用,包括对整个软件系统的设计的复用,包括对整个软件系统的设计的复用,包括对整个软件系统的设计的复用,包括整个软件体系结构、相应的子系统和特定的数据结构及算法。整个软件体系结构、相应的子系统和特定的数据结构及算法。整个软件体系结构、相应的子系统和特定的数据结构及算法。整个软件体系结构、相应的子系统和特定的数据结构及算法。优点:优点:自动化程度高,能获取某个特定领域的标准自动化程度高,能获取某个特定领域的标准和以黑盒形式输出结果(应用程序)。和以黑盒形式输出结果(应用程序)。缺点:缺点:特定的应用程序生成器不易构造特定的应用程序生

7、成器不易构造领域特定的软件体系结构的复用:领域特定的软件体系结构的复用:对特定领域中存对特定领域中存对特定领域中存对特定领域中存在的一个公共体系结构及其构件的复用。在的一个公共体系结构及其构件的复用。在的一个公共体系结构及其构件的复用。在的一个公共体系结构及其构件的复用。优点:优点:复用的程度高,对可复用构件的组合提供了复用的程度高,对可复用构件的组合提供了一个通用框架一个通用框架缺点:缺点:前期投资很大前期投资很大第9页,本讲稿共34页软件复用的形式软件复用的形式 横横向向复复用用:也也称称为为水水平平复复用用,是是指指复复用用活活动动的的范范围围跨跨越越了了几几个个不不同同的的应应用用领领

8、域域,复复用用的的软软件件产产品品主主要要包包括括数数据据结构、通用算法、人机界面等软件元素。结构、通用算法、人机界面等软件元素。纵纵向向复复用用也也称称为为垂垂直直复复用用,是是指指复复用用活活动动的的范范围围限限制制在在同同一一个个应应用用领领域域或或者者是是一一类类具具有有较较多多共共性性的的应应用领域内。用领域内。生生产产者者复复用用:指指建建立立、获获取取或或者者重重新新设设计计可可复复用用构构件件的的活活动动。涉涉及及到到的的活活动动包包括括复复用用的的规规划划、领领域域分分析、构件的开发、构件库的组织和管理。析、构件的开发、构件库的组织和管理。消消费费者者复复用用:指指使使用用可

9、可复复用用的的构构件件建建立立新新的的系系统统的的活活动动。涉涉及及到到的的活活动动包包括括应应用用系系统统的的规规划划、构构件件的的检检索索和和选选择择、应应用用系系统统中中非非复复用用部部分分的的开开发发、应应用用系系统的组装。统的组装。第10页,本讲稿共34页软件软件复用的困难复用的困难 复用具有许多明显的优点,但目前应用不广泛的主要复用具有许多明显的优点,但目前应用不广泛的主要原因是:原因是:(1)技术因素技术因素 构件与应用系统之间的差异;构件与应用系统之间的差异;构件与应用系统之间的差异;构件与应用系统之间的差异;构件要达到一定的规模,才能支持有效的复用;构件要达到一定的规模,才能

10、支持有效的复用;发现合用构件的困难;发现合用构件的困难;基于复用的软件开发方法和软件过程需要一些新的理论、技基于复用的软件开发方法和软件过程需要一些新的理论、技基于复用的软件开发方法和软件过程需要一些新的理论、技基于复用的软件开发方法和软件过程需要一些新的理论、技术及支持环境。术及支持环境。术及支持环境。术及支持环境。(2)(2)人的因素人的因素喜欢自己创造而不喜欢使用别人的东西。喜欢自己创造而不喜欢使用别人的东西。(3)管理因素管理因素管理因素管理因素把复用构件和一般软件构件同等看待,把复用把复用构件和一般软件构件同等看待,把复用看作可有可无的事。看作可有可无的事。(4)教育因素教育因素教育

11、因素教育因素软件科学技术的教育与培训中,缺乏关于软软件科学技术的教育与培训中,缺乏关于软件复用的内容,缺少专门教材和课程。件复用的内容,缺少专门教材和课程。第11页,本讲稿共34页领域工程领域工程所所谓谓的的“领领域域”,指指的的是是一一组组具具有有相相似似或或相相近近软软件件需需求求的的应应用用系系统统所所覆覆盖盖的的功功能能区域。区域。最最优优复用复用应应用系用系统统形成的功能最大交集形成的功能最大交集通通过过领领域域分分析析(domain(domain analysis)analysis)找找出出最最优优复复用用,对对它它们们进进行行设设计计和和构构造造,形形成成为为可可复复用用构构件件

12、,进进而而建建立立大大规规模模的的软软件件构件构件仓库仓库的的过过程,就是程,就是领领域工程域工程。第12页,本讲稿共34页领域分析领域分析 定义定义领域分析是在领域分析是在特定应用领域特定应用领域寻找寻找最优复用最优复用,以公,以公共对象、类、子集合和框架等形式进行共对象、类、子集合和框架等形式进行标识标识,然然后对它们进行后对它们进行分析分析和和规约规约。目标目标是获得是获得“领域需求领域需求”及及“领域模型领域模型”作用作用根据领域需求,领域工程师寻找领域的根据领域需求,领域工程师寻找领域的共性共性,进,进而确定软件的可复用构件而确定软件的可复用构件 第13页,本讲稿共34页领域分析的输

13、入和输出领域分析的输入和输出 第14页,本讲稿共34页领域分析的步骤领域分析的步骤选择特定的领域选择特定的领域抽取具有最优复用的功能抽取具有最优复用的功能标识该功能标识该功能建立领域分析模型建立领域分析模型定义需求规约,得出需求规约构件和若干定义需求规约,得出需求规约构件和若干个连接子配置构成的领域模型个连接子配置构成的领域模型第15页,本讲稿共34页建造可复用构件建造可复用构件 构件应具有的特性构件应具有的特性通用性通用性可变性可变性易组装性易组装性创建领域构件的设计框架创建领域构件的设计框架 标准数据标准数据 标准接口协议标准接口协议 程序模板程序模板第16页,本讲稿共34页构件模型构件模

14、型 基于面向对象技术的复用构件模型基于面向对象技术的复用构件模型基于面向对象技术的复用构件模型基于面向对象技术的复用构件模型第17页,本讲稿共34页几种流行的构件技术几种流行的构件技术COM(组件对象模型)技术(组件对象模型)技术CORBA(公共对象请求代理体系结构)(公共对象请求代理体系结构)OpenDoc开放式文档接口开放式文档接口第18页,本讲稿共34页可复用构件可复用构件一一个个软软件件只只有有在在多多个个系系统统中中被被使使用用才才可可称称为为“可可复复用用构构件件”,必须具备的条件:,必须具备的条件:(1)(1)独立性独立性解决一个相对独立的问题,或大问题中某解决一个相对独立的问题

15、,或大问题中某 个相对独立的部分;个相对独立的部分;(2)(2)完整性完整性提供较完整的解决,不要遗留很多缺口,提供较完整的解决,不要遗留很多缺口,让复用者做大量补充;让复用者做大量补充;(3)(3)可标识性可标识性构件所解决的问题应该是可标识的,构件所解决的问题应该是可标识的,可命名,有简要介绍,便于理解和使用。可命名,有简要介绍,便于理解和使用。(4)(4)通用性通用性构件解决的问题,应在同类应用中具有构件解决的问题,应在同类应用中具有 一般性;一般性;(5)(5)适应性适应性应用场合有某些变化时,构件仍是可用的,应用场合有某些变化时,构件仍是可用的,使构件的某些数据参数化和数据类型参数化

16、;使构件的某些数据参数化和数据类型参数化;(6)(6)可靠性可靠性要求构件对预计将要使用它的系统时要求构件对预计将要使用它的系统时 可靠的;可靠的;(7)(7)标准化标准化可复用构件的标准化对于软件复用是至关可复用构件的标准化对于软件复用是至关 重要的。重要的。第19页,本讲稿共34页建立可复用构件库建立可复用构件库 三种分类模式三种分类模式 枚举分类:枚举分类:定义一个定义一个层次结构层次结构来描述构件,来描述构件,构件库中的构件在该层次中定义软件构件的构件库中的构件在该层次中定义软件构件的类以及不同层次的子类类以及不同层次的子类。图形用户界面类图形用户界面类窗口类窗口类菜单类菜单类图形窗图

17、形窗口构件口构件文字窗口文字窗口构件构件系统菜系统菜单构件单构件弹出式菜弹出式菜单构件单构件普通菜普通菜单构件单构件枚举分类的层次结构枚举分类的层次结构第20页,本讲稿共34页建立可复用构件库建立可复用构件库 呈面分类呈面分类 :对领域进行分析后,对构件可标对领域进行分析后,对构件可标识出一组识出一组呈面呈面,呈面可以描述构件的基本特征,呈面可以描述构件的基本特征,并根据特征重要性区分优先次序。并根据特征重要性区分优先次序。呈面呈面应用领域应用领域对象对象功能功能编程语言编程语言呈面值呈面值图形用户界面编程图形用户界面编程菜单菜单动态修改菜单项动态修改菜单项JAVA第21页,本讲稿共34页建立

18、可复用构件库建立可复用构件库 属性属性-值分类值分类 :为领域中的所有构件定义一组为领域中的所有构件定义一组属性属性,然后赋给这组属性一组值。然后赋给这组属性一组值。该方法首先是为构件库中的所有构件定义一该方法首先是为构件库中的所有构件定义一组属性,并赋予相应的属性值。开发人员通过指组属性,并赋予相应的属性值。开发人员通过指定一组属性值在构件库中对构件进行检索。定一组属性值在构件库中对构件进行检索。该分类方法与呈面分类方法有几点不同之处:该分类方法与呈面分类方法有几点不同之处:属性的数量没有限制,而刻面描述一般限制在属性的数量没有限制,而刻面描述一般限制在7或或8个呈面;个呈面;属性没有优先级

19、,而呈面根据其重要程度,属性没有优先级,而呈面根据其重要程度,有相应的优先级;有相应的优先级;第22页,本讲稿共34页建立可复用构件库建立可复用构件库构件库必须的环境支持构件库必须的环境支持存放描述构件的分类信息的数据库;存放描述构件的分类信息的数据库;该数据库的管理系统;该数据库的管理系统;允许用户查找构件的检索系统;允许用户查找构件的检索系统;可以自动将构件加入新系统中的可以自动将构件加入新系统中的CASE工工具。具。第23页,本讲稿共34页领域工程活动内容图示领域工程活动内容图示 领域分析领域分析用户需求用户需求软件开发与构件开发软件开发与构件开发目标软件目标软件确认确认可复用构件库可复

20、用构件库检索检索理解理解第24页,本讲稿共34页基于构件的软件开发基于构件的软件开发基于构件的软件工程与传统的或面向对象的软件基于构件的软件工程与传统的或面向对象的软件工程相比,有显著的差异。工程相比,有显著的差异。它不是针对某个特定的软件系统,而是针对一类它不是针对某个特定的软件系统,而是针对一类软件系统的共同的特征、知识和需求。软件系统的共同的特征、知识和需求。基于构件的软件的开发过程基于构件的软件的开发过程包括两个并发的子包括两个并发的子过程,一个是领域工程,另一个是基于构件的开过程,一个是领域工程,另一个是基于构件的开发。领域工程完成一组可复用构件的标示、构造、发。领域工程完成一组可复

21、用构件的标示、构造、分类和传播;基于构件的开发完成使用可复用构分类和传播;基于构件的开发完成使用可复用构件构造新的软件系统。件构造新的软件系统。第25页,本讲稿共34页基于构件的软件开发基于构件的软件开发构件集成的过程第26页,本讲稿共34页基于构件的软件开发基于构件的软件开发 过程过程、构件的鉴定构件的鉴定构件的鉴定是对打算用于软件开发的构件能否满足应构件的鉴定是对打算用于软件开发的构件能否满足应用的需要,达到应用所需要的性能、可靠性、质量的保证用的需要,达到应用所需要的性能、可靠性、质量的保证进行相应的考察。进行相应的考察。、构件的调整构件的调整通常在将构件复用到应用中时,构件需要进行必要

22、通常在将构件复用到应用中时,构件需要进行必要的调整和修改才能适应应用的需要。的调整和修改才能适应应用的需要。、构件的组装构件的组装构件的组装是将经过鉴定和调整以后的构件组装到应用系构件的组装是将经过鉴定和调整以后的构件组装到应用系统中。通常为了达到此目的,还必须建一个基础设施提供构件统中。通常为了达到此目的,还必须建一个基础设施提供构件协同的模型和使构件能够交互并完成共同任务的的特定服务。协同的模型和使构件能够交互并完成共同任务的的特定服务。第27页,本讲稿共34页基于构件的软件开发特点基于构件的软件开发特点1.基于构件的软件开发的一个明显的基于构件的软件开发的一个明显的优点就是提高了软件的质

23、量。优点就是提高了软件的质量。2.可复用的构件在开发过程中,都经可复用的构件在开发过程中,都经过严格的测试。过严格的测试。第28页,本讲稿共34页基于构件的开发 应用系统工程(应用系统工程(应用系统工程(应用系统工程(ASEASEASEASE)实质:从一个或多个构件系统中选择构件进行实质:从一个或多个构件系统中选择构件进行特化,最后把构件装配成应用系统特化,最后把构件装配成应用系统ASE过程的基本步骤过程的基本步骤过程的基本步骤过程的基本步骤获取需求获取需求分析分析设计应用系统设计应用系统实现应用系统实现应用系统测试应用系统测试应用系统应用系统打包应用系统打包第29页,本讲稿共34页面向对象与

24、软件复用面向对象与软件复用 相辅相成相辅相成OOOO方方法法的的基基本本概概念念、原原则则与与技技术术提提供供了了软软件件复复用的有利条件用的有利条件软软件件复复用用技技术术对对面面向向对对象象的的软软件件开开发发提提供供了有利的支持了有利的支持OOOO方法对软件复用的支持方法对软件复用的支持复用技术对复用技术对OOOO方法的支持方法的支持第30页,本讲稿共34页OOOO方法对软件复用的支持方法对软件复用的支持1.OOA模型模型2.OOA与与OOD的分工的分工3.对象的表示对象的表示4.一般一般-特殊结构特殊结构5.整体整体-部分结构部分结构6.实例连接实例连接7.类描述模板类描述模板8.用例用例第31页,本讲稿共34页复用技术对复用技术对OOOO方法的支持方法的支持1.类库类库2.构件库构件库3.构架库构架库4.工具工具5.OOA工具工具第32页,本讲稿共34页小结小结软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率和质量。软件复用研究被视为解决软件危机,提高软件生产效率和质量的现实可行的途径。第33页,本讲稿共34页作业作业 习习 题题 P251 1.2.3.另:另:简述软件复用、共享与移植的区别。简述软件复用、共享与移植的区别。谢谢同学们!谢谢同学们!1 1 1 1第34页,本讲稿共34页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁