- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)