论文格式
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 轻化工程 德语论文 工程管理 文化产业管理 信息计算科学 电气自动化 历史论文
机械设计 电子通信 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 电视制片管理 材料科学工程 汉语言文学 免费获取
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 应用物理 电子信息工程 服装设计工程 教育技术学 论文降重
通信工程 电子机电 印刷工程 土木工程 交通工程 食品科学 艺术设计 新闻专业 信息管理 给水排水工程 化学工程工艺 推广赚积分 付款方式
  • 首页 |
  • 毕业论文 |
  • 论文格式 |
  • 个人简历 |
  • 工作总结 |
  • 入党申请书 |
  • 求职信 |
  • 入团申请书 |
  • 工作计划 |
  • 免费论文 |
  • 现成论文 |
  • 论文同学网 |
搜索 高级搜索

当前位置:论文格式网 -> 免费论文 -> 其他论文

软件复用与组件技术综述

本论文在其他论文栏目,由论文格式网整理,转载请注明来源www.lwgsw.com,更多论文,请点论文格式范文查看

摘  要:于1968年在其论文“大量生产的软件组件”中首次了软件复用这一概念,从此,人们围绕这一问题进行了大量的研究和实践活动。随着面向对象技术的进一步发展,基于组件的软件复用技术逐渐成为这一领域的研究热点。本文对软件复用与组件技术进行综述,介绍了主流的组件模型、业务组件技术及其发展,并阐述了基于组件复用的软件开发的方法与一般过程。
关键词:组件技术,面向对象技术,软件复用,业务组件

Software Reused and Component Technology Overview
Abstract: The idea of software reused is originally presented in the paper “Mass Produced Software Components” by Mcilroy in 1968.Since then people have done lots of researches and practice on it. Much research interest in this field of software reused technology based on component along with the Object-Oriented technology development. This paper summarizes the concept of software reused and the component technology, introduces some main component model and development of business component technology. The software developed approach and procedure based on components reused is described in it.
 Key words: Component technology, Object-Oriented technology, Software Reuse, Business Component1 引言
 随着计算机技术的飞速发展,人们对软件开发的速度和质量都提出了更高的要求。然而,通过多年的研究和实践活动,人们已经认识到在基于非形式化的不完备、不一致的用户需求和快速多变的软件环境(SEE)下开发可运行信息系统,软件开发自动化将是短期内难以实现的目标,软件复用是比较现实可行的解决方案。近年来,由于得到了面向对象等新技术的支持,软件组件复用技术已经成为软件复用技术研究的重点。在组件模型的支持下,通过复用已有的组件,软件开发者可以“即插即用”地快速构造应用系统。这样不仅可以节省开发时间和经费,提高工作效率,而且可以产生更加规范、更加可靠的应用软件。因此,组件复用技术被视为解决软件危机、提高软件生产效率和质量的有效途径。
2 软件复用与组件
2.1 软件复用与面向对象技术
 软件复用(又称软件重用,Software reused),顾名思义,就是在软件的生产过程中的“一次开发、多次使用”现象。20世纪80年代以来,软件复用已经成为现代软件工程的一个重要目标,过程与函数的复用是软件复用的最初形式,面向对象技术的发展和应用对于提高软件复用起到了积极的推动作用。面向对象技术把现实世界中的事物抽象为“对象”,把数据以及相关的方法(对数据的操作)封装在一起,使用继承的特性并利用已有对象的功能来构造新的对象,有效地提高了软件的开发效率。但是,面向对象的软件开发设计并没有发挥出它应有的最大力量。首先,它支持的软件复用是源代码级别的,某一面向对象语言的类只能用于同一语言中;其次,在开发大型软件系统时,它的粒度粗细难以有效控制;另外,不同软件开发商所提供的对象(指语言的类)不易交互合作,难以支持系统的集成。因此,从理论上讲,面向对象技术是应能支持软件的复用和集成,但在实际上,面向对象技术只是可以作为一种基础。
