版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第19章 基于组件的软件工程目标阐述基于组件的软件工程涉及开发基于组件模型的标准化组件以及将其组成应用系统;描述什么是组件和组件模型;介绍CBSE 过程的主要活动;讨论组件合成的方法以及出现的问题。内容组件和组件模型CBSE过程组件合成基于组件的开发基于组件的软件工程 (CBSE) 是软件系统开发的基于复用的方法。它的产生是由于设计者们在使用面向对象的开发过程中所受到的挫折,这种挫折来自于面向对象开发不能支持有效的复用。单个对象类太细节且太特殊。组件比对象类更抽象,可以被认为是独立服务的提供者。CBSE 要素独立组件 由它们的接口完全定义。组件标准 使组件集成变得更为容易。中间件 为组件集成提
2、供软件支持。开发过程 适应于软件复用。CBSE 及设计原则除了可以复用的好处外,CBSE还基于了一套完整的软件工程设计原则:组件式独立的,因此它们不会影响彼此的操作; 组件细节的实现是隐藏的;组件通过良好定义的接口进行交互;组件平台是共享的,减少了开发成本。CBSE 的问题组件的可信度 用户在没有源代码的情况下,如何能知道组件知否可靠呢? 组件的证明 谁来证明这些组件的质量呢?总体特性预测 怎样能预测组件合成的新出现的属性呢? 需求权衡在一个组件和另一个组件的特征之间,我们该怎样进行权衡分析呢?组件组件提供了一种服务,不必考虑组件正在哪儿执行和它的编程语言。组件是一个独立可执行的实体,它可以由
3、一个或多个可执行的对象组成;组件所提供的服务可以通过其接口得到,而且所有的交互都是通过接口实现的。组件的定义Councill 和 Heinmann的定义:组件是一种软件元素,与某个组件模型要求相一致,按照组成标准无需修改即可独立进行部署和组合。Szyperski的定义:组件具有合同定义的接口和显式的上下文依赖,是可独立进行部署的并服从于第三方的组成的软件。组件作为服务的提供者组件是独立可执行的实体。在与系统其他组件一起使用之前,无需编译组件。组件所提供的服务可以通过其接口得到,而且所有的交互都是通过接口实现的。组件特性1组件特性 2组件接口提供接口定义了组件提供给其他组件的服务。需要接口指定系
4、统其他组件必须提供哪些服务。如果这些服务不能实现,组件将无法工作。组件接口数据采集组件的模型组件和对象组件是可部署的实体组件不定义类型组件实现是不透明的组件是独立于语言的组建是标准化的组件模型组件模型定义了组件实现、文档书写及部署的标准。组件模型的例子:EJB 模型 (Enterprise Java Beans)COM+ 模型 (.NET 模型)Corba 组件模型组件模型规定应如何定义组件接口及在一个接口定义中应该包含的元素,如操作名,参数及异常等。组件模型的基本要素中间件支持组件模型是提供支持组件执行的中间件的基础。组件模型实现提供的服务:平台服务 允许按照模型写入组件,进行相互通信;水平
5、服务 应用无关的服务可以被很多不同的组件使用为利用组件模型基础设施所提供的服务,将组件部署在预先定义的标准的容器中。 容器是一组接口,通过这些接口来访问支持服务的实现。由组件模型提供的服务面向复用的组件开发组件是为某个特定的应用而发展起来的,通常就要将其一般化,使它们可以被复用。如果组件与一个稳定的领域抽象(业务对象)关联起来,它就更可能被复用。例如,在一个医院管理系统中,稳定的领域抽象就与主要目标病人、治疗和护士等关联起来。可复用组件的开发如果组件是对普遍使用的业务对象或是一组相关对象的实现,它就可能被复用。组件的可复用性应该反映稳定的应用领域抽象;应该隐藏状态显示;应该尽可能的独立;应该通
6、过组件接口提供异常处理。组件的可复用性与可重用性之间需要折衷:接口越通用,可复用性越高,但是,接口也越复杂,因而降低了组件的可理解性。为组件的复用性所做的改变去除特定应用的方法;改变组件的名字使它们更通用;增加方法以拓宽应用领域;做出一致的异常处理;为组件的适应性增加一个配置接口;集成所需要的组件来减少组件之间的依赖性。遗留系统组件现存的遗留系统,实现了一些有用的业务功能它可以被重新包装成组件,以供复用。为使这些组件可复用,我们必须给它一个接口,由此定义组件的接口,然后再访问遗留系统。封装的开发成本通常要远低于重新实现遗留系统的成本。CBSE过程当重用组件的时候,对理想的需求和可用的组件实际能
7、提供的服务之间做出权衡,是很有必要的。该过程包括:开发概要性的需求;组件搜索,然后对其作修改按照可利用的功能修改需求;再一次组件搜索,进一步的变更需求。CBSE过程组件识别过程组件识别活动信任。你需要能够信任一个组件的提供商。最好的情况是,一个不够信任的组件不会像广告宣传的那样运行,最坏的情形是,它会破坏系统的安全性。需求。 不同的组件组会满足不同的需求。 验证。组件说明可能不会详细到让你开发出完备的测试用例集。组件可能会有比你想要的多得多的功能。你怎样能测试出它不会干扰你对组件的应用呢?Ariane 运载火箭失败1996年, 在 Ariane 5 火箭首次发射中,惯性导航软件在升空37秒后失
8、败,火箭因而失去控制。缺陷发生在一段Ariane 5所不需要的代码上,对所复用的软件的有效性验证测试是基于Ariane 5的需求的。在这个组件中的一些功能是Ariane 5 所不需要的。组件合成组件合成是指通过组件组装来创造新系统的过程。组件合成包括组件之间的集成和与其他组件基础设施的集成。对所有组件,你都必须写“胶水代码”来连接组件。组件合成的类型顺序合成 这种情况的发生是指合成组件中,构成组件是按顺序执行的,即将各个组件的 提供接口组合在一起。层次合成 发生在一个组件直接调用由另一个组件所提供的服务时。它对应于一个组件的提供接口与另一个组件的需要接口组合在一起的情形。叠加合成 这种情况发生
9、在两个或两个以上的组件接口合在一起来创建一个新组件的时候。组件合成的类型接口的不兼容参数不兼容 接口每一边的操作有相同的名字,但参数类型与参数数目不同。操作不兼容 提供接口和需要接口的操作名不同。操作不完备 一个组件的提供接口是另一个组件的需要接口的一个子集,后者相反不兼容的组件适配器组件对所有情况,都必须通过编写适配器组件来解决不兼容的问题,适配器组件使两个可复用组件的接口相一致。适配器的准确形式依赖于合成的类型。一个叫做postCodeStripper的适配器组件,它从addressFinder组件得到位置数据并剥离出邮政编码,这一邮政编码转而作为mapper组件的输入,从而实现了addr
10、essFinder 组件和mapper 组件的合成。通过适配器的合成组件 postCodeStripper 是一个适配器,它促进了 addressFinder 组件和mapper 组件的顺序合成。下面的代码说明实现它所需要的调用序列:数据采集器组件的适配器接口的语义关于组件合成讨论假设你可以依赖组件文档来判断接口是否是语义兼容的。考虑一下PhotoLibrary 组件的一个接口:相片库组成相片库文档 “此方法将相片加入相片库并为相片起一个名字和制作一个目录。” “若相片名字已与库中其他相片名重复会怎样?”“ 相片描述符在目录入口和相片本身都有吗?也就是说,如果删除相片,是否要删除目录信息?”对
11、象约束语言(OCL)对象约束语言 (OCL) 设计用来描述UML对象模型中的约束。前置条件和后置条件是用pre和post来指示的。Photo Library接口的形式描述Photo library 描述按照说明, OCL 与Photo Library组件的关联描述为:相片库中的相片不能有和待加入的相片有相同的标识。库必须是存在的假定创建一个库就加入一个项在其中,这样库的大小始终大于0.库的大小增1(因此只产生一个入口)。如果用同一个标识符去取相片,就可以得到新添加的那张相片;如果再次用相同的标识符在目录中查找,就可以得到所生成的目录入口。合成折衷当通过合成组件来创建一个系统时,你会发现在功能性需求和非功能性需求之间,在尽可能快速移交软件和创建一个能随需求变更而进化的系统之间,都存在着潜在的冲突。你必须做折衷的地方有:在移交系统功能性需求方面,哪种组件的合成方式是最有效的?组件的哪种合成将允许适应未来的需求变更?合成系统将有哪些总体特性?数据采集和报告生成组件要点基于组件的软件工程基于复用的方法来定义、实现和组合松散耦合的独立组件,使之成为一个系统。组件是一个软件单元,它的功能和可依赖性完全由一套公共接口定义。组件模型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路运输工测试题及详细答案
- 项目开发管理典型试题及答案展示
- 高级社工师考试题目及答案详情
- 2026年公证业务规范化考试试题(含答案)
- 西安旅游相关面试问题与解答
- 发酵剂制备相关考试题目与答案
- 2026年西藏阿里统计专业技术中级资格考试(统计工作实务)备考题库及答案
- 2026年保险反欺诈业务培训考试试卷试题及答案
- 2026年高新区风光储一体化项目规划
- 计算机高二阶段试题及参考答案
- 中国卫生经济学会卫生健康经济管理研究课题申请书
- 《GNSS定位测量》考试复习题库(含答案)
- 动物购销合同多品种
- 2024年中国装饰公司100强企业排名
- 肝癌的中医护理方案
- JGJ142-2012 辐射供暖供冷技术规程
- GB/T 18910.3-2024液晶显示器件第3部分:液晶显示屏分规范
- 湿电自动计算
- 小学五年级上学期英语开学第一课
- 《大学美育》第一章理论
- 汽车配件营销(第2版)PPT完整全套教学课件
评论
0/150
提交评论