第10章软件复用选编.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章软件复用选编

; 软件复用的基本概念 领域工程 基于构件的软件开发 面向对象与软件复用;10.1 软件复用的基本概念;;;;;(3)应用程序生成器 用于对整个软件系统设计的复用。 自动化程度高 特定的应用程序生成器不宜构造 (4)领域特定的软件体系结构的复用 指对特定领域中存在的一个公共体系结构及其构件的复用。要求对领域有透彻的理解才能进行领域建模。 特点:① 复用程度高 ② 前期投入大; 10.2 领域工程 ; 10.2 领域工程 ;实施领域分析 领域分析是在特定应用领域寻找最优复用的过程,它以公共对象、类、子集合和框架等形式进行标识,然后对它们进行分析和规约。 这个阶段的主要任务是获得“领域模型”,领域模型的需求描述为“领域需求”。 根据领域需求,领域工程师寻找领域的共性,进而确定软件的可复用构件。;;领域分析的步骤: ;  领域分析是对特定应用领??中共同的特征、知识、需求的标识、分析和规约。领域分析是特定领域内软件重用的基础,它的目标就是:发现和挖掘在特定领域内可以被复用的构件。领域分析活动中输入和输出如图所示:;3. 开发可复用构件 (1)单个构件的特征 ①通用性 ②可变性 在建造构件时,应该提供构件的特化和调整机制。 ③易组装性 构件的组装分为同构件的组装和异构件的组装。 构件应有良好的封装性和良好的接口。 构件间应有松散的耦合度 应提供便于组装的机制;(2)领域构件的特征 ①标准数据 ② 标准接口协议 ③程序模板;(3)几种流行的构件技术 1) COM(Component Object Model) OLE(Object Linking and Embedding) 组件对象模型技术 COM是Microsoft公司开发的一种构件对象模型,它提供了使用不同厂商生产的对象的规约。任何人都可以按此标准独立地开发组件和增值组件,或由若干组件组建集成软件。;2) CORBA(Common Object Request Broker Achitecture)公共对象请求代理体系结构 CORBA是对象管理组织于1991年发布的一种基于分布对象技术的公共对象请求代理体系结构,其目的是在分布式环境下,建立一个基于对象技术的体系结构和一组规范,实现应用的集成,使组件在异构环境中可以复用、移植和互操作。;3) OpenDoc开放式文档接口 OpenDoc是IBM、Apple、Novell等公司推出的关于复合文档和构件软件的标准。;4. 建立可复用构件库;  大多数的构件分类模式可以归纳为以下三种类型: 1)枚举分类   通过定义一个层次结构来对构件进行分类。构件库中的可复用构件按照某种标准被分成了若干个大类,而每个大类中的构件再被划分成若干个小类,依此类推,这样就形成了一个构件分类的层次结构, ;2)刻面分类   一个刻面描述构件某一个方面的特征。刻面分类则是从不同的侧面对构件进行分类,每一种分类方式称为一个刻面。不同的刻面根据其重要性可以设置不同的优先级。;刻面分类法(Faceted Classification):   支持多重观点对构件进行分类,例如从构件的应用领域、构件所描述的对象、构件的观点和编程语言等不同的方式来分类。 每一种分类方式称为一个刻面。 每个刻面把构件集合划分为一个子集,各刻面所划分的子集形成一些较小的交集。   一个构件对每个刻面有一个刻面值,例如: 应用领域 = 计算机绘图 对象 = 椭圆 功能 = 彩色填充, 编程语言 = C++;  检索一个构件时,给出一组刻面值,将确定一组子集合,构件应该在这些子结合的交集中,从其中确认所需的构件就比较容易。   构件可用属性描述,例如构件类型、开发单位、作者、提交日期等属性。检索时通过构件的属性可以缩小搜索范围。   刻面和属性都不涉及构件内部实现,只是为了便于构件的管理、检索和使用。如果把构件比作一只箱子,其内容如同箱子中装的东西,刻面和属性则如同箱子外边的标签。   刻面分类法可以看作层次分类法的扩充。; 3) 属性-值分类 为领域中的所有构件定义一组属性,然后赋给这组属性一组值。通过属性,查找构件。 属性-值分类对可使用的属性数量没有限制,而呈面分类限定不超过7或8个。 属性-值分类中的属性没有优先级,而呈面可以区分优先级。 属性-值分类不具有同义词功能,而呈面可以查找相关的同义词。;  构件库中检索一个构件和在数据库中检索一个记录是不同的。   构件库检索的不确定性带来两种相互矛盾的结果:检索的结果可能是一个较大的构件集合,要从中找到所需的构件仍然很费力;检索得到的集合没有把真正需要的

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档