2.2 组件的基本概念
 组件技术是从面向对象技术发展而来的,组件(又称构件,Software Component)在不同上下文中有不同含义,例如,功能模块、类、对象或一组相关函数;另外的定义还包括标准类库、框架、CASE模型,以及任何可复用的软件制品等等不一而足。通常人们所提到的组件具有以下特点:组件是具有一个或一组定义良好的接口的一段相对独立的自包含软件,具有二进制可复用性,遵从某种组件规范,可以与其它组件组合成一个系统并是可替换的。它具有运行时和开发时的两个内涵,即既有运行时可访问的接口;又具有开发时可独立提交与安装的特性。
 面向对象技术常常把重点放在封装以及代码复用方面,而软件组件技术支持二进制复用,侧重于组件的可插入性(Plug-ability)。组件技术将封装运用到了极限,它通过只暴露公用接口来实现这一点,组件的实际实现被隐藏起来。于是,首先,它可以独立于实现语言:一个Java客户不会感觉到所使用的组件是用C++来实现的;其次,它可以是位置透明的:客户不会感觉到所使用的组件是运行在相同的进程中,还是运行在不同的进程中,甚至是位于不同的机器上。使用高层次的封装,对于外界的好处在于,设计合理的组件可以插入到不同的客户程序中,而客户程序无需关心组件的实现。组件的客户只需关心该组件所提供的接口(即约定)。在理想的设置中,支持相同接口的不同组件可以互换使用。可互换组件的可插入性是基于组件系统的目标。
2.3 组件复用的基本方式
   依据复用的对象,可以将组件复用分为产品复用和过程复用。产品复用是指复用已有的组件,通过组件集成(组装)得到新系统。过程复用是指复用已有软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需的系统。
   依据对组件进行复用的方式,可以分为黑盒复用和白盒复用。黑盒复用是指对已有的组件不作任何修改,直接进行复用。白盒复用指已有组件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可以使用。
2.3 组件复用技术研究内容
 组件复用包括两个基本过程:可复用组件的开发和基于可复用组件的应用系统的组装与集成。研究的内容主要有:组件获取技术,组件模型技术,组件描述语言,组件分类与检索,组件复合组装,组件标准化。
 实现组件复用的关键技术主要包括:软件组件技术、领域工程、软件架构、软件在工程、开放过程、CASE技术等技术因素以及诸多非技术因素,其相互之间的关系如图1所示。
 
 
 
 
 
 
 
 
 


3 组件模型及其分类
 为了使组件使用者能够很容易地理解组件的功能及其属性,对组件做一个清晰的描述是非常必要的。一般认为描述组件的最简捷途径是组件模型(Component Model),组件模型除定义组件的基本属性外,还要规定组件接口的结构以及组构件与应用框架、组件与组件之间的交互机制。组件模型通常还提供创建和实现组件的指导原则,一个被组件生产者和使用者共同接受的组构件模型就是组件的工业标准。组件模型可以从理论与实现两个不同角度来进行划分,前者侧重于学术界,后者则主要针对产业界。
3.1 组件理论模型
 学术界提出的理论指导性模型,比较有代表性的是Tracz提出的3C模型、REBOOT项目中提出的REBOOT模型和北京大学提出的青鸟组件模型,这些模型的抽象层次比较高,用户可以根据不同的问题域对其进行扩展。
 3C模型的命名主要来自该模型描述组件所采用的3个C特征,即概念(concept)、内容(content) 和语境(context)。概念用于描述组件的功能。组件的概念依据它的接口说明以及它所执行操作的语义描述表现出来,使用者可以从概念描述中了解它的功能;内容用来描述组件怎样完成概念所描述的功能,如算法、结构等,它是概念的细化描述;语境或者叫上下文,主要用于描述组件与其他组件的关系,它是组件中最复杂的特征描述。
 REBOOT模型是一个基于刻面的分类模型,它所考虑的刻面包括依赖、抽象、操作及操作对象,是一个被称为是刻面中项的联合。
 北京大学青鸟组件模型从三个不同的、相互正交的视角来看待组件,每个具体的组件都是形态、层次和表示构成的三维空间中的一个点. 组件形态被分为类、类树、框架、设计模式、体系结构5 种;组件层次被分为分析件(指系统需求规约和功能规约)、设计件(指系统体系结构和设计方案)、编码件(由具体程序设计语言编制的源代码组件)、测试件(测试计划和测试案例) 4个层次;组件的表示与层次有关,不同层次的组件具有不同的表示媒介和手段,如图形、复合文档、正文、伪码、编程语言、目标码等。根据上述概念,青鸟组件模型从9个方面来描述组件,即概念、操作规约、接口、类型、实现体、组件复合、组件性质、组件注释、组件语境。青鸟组件模型是一个具有面向对象风格的模型。
