版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十四讲第十四讲 软件复用软件复用-何帆基本内容软件复用的基本概念软件复用的基本概念领域工程领域工程基于构件的开发基于构件的开发 面向对象与软件复用面向对象与软件复用 软件复用的基本概念软件复用的基本概念n软件复用是指软件复用是指在软件开发过程中重复使在软件开发过程中重复使用相同或相似软件元素的过程。用相同或相似软件元素的过程。n软件复用是在软件开发中避免重复劳动软件复用是在软件开发中避免重复劳动的解决方案,它使得应用系统的开发不的解决方案,它使得应用系统的开发不再采用一切从零开始的模式,而是以已再采用一切从零开始的模式,而是以已有的工作模式为基础,充分利用过去应有的工作模式为基础,充分利用过
2、去应用系统开发中积累的知识和经验,从而用系统开发中积累的知识和经验,从而将开发的重点集中于应用的特有构成成将开发的重点集中于应用的特有构成成分。分。软件复用的基本概念软件复用的基本概念 软件复用的重要性软件复用的重要性 n软件复用的目的是能更快、更好、成本更低地生产软件制品。n一般地说,在软件开发中采用复用构件可以比从头开发这个软件更加容易。 软件复用的分类软件复用的分类 n按照可复用的粒度,软件制品从小到大分为以下几类:n源代码复用n软件体系结构复用n应用程序生成器n领域特定的软件体系结构的复用软件复用的分类软件复用的分类n依据复用的对象分类;可以分为:n产品复用指复用已有的软件构件,通过构
3、件集成得到新系统。产品复用是目前现实的、主流的途径。n过程复用指复用已有的软件开发过程,过程复用依赖于软件自动化技术的发展。软件复用的分类软件复用的分类n依据对可复用信息进行复用的方式分类,可分为:n白盒复用 指已有构件并不能完全符合用户要求,需要根据用户需求进行适应性修改后才能使用。n黑盒复用 指对已有构件不需作任何修改,通过构件组装的方式直接进行复用。这是目前的研究热点,也是将来的发展趋势。可复用的复用件Caper Jones定义了可候选的十种复用件: 项目计划:计划的基本结构和内容(如,SQA计划)。 成本估计:有可能复用对某个功能的成本估计。 体系结构:可能创建一组类属的体系结构模板(
4、例如,事务处理体系结构),并将模板作为可复用的设计框架。可复用的复用件Caper Jones定义了可候选的十种复用件: 需求模型和规约:类和对象的模型和规约是可复用的,用传统软件工程方法开发的分析模型(例如,数据流图)也是可复用的。 设计:用传统方法开发的体系结构、数据、接口和过程化设计是复用的候选者,更常见的是,系统和对象设计是可复用的。 源代码:验证过的程序构件(用兼容的程序设计语言书写的)。可复用的复用件Caper Jones定义了可候选的十种复用件: 用户和技术文档:对特定的不同应用,可复用大部分用户和技术文档。 用户界面:可能是最广泛被复用的(例如GUI)。 数据:包括:内部表、列表
5、和记录结构,以及文件和完整的数据库。 测试用例:一旦设计或代码构件将被复用,相关的测试用例也可复用。软件复用面临的问题 管理问题。没有相应的鼓励机制等。 复用的障碍。 技术方面的问题 法律问题复用的障碍n自负;太多的开发人员认为不是他们亲自编写的程序不可能是好程序;n检索问题。如何从庞大的复用件库中所需要的复用件;n几乎没有相应的复用培训;n复用代价昂贵。有人估计,仅使一个构件可复用,就将至少增加60%的成本;n虽然存在软件复用的CASE工具或构件,但大多数软件开发者并不使用它们;n经济利益方面。一些开发人员尽力避免编写那些太通用的例程,唯恐使自己失业。技术方面的问题n采用软件复用可以降低开发
6、成本,但如果其原件存在的某些问题代码,可能会导致其他采用该代码的系统具有相同的问题代码;这种情况称之为继承性缺陷。n因此当原件的问题代码被修改后,往往无法自动更新实用软件中相应的代码;最终导致实用软件中的问题代码依旧存在。这种非但没有降低开发成本,反而增加维护消耗的复用技术显然是失败的。法律问题n合同软件带来的法律问题。有些软件合同规定软件产品是属于客户的。因此,当软件开发人员为另一个客户开发一个新产品时,如果他复用了另一个客户产品中的一个构件,在本质上是侵犯第一个客户的版权。领域工程领域工程n所谓的“领域”,指的是一组具有相似或相近软件需求的应用系统所覆盖的功能区域。n通过领域分析(doma
7、in analysis)找出最优复用,对它们进行设计和构造,形成为可复用构件,进而建立大规模的软件构件仓库的过程,就是领域工程。横向复用和纵向复用横向复用和纵向复用 n横向复用是指复用不同应用领域中的软件元素。n纵向复用是指在一类具有较多公共性的应用领域之间进行软部品复用。领域分析用户需求软件开发与构件开发目标软件确认可复用构件库检索理解领域分析领域分析 n定义n领域分析是在特定应用领域寻找最优复用,以公共对象、类、子集合和框架等形式进行标识、分析和规约。n目标n是获得领域分析模型 领域分析的输入和输出 建造可复用构件建造可复用构件 n创建领域构件的设计框架n 标准数据n 标准接口协议n 程序
8、模板构件模型 建立可复用构件库建立可复用构件库 n三种分类模式 n枚举分类 通过定义一个层次结构来对构件进行分类。构件库中的可复用构件按照某种标准被分成了若干个大类,而每个大类中的构件再被划分成若干个小类,依此类推,这样就形成了一个构件分类的层次结构,层次结构的最低层罗列的就是实际的构件。 建立可复用构件库建立可复用构件库 n三种分类模式 n刻面分类 通过领域分析,构件可以被标示出来的一组基本的描述特征,被称为刻面。一个刻面描述构件某一个方面的特征。刻面分类则是从不同的侧面对构件进行分类。 建立可复用构件库建立可复用构件库 n三种分类模式 n属性-值分类 该方法首先是为构件库中的所有构件定义一
9、组属性,并赋予相应的属性值。开发人员通过指定一组属性值在构件库中对构件进行检索。该分类方法与刻面分类方法有几点不同之处:属性的数量没有限制,而刻面描述一般限制在7 或8 个刻面;属性没有优先级,而刻面根据其重要程度,有相应的优先级;属性一般不使用同义词字典功能,而刻面需要使用。 建立可复用构件库建立可复用构件库 基于构件的开发基于构件的开发 n构件技术是基于OO技术上的更高级的抽象。它把底层的对象集合打成包,组成功能“插件”。基于构件技术的软件生产就是把已存在的构件组装(集成)到当前软件系统的框架结构中,从而生产出新的软件产品。n可以预见,构件技术是软件产业化革命的必然发展趋势。构件的属性n构
10、件是可独立配置的单元,因此构件必须自包容。n构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没机会或没必要知道构件内部的实现细节。n构件可以在适当的环境中被复合使用,因此构件需要提供清楚的接口规范,可以与环境交互。n可以看出,构件沿袭了对象的封装特性,但同时并不局限于一个对象,其内部可以封装一个或多个类、原型对象甚至过程,结构是灵活的。构件集成模型构件集成模型n构件集成模型利用预先封装好的软件构件来构造应用软件系统,融合了螺旋模型的特征并支持软件开发的迭代方法。构件集成模型构件集成模型n开发活动从描述候选类开始,通过检查软件系统处理的数据以及操作这些数据的方法,把相关的数据和方法封装成一个类,然后到构件库中查找这个类。如果候选类存在,就从库中提取出来以供复用;如果不存在,则采用面向对象的方法使它实现,并存储到构件库中。这样通过集成从构件库中提取的已有类和为了满足应用程序的特定需要而构建的新类,即可得到待开发软件的第一个迭代。然后进入下一轮螺旋周期,继续进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家具环保协议书
- 慈善帮扶协议书
- 装修杂工协议书
- 责任划定协议书
- 战略高校协议书
- 药师挂职协议书
- 震惊的婚前协议书
- 征山林地协议书
- 运输转包协议书
- 小班组合同范本
- 2025年齐齐哈尔市总工会工会社会工作者招聘39人考试笔试模拟试题及答案解析
- 中北大学2025年招聘编制外参编管理人员备考题库(一)及一套完整答案详解
- 教育学课件教学课件
- 学堂在线 雨课堂 学堂云 科研伦理与学术规范 章节测试答案
- 口腔诊所运营管理手册及营销方案设计
- 教辅销售年终总结
- DRBFM的展开详细解读2
- 四环素的发酵工艺课件
- 泥浆护壁钻孔灌注桩的施工
- 征信调研报告3篇
- GB/T 20969.2-2021特殊环境条件高原机械第2部分:高原对工程机械的要求
评论
0/150
提交评论