




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浅析怎样利用软件构件来实现软件复用计算机软件论文库 浅析怎样利用软件构件来实现软件复用计算机软件论文库Pick to: component technology has become one of the important parts of the software technology, the research on software technology of multiple aspects of development has played a positive role in promoting. However, component
2、 technology the study itself is faced with some problems. Analysis of component technology research status can be obtained, in spite of the component technology in the basic concepts of cognition are consistent, but the understanding of the differences still exist.摘要:构件技术已经成为软件技术的重要组成部分之一,其研究对软件技术的多
3、个方面的发展起到了积极的推动作用。但是,构件技术本身的研究却面临着若干问题。分析构件技术研究的现状可以得到,尽管对构件技术中基本概念的认知正逐渐趋于一致,但认识的差异依然存在。 关键词:软件构件;构件模型;认知 计算机软件1充满了其创造者的个性化特征。但是,软件系统的大型化与复杂化,要求软件生产必须标准化、规模化和节约化,必须从个人和小团体的手工作坊式的生产模式向社会化的专业分工协作生产模式转化,实现软件生产的工业化。但是,目前软件生产的工业化程度还比较低,还不能对好的程序进行持续不断的复用。为此,业界对软件复用的技术进行了几十年的研究,并逐渐形成了利用软件构件来实现软
4、件复用的认识。 1软件构件的认知及其过程软件构件(Component,也常被理解为“组件”)的概念共生于软件复用。早在1968年,在北大西洋公约组织(NATO)会议上就提出了软件复用的概念,后来还为此制定了一整套软件复用的指导性标准,其中包含了利用标准构件实现软件复用的基本思路。也就是在这次会议上,McIlroy提出了软件构件、构件工厂等概念2。生产标准软件零部件,从而组装成软件的设想一产生就受到了广泛关注,但不同历史时期对它的认识却不尽相同。在20世纪70和80年代,软件构件主要指可复用的程序代码片段,一般被称为代码件。这一时期软件生产考虑的主要问题是如何充分利用已有的源程序代码
5、、子程序库和类库来提高软件开发的效率。此时的代码件主要有子程序、程序包、类、模板等形态。到20世纪90年代,软件构件应当包括分析件、设计件、代码件、测试件等多种类型这一观念被普遍认同。由于软件复用的多样性,又将其分为产品复用和过程复用3。随之产生了许多新的概念,如设计模式、框架以及软件体系结构等。但是,对软件构件基本属性的深入探讨却主要是围绕代码件展开,若不特别注明,所论及的软件构件(或简称构件)通常是代码件。1995年,Will Tracz提出,构件应具有以下属性4:有用性(Usefulness),构件必须提供有用的功能;可用性(Usability),构件必须易于理解和使用;质量(Quali
6、ty),构件及其变形必须能正确工作;适应性(Adaptability),构件应该易于通过参数化等方式在不同语境中进行配置;可移植性(Portability),构件应能在不同硬件运行平台和软件环境中进行工作。近年来,随着分布式对象、Internet、Java、Client/Server等技术以及基于构件的软件开发技术的发展,对构件的认识又产生了新的变化,出现了若干新的软件构件的定义,其中比较有代表性的有:1)软件构件是可单独生产、获取、部署的二进制单元,它们之间可以互相作用构成一个功能系统(Functioningsystem)5。2)软件构件是一个不透明(opaque)的功能实现;能被第三方组装
7、;符合一个构件模型6。3)构件是一个带有契约化接口和显式上下文依赖的组装单元,它能被独立发布并且可以被第三方组装7。4)构件代表一个自包含的实体,能够向其环境输出功能并可通过定义明确的开放接口从环境输入功能8。5)构件由一个动态变化的对象集合组成,这些对象既可以在构件的内部也可以是其接口的一部分。构件之间可以直接交互,也可以通过独立的对象进行胶合9。6)构件是一个通过接口向外界提供服务的软件包10。上述定义的共同要素是:软件构件是单独开发并具有特定功能的软件单位,用于与其它构件及支撑环境组装成应用系统。这一共同要素反映了构件的三个基本特征:封装特征构件是预制的知识服务,需要封装;复用特征构件的
8、价值在于实现软件复用,需要规范;组装特征构件不是完整的应用程序,需要组装。 2基于构件的软件开发基于构件的软件开发(Component Based Development,CBD)是指利用已开发完成的商业构件(Commercial Off-The-Shelf,COTS)(或可复用的构件)按应用需求组装形成软件应用系统的软件开发方法11。根据CBD的特点,CBD研究的主要内容12包括:构件获取有目的的构件生产和从已有系统中挖掘提取构件;构件模型研究构件的本质特征及构件间的关系;构件描述语言以构件模型为基础,解决构件的精确描述、理解及组装问题;构件分类及检索研究构件分类策略、组织模式及
9、检索方法,建立构件库系统,支持构件的有效管理;构件组装在构件模型的基础上研究构件组装机制,包括源代码级的组装和基于构件对象互操作性的运行级组装;标准化构件模型的标准化和构件库系统的标准化等。CBD的基础是模块化、结构化程序设计以及面向对象程序设计,并强调系统的分块(分成相对独立的子功能),力求通过定义良好的接口对系统的各个组成部分进行组装。因此,应用系统开发过程由构件选择、评估和组装构成。CBD方法充分体现了Fred Brooks所提出的“用购买代替建造”(Buy,don t built)的思想13。基于构件的软件开发有时也称为基于构件的软件工程(Component Based Softwar
10、e Engineering,CBSE)。CBD发展的动力是软件复用。软件复用的概念提出伊始就与构件的生产与组装紧密地联系在一起。可以认为,CBD发展的基础仍然是二层、三层和多层客户机/服务器计算模式,但CBD改变了软件开发的过程,使用户能够用购买的构件快速组装成应用程序,从而形成一种具有鲜明技术特色的软件开发方法。构件的即插即用是CBD的技术优势得以体现的基 本要求。即插即用的实现,能够使基于构件的系统不依赖于固定的构件生产者,同时能够实现软件系统根据应用需求的变化进行动态配置,这一点十分重要。与其它
11、软件复用方式相比,基于构件的软件复用更为可行和实用。CBD开发方法的基本特点就是用构件组装应用系统,故其开发过程就是构件的制造、组织、选取及组装的过程。在上述开发过程中,COM/DCOM、CORBA、JavaBean/EJB等模型已经在不同的环节有了实现;在设计方法与工具方面,许多研究机构与软件企业也开展了十分积极的研发,并开发出了一些CBD工具。尽管CBD的研究得到业界的广泛重视,并已取得一定成果。但是,其实用化程度还不高。构件组装问题仍然是其核心技术问题之一。 3构件模型软件构件模型除定义构件的基本属性外,还要规定构件接口的结构以及构件与应用框架、构件与构件之间的交互机制。构件
12、模型通常还提供创建和实现构件的指导原则。一个被构件生产者和使用者共同接受的构件模型就是构件的工业标准。构件模型是实现构件生产与组装的技术基础。经过多年的努力,其研究取得了一定进展。描述构件的代表性模型主要有Unicon、Wright、ACME、Darwin和C21以及青鸟2等。Unicon模型是卡内基·梅隆大学(CMU)的Shaw等人提出的。在Unicon构件模型中,“构件(component)”和“连接子(connector)”是其主要的构成成分。构件表达了系统中一组计算和状态的抽象,连接子则定义了构件之间的交互种类,通常用作构件交互的媒介。构件和连接子均有规约部分和实现部分。Un
13、icon提供了相应的组装支持工具,但扩展Unicon,特别是扩展组装工具很困难。C2模型是一种层次的、基于消息的软件体系结构模式。它源于解决GUI软件开发中软件构件问题,并被扩充用于其它的应用领域。在C2中,构件之间通过发送消息进行通讯,消息包括自上而下的通知消息和自下而上的请求消息,消息的传递由连接构件负责。Wright模型的特点是对体系结构(Architecture)模式中的构件和连接子的抽象行为进行形式化的描述。它将显式的、独立于实现的连接构件类型用作交互模式,并用基于CSP(通信顺序进程)的表示法来表示构件的抽象行为,它支持对规约的一致性和完整性进行静态的检查。Darwin模型中构件包
14、括接口、绑定和配置等描述成分。Darwin通过两种构造(惰性初始化和显式的动态构造)支持动态的重新配置,配置的申明实际上变成了在运行时执行的一个程序。ACME模型在其它模型关注如何提供更丰富的表达和开发工具支持建模时,致力于通过总结和组合这些模型的优点和工具,提供一个公共的骨架。ACME的描述可以被解释和分析,以及映射到其它的模型描述。Unicon及C2等模型还进一步涉及了构件在源代码级的组装技术。Unicon提供了UNIX环境下基于体系结构的组装,但扩展困难。C2在消息总线基础上较易实现系统组装,但固定的体系结构风格使其不适应软件风格多样化的需求。北大青鸟构件模型从三个不同的、相互正交的视角
15、来看待构件,每个具体的构件都是形态、层次和表示构成的三维空间中的一个点。构件形态(Form)被分为类(Class)、类树(Class Tree)、框架(Framework)、设计模式(Design Pattern)、体系结构(Architecture)五种;构件层次被分为分析件(指系统需求规约和功能规约)、设计件(指系统体系结构和设计方案)、编码件(由具体程序设计语言编制的源代码构件)、测试件(测试计划和测试案例)四个层次;而构件的表示则与层次有关,不同层次的构件具有不同的表示媒介和手段,如图形、复合文档、正文、伪码、编程语言、目标码等。根据上述概念,青鸟构件模型从九个方面来描述构件,即概念、
16、操作规约、接口、类型、实现体、构件复合、构件性质、构件注释和构件语境。青鸟构件模型是一个具有面向对象(OO)风格的模型。此外,以CORBA、COM/DCOM/COM+和JavaBeans/EJB为代表的基于分布式对象技术的构件实现模型正在向实用化快速发展,它们对构件的基本构成及其体系结构的演化产生着十分重要的影响。 4构件技术研究的主要特征从国内外关于软件构件技术研究的最新进展分析,当前构件技术的研究呈现如下主要特征:构件技术研究存在两种主要的技术路线。一是从构件的基本概念出发,力图从软件基本理论与体系结构上实现软件技术的创新,从根本上解决软件构件技术问题,并取得了许多研究性成果;
17、但整体上还停留在概念阐述与体系建模的探索性阶段,暂时还难以实用。随着软件应用技术与计算环境的演变,特别是分布式对象技术、智能Agent技术和网格计算技术等新研究领域的兴起与推进,构件技术的研究也受到一定的影响。二是以分布式对象技术为基础,充分利用已规范化和产品化的技术与平台,在面向对象技术的基础上,对对象进行扩充,将构件技术与面向对象技术融合,以期使构件技术在市场推动下不断成熟与发展。这一路线的研究与开发主要表现为市场主流厂商在自己产品中加入“构件元素”,形成具有某些构件特征的产品与企业技术标准或规范。为了推进这些产品的不断改进,并使新技术应用不至于带来新的封闭与市场垄断,需要建立相应的国际化
18、技术标准与规范。OMG的CORBA 3.0及其CCM构件模型是最新发布的一套通用规范,但至今宣布支持这一规范的厂商还不多。组装是构件技术研究的核心。构件从生产、流通到应用的各个环节中,如何将构件组装成应用系统,是每个环节都需要考虑的核心问题。目前,构件组装技术主要分为“黑”、“白”、“灰”三个层次。由于构件组装实现的特性,特别是领域应用的实际需要,“灰盒子”组装技术是研究与开发的重点。但是,如何提高构件在组装方面的灵活性,虽然有不少有益的探讨,但仍缺少系统且具有领域应用背景的柔性组装机制研究。构件技术的研究正在与其它软件技术研究相融合。随着Internet技术、中间件技术、Web Service等技术研究的兴起,业界对软件复用的认识更加趋于多元化。但在这些新兴技术研究中,却充满了构件技术的概念,并将利用构件技术提高软件复用水平的基本思想贯穿始终。这一系列的研究从另一个层面推进了构件技术的研究,同时对构件技术研究提出了更加迫切而明确的需求。另一方面,软件体系结构的研究也大量涉及了构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市与乡村的智慧交通差异试题及答案
- 2025年中国塔式游乐机市场调查研究报告
- 焊接工程师资格考试知识盲点及试题及答案
- 2024年质量工程师考试准备工作清单试题及答案
- 2024年机械工程师资格证书考试的评估方式试题及答案
- 提高织物质量的技术措施考试试题及答案
- 电气工程师资格考试细节注意事项试题及答案
- 2025年中国家用反渗透纯水机数据监测研究报告
- 2024年纺织机械操作证书考试的周期性分析的试题及答案
- 新技术的Adobe设计师考试试题及答案
- 原地面高程复测记录表正式版
- 高等学校建筑学专业本科(五年制)教育评估标准
- 品质周报表(含附属全套EXCEL表)
- 商铺装修工程施工方案.
- MQ2535门座起重机安装方案
- 一针疗法高树中著精校版本
- 第六课-吸烟者的烦恼-《桥梁》实用汉语中级教程(上)课件
- 八年级数学下册第3章图形与坐标复习教案(新)湘教
- 吊篮作业安全监理专项实施细则
- 晖老年服务有限公司创业计划书
- 地下车库建筑结构设计土木工程毕业设计
评论
0/150
提交评论