3.2 组件实现模型
 组件模型是对实际组件的抽象,经过几年的发展,组件模型及其规范已经提出。在产业界,组件实现模型主要有客户端组件模型和服务器端组件模型两种。其中,客户端组件模型又称为桌面应用组件模型。组件粒度较小,主要用于用户界面元素、复合文档框架等方面。例如,SUN的JavaBeans,微软的ActiveX、OLE Automation(基于COM) 等。而服务器端组件模型是基于分布式对象技术建立起来的,所以又称为分布式组件模型,其组件粒度较大,一般封装有业务逻辑,运行于三层/多层应用程序的中间层(业务层),用于构建大型分布式应用系统。当前主流分布式组件模型有:SUN的EJB(Enterprise JavaBean),ORG CORBA 3.0的CCM(CORBA Component Model)以及微软的COM+,它们对组件的基本构成及其体系结构的演化产生着十分重要的影响。
 3.2.1 CORBA与CCM
 1999年末,ORG经过投票批准了CCM(CORBA Component Model),从而引入了新一种服务器端组件模型。从本质上讲,CCM标准分为两部分,一部分是核心CCM规范,它支持EJB组件,另一部分是扩展的CCM规范,它包括EJB组件和容器/服务器不具备的功能。CCM组件和容器/服务器可用任何语言编写并可运行于任何平台上。
 CCM组件的抽象模型中主要包括对Facets、Receptacles、Event Sources/Sinks、Home接口、Attributes的描述。其中,Facets是构件向外界暴露出的接口,Receptacles提供了一种一般化的途径来把某些类型的对象连接到组件,它还允许组件声明对对象引用的依赖关系,Attributes对传统的CORBA接口属性概念做了扩展,允许对组件进行配置,使用配置工具可以通过Attributes来预设组件的配置值,Home接口用来定义组件的生命周期管理操作。
 3.2.2 EJB
 EJB是SUN的构组件规范,是J2EE规范的一部分SUN对EJB的定义是:EJB是开发和部署基于组件的分布式商务应用程序的一种组件结构。用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。这些应用程序只需编写一次,而可以部署在任何支持EJB规范的服务器平台上。EJB模型的组件叫Enterprise Bean,EJB1.1规范定义了两种基本类型的Bean: Entity Bean(实体Bean)、Session Bean(会话Bean)。其中,Entity Bean是为现实世界的对象建造的模型,其业务概念一般可用名词表达,比如一个Entity Bean可以代表一位顾客、一部设备、清单中的一项或一个地方。Session Bean实现运行于服务器端的业务逻辑,可以把它看作客户程序的扩展。Session Bean作为客户端的代理,负责控制工作流(业务过程)并填补Entity Bean代表的数据和与该数据交互的业务逻辑之间的空白。
 要实现一个Enterprise Bean,需定义两个接口和两个类:远程接口(Remote Interface)、Home接口(Home Interface)、Bean类(Bean Class)和主键类(Primary Key Class)。Enterprise Bean生存于EJB容器中,EJB容器负责包装Enterprise Bean,并自动管理Bean的持久化、安全性、事务处理、资源分配与回收等。EJB容器提供了Enterprise Bean的运行环境,而EJB服务器则为EJB容器提供运行时环境,负责管理底层的系统资源。理论上,一个服务器可以包含若干容器,且服务器和这些容器可以来自不同提供商。
 3.2.3 COM+
 随着Windows2000的发布,微软推出了COM+1.0,COM+将COM/DCOM和MTS有效地统一起来,形成一个功能强大的体系结构,并且紧密地与操作系统结合在一起,通过系统服务为应用程序提供全面的服务。COM+组成结构如图2所示。
 COM+组件是业务逻辑的软件实现形式,它是人们编写的最终代码。COM+要求组件必须被包装到一个COM DLL服务程序中,每个DLL可以包含多个组件。COM+提供了一个组件管理环境,通过它可以设置COM+应用和COM+组件的属性信息,例如组件的事务特性、安全特性等。COM+把组件信息保存在COM+目录中。开发人员可以通过声明而非编程来确定组件的属性。COM+为每个对象提供了一个对象环境(Object Context),COM+系统可以在创建COM+对象时为其分配一个环境对象,环境对象跟踪记录COM+对象行为特性的数据,COM+通过环境来实现COM+组件的可管理性和可配置性。
 3.2.4 .NET配件
 微软于2000年7月揭开了.NET的大幕。.NET平台是一个全新的开发框架,它具有与Windows 服务和API协作的全新编程接口。.NET框架最重要的部件是CLR(Common Language Runtime,公共语言运行时环境)。CLR管理和执行各种.NET语言编写的代码,是.NET体系结构的基础,与Java虚拟机相似。CLR负责将对象激活,对其进行安全检测,对内存分配进行布局、执行,以及在对象成为无用资源时回收。
 在.NET平台中,为了简化组件的开发和部署,引入了Assembly,一般称作配件。理论上讲,.NET配件近似等价于COM模块;而在实践中,配件可以包含或引用运行时执行所需的许
