基于构件开发方法的概念、目标和意义_第1页
基于构件开发方法的概念、目标和意义_第2页
基于构件开发方法的概念、目标和意义_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于构件开发方法的概念、目标和意义    关键字:构架基于构件的开发(Component-Based Development,简称CBD)或基于构件的软件工程(Component-Based Software Engineering,简称CBSE)是一种软件开发新范型,它是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程Brown00。由于以分布式对象为基础的构件实现技术日趋成熟,CBD已经成为现今软件复用实践的研究热点,被认为是最具潜力的软件工程发展方向之一。 一、 基本概念下面简单介绍与本文

2、相关的一些概念,包括构件、接口、契约、接口描述语言、构件框架等,另外还介绍了CBD的开发模式,以及构件技术和对象技术的关系。在文献Szyperski97中,Szyperski把构件定义为“软件构件是一个仅带特定契约接口和显式语境依赖的结构单元”,同时他还写道:“软件构件可以独立部署,易于第三方整合。”根据这个观点,可以认为构件由一方定义其规格说明,被另一方实现,然后供给第三方使用。接口(interface)是用户与构件发生交互的连接渠道,第三方只能通过构件接口的规格说明理解和复用构件,接口规格说明也是一种“契约”(contract),它足够精确地描述构件实现的功能,同时又不把构件限定于唯一的实

3、现方法,这种不确定带来多解决方案的灵活性。另一方面,虽然构件可以独立部署的,但是一个构件可能会用到其它构件或平台提供的服务,或者说基于构件的软件系统中通常是多个构件协作完成一定功能,所以构件依赖于组装环境或称为语境(context)。构件基础设施(infrastructure)是异构构件互操作的标准和通信平台,构件框架(Framework)是构件实例“即插即用”的支撑结构。通过一定的环境条件和交互规则,构件框架允许一组构件形成一个“孤岛”,独立地与外部构件或其他框架交互和协作,因此构件框架及其内含的构件也可以视为一个构件,于是构件通过不断的迭代和合成,构成一个结构复杂的应用系统。目前,有多个组

4、织和公司制定了构件基础设施的标准或开发了相关产品,也为构件、构件框架和接口建立了模型和技术规范,其中OMG CORBAOMG01、Microsoft COMDCOM(或.NET)Microsoft01, Box99以及Sun JavaBeanEJBPerrone01占主导地位,本文第六章将重点讨论CORBA CCM(CORBA Component Model)构件模型,并介绍基于CCM技术的演化构件模型。特别地,通过购买获得的第三方构件称为COTS(commercial off-the-shelf ,简称COTS)构件,作为内部(in-house)构件的对应概念。使用COTS是无源码的完全黑盒

5、复用,既有成本低、即买即用的优点,又有不一定满足需求或误配的风险。CBD遵循“购买而不创建(buy, dont build)”的开发哲学Clements95,让人们从“一切从头开始”(build from scratch)的程序编制转向软件组装。基于构件的开发任务包括创建、检索和评价、适配(adaptation)、组装、测试和验证、配置和部署(deployment)、维护和演进,以及遗产系统(legacy)的再工程等主要活动,它们与传统的生命周期中的方法不尽相同。首先,CBD采用以构件库为中心的开发模式,构件检索和评价是CBD的一项关键任务,这里我们理解的构件库不仅仅是一个独立的数据库,而是广

6、泛的、一切可获得的构件资源,尤其是通过互联网发布的软件构件。其次,构件形成是一种在软件体系结构支持下的组装过程,也就是说,在应用领域里需要用DSSA将独立的构件组装成完整的应用系统,可见构件的匹配和一致性验证也成为CBD的关键任务。再次,CBD过程中需要同一些技术标准化接轨,相同的构件可能由多个软件供应商生产,被多个用户使用,所以构件接口、构件基础设施必须标准化。最后,CBD需要配置管理(Configuration Management),即专门处理构件的集成、配置和发布(distribution)的有关事宜,于是构件的配置、适配和部署都是CBD的关键任务。构件技术与面向对象技术紧密相关。构件

7、和对象都是对现实世界的抽象描述,通过接口封装了可复用的代码实现,不同的是,首先在概念层面上,对象描述客观世界实体(identity),构件提供客观世界服务(service)Petre00,其次在复用策略上,对象是通过继承实现复用,而构件是通过合成实现复用;最后在技术手段上,构件通过对象技术而实现,对象按规定经过适当的接口包装(wrap)之后成为构件,一个构件通常是多个对象的集合体。 当今,构件技术已经成为计算环境的基本组成之一,众多中间件产品和开发工具提供了对不同构件模型的实现支持,特别在分布式、企业级应用软件系统中,无不把软件的构件化作为解决维护、扩展和升级的唯一途径。然而,虽然业已存在了大

8、量的CBD概念、方法和工具,软件业并未完全迁移到CBD软件开发范型,一个主要原因是缺少一套成熟的CBD开发方法学,至今尚未完全解决如下关键问题Bergner99:(1)必须建立一个完善的CBD概念框架,用数学方法定义构件相关概念的形式化模型,既要尽可能的简单,又要足以描述已有的构件基本概念和开发技术。(2)必须有切实可行的构件描述方法和技术。在构件概念框架基础上,为构件开发者建立相互交流的特殊语言,例如UMLBooch01的图形化描述技术和CORBA IDLOMG01的文本描述技术,理想的描述技术可以提供系统的一致性约束和正确性验证。(3)要为CBD的开发流程建立一个合理的过程模型,特别要研究

9、如何为扮演不同角色的开发者分配相应的任务,例如软件体系结构设计师负责软件构架设计的详细职责和结果验收标准。(4)要有支持描述技术和过程模型的辅助开发工具,至少需要具备开发构件、实现应用系统和生成文档的工具。理想的开发工具还包括关键系统特征的验证工具。显见,上述这些问题和前面介绍的软件复用目的和任务紧密相关, 必须从软件复用的认识高度分析CBD方法中存在的问题,重点是使用知识表示方法和演化计算方法解决构件的语义模型和自动过程问题,包括CBD原理和技术中的构件模型、构件体系结构和描述语言和基于构件的开发过程等几方面内容。二、 CBSE/CBD的工程学目标CBSE/CBD的工程学(管理)目标如下:(

10、1) 降低费用:这是所有软件开发方法学的共同目标,CBSE/CBD把成本效率提高到软件复用方法的最高境界。(2) 方便装配:CBSE/CBD的最大特征是一系列构件的装配过程。(3) 提高复用性:全面考虑构件在多个应用系统中的复用潜力。(4) 提高可定制性和适应性:开发者可以按需配置构件;(5) 提高可维护性:在系统中可以方便地添加、删除和修改构件。三、 CBSE/CBD的技术目标CBSE/CBD的技术目标如下:(1) 降低耦合:耦合指构件之间的相关性;(2) 提高内聚:内聚指构件内元素之间的相关性;(3) 控制粒度:粒度系统中构件对应问题域的规模,包括构件数量和大小两个方面;四、 CBSE/CBD的研究方向CBSE/CBD的研究方向:(1) 基于构件软件工程方法的概念模型过程模型; (2) 构件模型:研究构件的本质特征及构件间的关系;(3) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件;(4) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题;(5) 构件库(构件分类与检索):研究构件分类策略、组织模式及检索策略,建立构件库系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论