多类型和物理文件(包括位图文件、.NET PE文件等)。除了存放IL(Intermediate Language,中间语言)代码外,配件还是版本协调、部署、安全管理、并发执行、共享和重用的基本单位。描述配件信息的元数据(Metadata)称为配件清单(Manifest)。配件清单描述了配件的所有信息,包括标识、所包含的文件、外部配件的引用、导出类型、导出资源和权限请求,这些元数据存在于.NET PE文件的CLR数据段中,所以无需在注册表中存储了。客户程序使用配件时,由CLR通过客户程序的配件清单中的外部引用信息来装载正确的配件。可以看出,在.NET环境中,组件的开发和使用再也无需象COM那样进行大量的底层工作。
 .NET框架具有两个主要组件:公共语言运行库和.NET框架类库。公共语言运行库是.NET框架的基础。可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性;.NET框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发包含从传统的命令行或图形用户界面(GUI)应用程序到基于ASP.NET所提供的最新的Web应用程序在内的软件系统。
4 业务组件技术及其发展
 软件组件技术的出现,为根本改善目前软件生产高成本、低效率的状况,为实现软件由作坊式生产向工业化生产的飞跃带来了机会。但目前的软件组件技术,尚不能使软件生产达
到目前成熟产业的工业化水平。软件组件技术的下一代技术——业务组件技术(Business Component),将为软件的工业化生产提供理论与技术基础。
 4.1 业务组件的粒度
 业务组件技术是一套新思路,它提出了一种适合企业级应用的特殊的基于组件的开发方法,称为业务组件方法(Business Component Approach)。依照这种思路,组件按粒度的粗细分为以下几种:
 分布式组件(Distributed Component)。它是最小的一种业务概念。它可以用CORBA组件、EJB或DCOM来实现。通常是用面向对象的程序语言(OOPL)构造的,一般说,分布式组件的内部构造都有相适应的OOPL类对应着。
 业务组件(Business Component)。业务组件是由分布式构件组成的,它表达了分布要求下的一个自治的单元。它是可以物理地跨越两个乃至多个机器进行部署的单个的制品。业务构件是最重要的一种组件,可以有如下定义:“业务组件是一个自治的业务概念或业务过程的软件实现。作为大型分布式信息系统中一个自治和可重用元素,它由表示、实现和部署一个给定业务概念的所有必需的软件制品构成。”该定义首先表达了业务组件是表示单个自治业务概念的一种组件;进而说明它的内建的分布式系统的特性(“分布式系统的自治可重用的元素”);接下来着重点明它贯穿于整个开发生命周期的适用性(“表示、实现和部署一个给定业务概念的所有必需的软件制品”)。
 业务组件系统(Business Component System)。业务组件系统是由业务组件组成的系统,又称为系统级组件。当它被封装后(通过暴露出清晰的接口)即可视为一个黑盒,并被用于规模更大的集成。这在处理多个系统以及这些系统间互操作时非常有效。业务组件系统按以前阿术语讲,就是信息系统或“应用”。但要按照业务组件的说法,应该定义成:“业务组件系统是一组协同操作的业务组件,它们被装配在一起,完成一个业务问题的解决方案。”按照此定义,它是致力于解决一个领域空间中的一个特定的问题。一个业务组件系统可被看作一组同时部署的普通的业务组件的组合,它实现了一个或多个可标识的、自治的业务过程。
 4.2 业务组件方法的目标
 业务组件方法为大型分布式系统的开发和集成定义了一个概念框架,它的主要目标是:
 (1)通过自治地开发大型软件单元(分布式组件、业务组件和系统级组件)的方法极小化问题的复杂性和开发的代价。
 (2)在开发的所有阶段、贯穿所有的体系结构视图和分布层面,支持高级别的重用。
 (3)通过两种途径加速开发的过程:首先,可以装配已有的组件;其次,将系统的快速开发、逐步集成和高质量的开发结合起来进行。
 (4)生成高度可发展的系统。
 (5)可实现用不同供应商生产的组件进行替换的能力,并最终形成一个组件市场。
 4.3 业务组件工厂
 业务组件方法还有一个非常重要的概念:业务组件工厂(Business Component Factory)。它是这样定义的:“一种有效地进行软件开发的能力,它能够以重复的方式为一个企业大量、快速、经济地生产出高质量的软件。”基于组件的思路和业务构件是业务组件工厂的必要的前提。
 为达到软件生产工业化的目的,需要一个软件工厂,而此软件工厂应与它所生产的软件相分离。软件工厂由给定的标准的开发过程、技术体系结构、应用体系结构和项目管理体系结构组成(如图3所示)。这样的工厂允许功能开发者将精力集中于他们所熟悉的业务功能,而无需顾及工厂所提供的四层基础性工作。
 4.4 业务组件虚拟机
 实施业务组件方法隐含着对基础设施有一组要求,例如,该基础设施要对上层的功能开发着提供底层的透明性等。这就提出了实现所谓业务组件虚拟机(BCVM: Business Component Virtual Machine)的要求了。
 业务组件虚拟机一方面是一个运行时虚拟引擎,要屏蔽掉特定操作系统的细节,这与Java虚拟机相似;另一方面,它还包含了说明、实现、测试和部署软件组件所需的工具和基础设施,使得功能开发者可以专注于业务功能,同时可确保所生产的组件能运行在许多硬件体系结构、中间件、数据库系统之上,并能容易地与其它组件邦联和协作。换句话说,BCVM 是这样一种基础设施,它的目的是使业务组件的开发独立于底层的细节和软件技术的因素。例如,在不改变功能源码的情况下,它应能在Unix、Windows上运行; 使Oracle、Infomix、SQL Server 或任何选定的RDBMS能使用任何运行时的基础设施,无论是CORBA还是DCOM/COM+或EJB。BCVM包括运行时基础设施,一组服务、实用程序和框架,一组开发工具,以及用户界面框架。可以预期,随着时间的推移,虚拟机概念会朝着两个方向发展:
 (1)其抽象的级别不仅覆盖了今天的基础设施的范畴,而且会涵盖现在所认为的功能空间。例如,可能会包含某些可重用的业务组件等。
 (2)整个生命周期不仅限于构造时和运行时,而且最终也要包括生命期的所有阶段。
5 基于组件复用的软件开发
 基于组件的软件开发源于现代软件工程思想,依托于组件技术的快速发展,提供了一种自底向上、基于预先定制包装好的组件来构造应用系统的途径。其开发过程可分为系统需求分析、功能分解、组件规划、组件设计、组件实现与测试、组件装配、系统测试等六个阶段(如图4所示)。其中,功能分解是分析系统的功能模型,为规划系统所需的组件提供基础;组件设计是根据系统的功能模型提取规划实现系统功能所需的组件,建立系统的组件库模型,然后设计后台数据库、设计组件的功能与接口;组件实现是根据规划好的系统组件功能与接口,采用具体的组件技术实现组件功能与接口,并完成该组件的测试工作;组件装配是根据系统的需求分析,结合已实现的组件库模型,通过包容、聚合等机制组装并实现系统的功能。
 组件装配(又称为组件组装)技术主要涉及到软件体系结构设计。软件体系结构是对系统整体结构设计的刻划,包括全局组织与控制结构,结构间通信、同步和数据访问协议,设计元素功能分配、物理分布、设计元素集成、伸缩性和性能,设计选择等,研究的重点是如何快速、可靠地利用可复用组件构造系统,着重于软件系统自身的整体结构和组件之间的互联。
6 结束语
 组件技术已经成为软件技术的重要组成部分,其研究已经对软件技术多个方面的发展起到了积极的推动作用。但是组件技术本身的研究却面临着若干问题。分析组件技术研究的现状可以得到,尽管对组件技术中基本概念的认知正逐渐趋于一致,但认识的差异依然存在,直接导致了当前的组件技术难以应用于具体业务领域。计算机信息技术在领域业务应用中的快速普及,已经极大地推动了领域软件复用的需求。当前组件技术不但不能满足这些需求,甚至相关的研究也比少。因此,迫切需要在当前组件技术研究成果的基础上,结合领域应用的需求,研究领域组件技术及其应用。

 参考文献
[1] 毛德祥,罗荣阁. 基于ASP.NET技术的WEB应用程序三层设计模型[J].微型电脑应用.2002;(3):47-49;
[2] 杨芙清,绍维忠,梅宏.面向对象CASE环境JBII型系统的设计和实现[J].中国科学,1995, 25(5):16.
[3] President’s information technology advisory committee report to the president information technology research: Investing in our future[R].1999.
[4] Sum Microsystems.Enterprise JavaBeans Specification[S].Version 2.0.2001-08-14
[5] Ed Roman. Mastering Enterprise JavaBeans[M]. Wiley Computer Publishing,1999
[6] http://java.sun.com/
[7] OMG. CORBA 3.0 New Components Chapters.1999-10-29
[8] Dave Bartlett.CORBA Components Model.http://www-106.ibm.com/developerworks/,2001-04

项目资助:湖南省教育科学十五规划课题(编号:XJK03CG021)作者简介:刘军(1972-),男,汉族,湖南衡南人,硕士,副教授,主要研究方向:计算机网络,数据库技术.通讯地址:湖南省南华大学计算机科学与技术学院 邮编:421001 Email:liujunzhm@163.com阳小华(1963-),男,博士,教授,硕士生导师,主要研究领域为WWW 智能查询, 数据库技术.


相关论文
上一篇:浅谈MIS在水费系统中的应用 下一篇:机动车保险骗赔及其对策
Tags:软件 复用 组件 技术 综述 【收藏】 【返回顶部】
人力资源论文
金融论文
会计论文
财务论文
法律论文
物流论文
工商管理论文
其他论文
保险学免费论文
财政学免费论文
工程管理免费论文
经济学免费论文
市场营销免费论文
投资学免费论文
信息管理免费论文
行政管理免费论文
财务会计论文格式
数学教育论文格式
数学与应用数学论文
物流论文格式范文
财务管理论文格式
营销论文格式范文
人力资源论文格式
电子商务毕业论文
法律专业毕业论文
工商管理毕业论文
汉语言文学论文
计算机毕业论文
教育管理毕业论文
现代教育技术论文
小学教育毕业论文
心理学毕业论文
学前教育毕业论文
中文系文学论文
最新文章
热门文章
计算机论文
推荐文章

本站部分文章来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:349991040@qq.com

论文格式网(www.lwgsw.com--论文格式网拼音首字母组合)提供其他论文毕业论文格式,论文格式范文,毕业论文范文

Copyright@ 2010-2018 LWGSW.com 论文格式网 版权所有