




已阅读5页,还剩73页未读, 继续免费阅读
(计算机应用技术专业论文)构件技术研究与在交通领域的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
夫连理一l 大学硕士学位论文 摘要 随着计算机应用领域的迅速扩大,软件规模及复杂性的不断提高,软件危机日益严 重,提高软件的生产效率和质量成为软件产业的当务之急。近些年来面向对象技术的发 展成熟和i n t e m e t 网络的发展普及,使软件复用成为软件工程的研究热点,被认为是解 决软件危机,提高软件生产效率和质量的主要途径。基于构件的软件开发是当前软件复 用研究的热点,是软件复用的关键技术之一。 本文首先介绍了选题背景和国内外的研究进展情况,论述了构件技术研究的主要问 题,包括描述构件本质的构件模型,以领域工程为主要途径的构件获取技术,以构件库 为核心的构件分类管理技术以及基于构件的软件系统开发等;接着本文将领域工程应用 于城市交通系统,采用f o d m 和u m l 建模方法抽取实现部分交通领域的共性构件;然后 分析研究构件分类与管理方法,建立交通领域构件的分类模式,依照交通构件分类模式 将构件发布到青鸟构件库中进行管理;最后在抽取实现城市交通构件的基础上,根据用 户的需求,采用构件技术实现了大连市交通快速反应系统的主要功能。基本过程包括: 分析系统功能和运行环境,设计建立系统的总体结构和体系结构,根据领域工程中建立 的领域特征模型,建立该应用中各功能的应用特征模型,根据应用特征模型,结合u m l 建模技术,将系统各项功能抽取实现为构件,确定各构件之间的调用关系并部署到应用 服务器中。 本文的研究表明基于构件的城市交通系统增强了系统的灵活性、可扩展性,提高了 系统的性能。城市交通领域工程的实施为以后的交通领域的软件复用奠定了基础,基于 交通构件的交通应用的开发将大幅度减少软件开发的重复工作,同时,对其它领域基于 构件的软件开发具有一定的借鉴意义。 关键词:软件复用;软件构件:领域工程;软件体系结构;面向特征的领域建模 大连理工大学硕士学位论文 r e s e a r c ho i lc o m p o n e n tt e c h n o l o g ya n di t sa p p l i c a t i o ni nt r a f f i c d o m a i n a b s t r a c t w i t ht h er a p i de x t e n s i o no fc o m p u t e ra p p l i c a t i o nd o m a i na n dc o n t i n u o u si n c r e a s eo f s o f t w a r ec o s ta n d c o m p l e x i t y ,t h es o f t w a r ec r i s i s i sm o r eo b v i o u s l ye x p o s e d ;t h em o s t i m p o r t a n tt h i n gi si n c r e a s i n gt h es o f t w a r ep r o d u c t i v i t ya n dq u a l i t y a st h ed e v e l o p m e n to f o b j e c t o r i e n t e dt e c h n o l o g y ,s o f t w a r er e u s e ,w h i c hi sc o n s i d e r e dt ob eam a i nr e s o l u t i o nt o s o f t w a r ec r i s i sa n de n h a n c e m e mo ft h es o t t w a r ep r o d u c t i v i t y ,h a sb e c o m et h ef o c u so f s o f t w a r ee n g i n e e r i n g a tp r e s e n t ,s o f t w a r er e u s ei s m a i n l yf o c u s i n g o nt h er e u s eo f c o m p o n e n t f i r s t l y ,t h i sp a p e ri n t r o d u c et h eb a c k g r o u n da n dr e s e a r c hp r o g r e s sh o m ea n da b r o a do n t h i st o p i c i n c l u d i n gt h ec o m p o n e n tm o d e l ,t h ec o m p o n e n tp r o d u c t i o nb a s e do nd o m a i n e n g i n e e r i n g ,c o m p o n e n tl i b r a r ya n ds y s t e md e v e l o p m e n tb a s e do nc o m p o n e n t s e c o n d l y , d o m a i ne n g i n e e r i n gi sa p p l i e dt oc i t yt r a f f i cd o m a i n ,m a n yt r a f f i cc o m p o n e n t si se x t r a c t e d a n dr e a l i z e db a s e do nf o d ma n du m l m o d e l i n g t h i r d l y ,t h ec l a s s i f ya n ds e a r c h i n gm e t h o d o fc o m p o n e n t si sa n a l y z e d ,t h e nt r a f f i cc o m p o n e n t s c l a s s i f y i n gm o d ei sc o n s t i t u t e d , a tt h e s a m et i m e ,t r a f f i cc o m p o n e n t si s u p l o a dt oj a d e b i r dc o m p o n e n tl i b r a r yt o b em a n a g e d , f i n a l l y ,b a s e do nc o m p o n e n tt e c h n o l p g y ,s o m em a i nf u n c t i o n so fd a l i a nr a p i dr e s p o n s e s y s t e mi sd e v e l o p e d t l l cm a i np r o c e s si s a sf o l l o w i n g :a n a l y z et h ef u n c t i o n sa n dr u n t i m e e n v i r o n m e n t ,c o n s t i t u t et h es t r u c t u r ea n da r c h i t e c t u r eo fs y s t e m ,b u i l dt h ea p p l i c a t i o nf u n c t i o n f e a t u r em o d e lb a s e do nd o m a i nf e a t u r em o d e l ,e x t r a c ta n di m p l e m e n tc o m p o n e n t sw i t hu m l , c o o r d i n a t er e l a t i o n s h i p sb e t w e e n c o m p o n e n t sa n dd e p l o yt h es y s t e mc o m p o n e n t s o e a p p l i c a t i o ns e r v e r t h er e s u l to ft h i sp a p e ri n d i c a t e st h a tt h et r a f f i cs y s t e mb a s e do nc o m p o n e n th a sg r e a l f l e x i b i l i t ya n de x p a n s i b i l i t y w i t ha l le n h a n c e m e n to fp e r f o r m a n c e t h ea p p l y i n go fd o m a i n e n g i n e e r i n gm a k e sf o u n d a t i o no fs o f t w a r er e u s eb a s e do nc o m p o n e n ti nt r a f f i c d o m a i n t r a f f i cc o m p o n e n tc a na v o i dm u c hd u p l i c a t e dw o r ka n da l s op r o v i d e sar e f e r e n c ef o rs o f t w a r e r e u s eb a s e do i lc o m p o n e n ti no t h e rd o m a i n s k e yw o r d s :s o f t w a r er e u s e ;s o f t w a r ec o m p o n e n t ;d o m a i ne n g i n e e r i n g ;s o f t w a r e a r c h i t e c t u r e ;f e a t u r e o r i e n t e dd o m a i nm o d e l 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特- 3 1 j ) j d 以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:耋螯醯日期:至堡 ! 坐: 人连理上大学硕士学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用 规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子 版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论 文。 作者签名:至勃隧 作者签名: 盔麴幽 导师签名:筠! 堕 迸一1 ) - , q 堕日 大连理工大学硕士学位论文 1 绪论 每项新技术的出现、兴起,都离不开应用的需求和与其相关的技术的发展成熟。软 件构件亦然。它的产生与发展离不开人们在软件开发生产中的应用需求和相关的软件技 术的发展。在应用需求方面:随着计算机的发展普及,软件规模越来越大、越来越复杂。 软件的设计开发过程难以控制。软件的开发过程成为过去难以想象的系统工程,这就造 成软件设计的开发周期过长、软件质量大幅下降,软件产品交付以后,软件开发商还要 花费大量的资源进行系统的维护。根据微软公司公布的数据,w i n d o w s 2 0 0 0 开发过程中 测试代码行数超过1 0 0 0 万行,测试兼容性的应用软件数量1 0 0 0 种,应用测试中所使用 的脚本程序6 5 0 0 种,每月备份的数据约8 8 t b ! ”。急需一种新的软件技术来就解决上述 问题。在软件技术方面:人们一直在苦苦追求新的软件技术以更加准确的抽象、描述现 实世界的问题,从最开始的“手工作坊式”的软件开发,到结构化的分析设计,到原型 法,到面向对象技术都没有给出一个完美的答案。 迄今为止人们已经开发了大量的应用于不同领域、不同工程的软件,这些软件中存 在大量的相似甚至是相同的功能,因此,受传统产业( 如建筑业、制造业) 发展模式的启 发,基于标准软件“零部件”( 构件) 的软件复用1 2 ,越来越受到重视,各大软件开发商 和科研部门都投入大量人力、物力进行相关理论和技术的研究。近些年来,面向对象技 术的发展成熟和中间件技术的出现为实现基于构件的软件复用提供了切实可行的途径。 1 1 研究的背景与意义 软件开发是一门综合性学科,它包括哲学、基础科学、技术科学、工程管理四个知 识层次。哲学决定着整个学科建立的指导思想、认识论和世界观。认识论就是人们认识 客观世界的规律和方法,称它为认知体系。 应用软件开发时,有自己必须遵循的哲理和认知观,对基础理论、研究方向以及采 用的技术措旌起着指导作用,符合学科就能发展,否则就会遇到各种问题,甚至导致失 败。从软件发展的几个里程碑中可看出,认知观起到了决定性的作用。 软件开发的初期阶段,我们称为程序设计时代,软件开发处于“小作坊”个体生产 方式水平。到了6 0 年代中期,出现了一些大型复杂的软件系统,人们认识到以个人的能 力难以完成一个大系统的任务。w e d i j k s t r a 首先提出了一种解决方案,采用结构程序 设计方法,就是把软件开发看作数学求解,沿用数学上的枚举、抽象、归纳、类比等思 维方式,把问题简化。用工程的概念、方法、原理和技术来开发和维护软件,产生了结 构化分析和设计的方法。这种开发方法长期左右着软件开发,起到了重要作用,然而它 李新鹏:构件技术研究与在交通领域的应用 仍然存在着缺陷,如_ 丌发周期长、成本高、质量差,特别是所开发的软件不能适应系统 的不断演化。 到7 0 年代,人们认识到,仅从软件结构上脉络清晰是远远不够的,这只是“表”, 不是“里”,软件在结构上还应该适应客观世界的自然结构。m a j a c k s o n 认为应用软 件应该忠于现实、高于现实,提出j s d 系统开发方法,其指导思想是“仿真客观世界”, 采用自底向上的设计步骤阱】。j s d 方法第一次揭示了客观世界与软件系统之间的关系, 因而所开发的软件悟性好、实用性强。然而j s d 方法也存在着固有的缺陷:如何仿真要 确定系统的实体和活动,它没有给出准则可循;没有区分客观世界的模型和软件系统模 型,不能直接映射过去,其结果是系统结构混乱、效率低,软件成份复用性差。 到y 8 0 年代,面向对象重新崛起,面向对象的认识论是将系统看成由多个对象组成, 通过对象之间的通信形成了系统,为客观世界过渡到软件系统提供了途径和编程的思维 方法。其主要特征是: ( 1 ) 类和封装性,实现数据抽象和信息隐蔽,给出了对象类型和参数化,通过生成 实例后组装成系统,提供了实现复用的手段; ( 2 ) 继承性,提高了代码复用性: ( 3 ) 多态性。 面向对象给出了软件系统的体系结构,引入了软件复用的思维方法。近年来引起了 越来越多的人关注,提出了多种对象模型、语言,设计了各种基础型库,使得面向对象 程序设计逐步成为热点。 面向对象技术虽然被大家接受,公认为当前的发展主流,然而在实际应用时,还存 在着一系列问题。 ( 1 ) 模型和概念尚未统一,不同的人对系统和对象的理解不一致,导致了各种对象 语言均有很大差异,且语言自身与纯面向对象理论有许多不致的地方,就难以形成统 一的标准和开发规范: ( 2 ) 要求使用面向对象技术的人员素质较高,要掌握的东西很多,如要熟练掌握c + + 必需了解大量的m f c ( m i c r o s o f tf o u n d a t i o nc l a s s ) 类库,且要了解每个类的细节; ( 3 ) 面向对象复用仅仅是处于初级阶段,主要是代码级的复用,未提出任何模式和 规范以及相应的管理机制; ( 4 ) 工程上难以实施。目前面向对象能很好应用的领域有限( 如v b 的界面设计、多 媒体软件设计) ,真正用纯面向对象技术来开发大型软件的并不多,其原因有:如何提 炼对象类,采用o o a ( o b j e c t - o r i e m e d a n a l y s i s ) 是不可行的;实际应用领域中的可复用领 域专用构件缺乏;由于对象无统一标准,因此还停留在程序员自己复用,很难共享,更 大连理工大学顶士学位论文 谈不上分布式情况下复用;纯面向对象要摒弃原有的许多技术等。产生上述问题的根本 原因是由于认知体系上的不完整。 借鉴传统产业的发展,其基本的生产模式均是以“零部件”为中心的生产和基于标 准“零部件”的组装。软件复用的思想与之类似,于是构件技术应用而生。基于构件的 软件开发过程大致可以分为如下几个阶段: 第一阶段为需求获取,采用仿真办法,描述客观世界的人工系统。设计领域需求, 用h i p o 图、半形式化方式描述出客观系统。 第二阶段是分析客观系统,设计出逻辑系统,称为领域分析。由于客观系统和软件 系统在概念、结构、功能,通信方式均有很大差异,虽然都是采用面向对象的概念来形 成,但客观世界的对象是实体,没有类的概念;客观世界是一种功能模型,而软件系统 是面向封装后的对象组成。要把从客观系统转换到软件系统,且要有利于实现复用,为 此将与领域有关的不变部分和可变部分分开,设计出领域软件的框架,提取出领域软件, 由此形成了与领域有关的逻辑系统,以上各部分结果,统称为设计件。在开出构件的规 格说明后,就可以编制构件类、构件类树,为实现领域的群体开发作好一切文档准备。 第三阶段为系统集成,找到合适构件类,将其生成实例,用过程控制语言描述出系 统中的各子系统:配置用户操作界面;生成各种输入输出构件实例等。最后集成系统, 通过实际运行,不断修改,直到用户完全满意为止,这种方法也能适应今后系统的演化。 一旦领域软件系统形成后,在开发同一领域的应用软件时仅仅是第三阶段的工作,用户 自己可以来完成,维护工作也大大减轻。 直观的看,基于构件的软件复用能够节省大量的成本和时间,因为应用系统不必重 新设计构造被复用的软件,而且如果可复用的软件构件具有较高的质量,那么整个软件 产品的质量就可以提高。通过软件过程的复用,软件的复用过程可以提高到被复用过程 自动化的程度,质量可以提高到改进质量过程系统化的程度。当今正在开发和维护的软 件产品中有大量的重复,可以采用软件构件技术的地方很多。美国普渡大学1 9 9 8 年的 一项调查报告显示,该校图书馆里系统中的5 0 多个分类子系统中,重复实现同一算法 的就有十几个。 软件复用的实际意义具体来说可以归纳为以下几个方面: ( 1 ) 软件复用能够最大程度的减少重复劳动,提高软件生产率,从而减少开发代价, 用可复用构件构造的系统能够极大的提高系统的性能和可靠性,因为可复用的构件经过 了高度的优化,并且在实践中进行了运行测试,经受了考验; ( 2 ) 软件复用能够提高系统之问的互操作性,通过使用统一的接口和通信协议,系 统与系统之间能够更为有效的实现互操作性; 李新鹏:构件技术研究与在交通领域的应用 ( 3 ) 软件构件能够支持快速的系统原型设计,利用可复用构件和构架可以快速、高 质量的构建出应用系统的原型,以获得用户对系统功能的反馈; ( 4 ) 软件复用能够极大的减少系统维护的代价,由于使用经过测试检验的构件,减 少了可能的错误,同时系统中需要维护的部分也减少了。 软件复用虽然只是一项技术,却孕育着软件产业的一场革命,可以使软件的开发从 “小作坊”变成“大工厂”,从“小农经济”经济走向“产业经济”,软件复用技术将 促进软件产业的变革,使软件产业真正走上工程化、工业化的道路。 1 2 国内外研究现状 最早的软件复用可以追溯到子程序库( 如常见的数学子程序库) ,但正是提出软件复 用是在1 9 6 8 年举行的首次讨论软件工程的会议上,d m c l l r o y 提出的“m a s s - p r o d u c e d s o f t w a r ec o m p o n e n t s ”的论文,提出生产软件构件的工厂,用软件构件组成复杂系统i :4 l 。 7 0 年代中期以后,国际上对软件复用技术进行了较多的研究与实践,并得到美国、欧洲、 日本等国家的政府和企业界的支持,一些企业也确实通过软件复用提高了软件的生产效 率和质量,但是其效果没有达到最初所期望的程度。主要原因在于软件复用的着眼点仅 局限于对源代码的部分复用,程序员将需要复用的代码复制到自己的程序中是一种最原 始的复用方式,这往往会产生新旧代码不匹配的错误。由高级语言提供的一些预定程序 单元,并通过包含( i n c l u d e ) 之类的语言功能实现复用是较为可靠的复用方式,但范围也 很有限。大规模的实现源程序的复用只有依靠管理大量可复用软件构件的构件库,由于 受软件分析、设计以及实现技术的( 并没有引入面向对象的软件工程思想) 限制,使用软 件构件进行软件复用的成功案例并不多见。近十几年来,随着面向对象技术的出现、发 展与成熟并逐步成为主流技术,以及分布式技术和中间件的出现为软件复用提供了最基 本的技术支持,软件复用重新成为研究的热点1 5 】。 软件构件技术是当前国内外软件复用研究的焦点,被视为是成功实现软件复用的关 键因素之一。同时,在分布式对象领域c o r b a 、c o m d c o m 、e j b 等规范的制订和相 关支持产品的出现,为软件构件的实现提供了技术支持。软件复用技术的广泛应用将促 进软件产业的变革,使其重组分工,软件构件的生产必将成为独立的行业而存在,其基 本模式均是符合标准的零部件( 构件) 的生产,以及基于标准零部件的软件产品的生产( 组 装) ,其中构件是核心和基础。“复用”是必要的手段。实践表明,这种模式是软件产 业工程化、工业化的必由之路。标准零部件生产业的发展是产业形成规模经济的前提。 机械、建筑等传统行业以及年轻的计算机硬件产业的成功发展均是基于这种模式并充分 大连理工大学硕_ 上学位论文 的证明了这种模式的可行性和正确性。这种模式是软件产业发展的良好借鉴,软件产业 要发展并形成规模经济,标准构件的生产和复用是关键陋1 。 为此,世界各国投入大量的资金和精力研究软件复用的相关技术,美国国防部高级 研究项目署建立了“用于易修改的可靠系统的软件技术”项目,研究领域特定的、基于 复用的软件工程技术,并建立了三个示范工程项目。美国空军电子系统中心与美国航空 航天局合作建立了“可复用防务软件的中央档案库”项目,以促进国防项目中的软件复 用。 美国、日本等国家相继提出,软件构件技术是提升软件开发效率、降低软件开发成 本的关键技术之一,并提出国家应该建立国家级的软件构件库。美国军方与政府资助的 项目中,已经建立了若干构件库系统,) i c a r d s 、a s s e r t 、d s r s 等。在由d a r p a 发 起,美国军方、s e i 和m i t r e 支持的s t a r s 项目中,开发基于体系结构的构件库之问共 享资源和无缝互操作的问题,并于1 9 9 2 年提交t a l o a f ( a s s e r t l i b r a r y o p e n a r c h i t e c t u r e f r a m e w o r k ) 的1 2 版本,这一报告体现了s t a r t s 对可复用构件系统的认识,给出了一个 构件库框架的参考模型,北大西洋公约组织( n a t o ) 参与国和承包商制订了软件复用的 标准包括“可复用构件标准”、“可复用构件库标准”、“软件复用过程标准” 6 1 ,制 定这些标准的目标是供n a t o 及其参与国的项目管理部门使用它们来建立复用计划需求 和向承包商提供复用计划向导,承包商则将它们用于特定项目的开发实践。i b m 和l o r a l f e d e r a ls y s t e m 公司研究出了复用成熟度模型等等。 国外大型软件公司在所提供的集成开发环境中也蕴含有软件复用技术,为开发者提 供了使用方便、性能可靠的软件构件。例如:m i c r o s o f t 公司的系列可视化产品、e s r i 公司的m a p o b j e c t 、i n t e r g r a p h 公司的g e o m e d i a 等。 国内的相关研究也较多,如青鸟构件管理系统( j b c l m s ) 是北京大学软件工程研究 所在杨芙清院士领导下的研究成果,它的目标是致力于软件复用,以构件作为软件复用 的基本单位,提供一种有效的管理和检索构件的工具。该工程己取得了一定的研究成果, 他们己将该技术应用于桂林百货大楼、北京前门商场等p o s 系统。软件复用技术已在 国内应用于许多领域,这些应用缩短了开发周期,节省了大量的人力和财力。而“基于 构件技术的商业d d s ”,应用了软件复用思想,开发了“保本保利分析”、“商品适销 率分析”等商业d d s 构件,取得了令人满意的效果。2 0 0 3 年以后构筑模块f 如构件和应 用程序框架) 是构成新的应用程序的主流。这些构筑模块加快了产品的开发速度和企业 的应变能力。以构筑模块出现的构件可以通过复用显著的提升开发品质和生产力,复用 反过来也可以显著的降低成本、降低软件开发风险和缩短开发周期。未来应用程序的开 发依存于一个开放的、便利构件选择和装配的综合体系结构。在未来几年内,软件复用 李新鹏:构件技术研究与在交通领域的应用 技术和活动将变得系统化和规范化,会出现更多的组织使用复用技术,产生可支持复用 和领域分析的软件开发环境和c a s e 工具,涌现特定领域的可复用构件工厂,形成支持 领域或领域间复用软件的开发标准等。软件复用将越来越成为软件开发中的重要技术手 段。可以预计,复用技术将为软件开发带来革命性的变化。 1 3 本文的主要工作 本文首先论述了软件复用的基本理论和思想以及软件构件技术研究的关键问题,讨 论了基于构件的软件开发过程和在各个阶段涉及到的不同方面的知识;然后将交通领域 工程应用于交通领域,采用面向特征的领域分析方法( f o d a f e a t u r eo r i e n t e dd o m a i n a n a l y s i s ) 7 1 和面向特征的领域建模( f o d m f e a t u r eo r i e n t e dd o m a i nm o d e l i n g ) 嘲技术,建 立了交通领域的领域上下文分析模型、领域模型,结合u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 建模方法抽取实现了许多交通构件;接着建立交通领域构件分类模式,将已有交通构件 发布到北京大学青鸟构件库中进行管理;最后,在交通领域工程基础上,采用构件技术 设计实现了大连市交通快速反应系统的几个主要功能。 1 4 本文的组织结构 本文主要研究构件技术及其在交通领域的应用,文章的组织结构安排如下: 第1 章综述了软件复用和构件化软件开发研究的国内外现状,介绍了软件复用、软 件构件技术的主要思想和国内外取得的主要研究成果。 第2 章详细的分析和研究了软件构件技术的研究的主要问题:包括构件的获取技术、 构件的模型、构件管理技术等,接着论述了构件技术在交通领域应用的主要流程。 第3 章将领域工程应用于交通领域,并选择f o d a 领域工程方法对交通领域的领域 工程进行了初步探索,采用f o d m 和u m l 建模方法,抽取实现了许多交通领域构件。 第4 章建立了交通领域构件的存储分类模式,并将已有的交通构件发布到北京大学 青鸟构件库中,统一管理。 第5 章基于e j l 3 构件技术,分析设计了城市交通快速反应系统的总体设计思想,体 系结构和交通领域构件组成的拓扑结构,并采用e j b 构件技术实现了大连市交通快速反 应系统的主要功能。 最后对全文进行了总结,并指出了进一步研究的内容。 人连理1 大学硕士学位论文 2 软件构件技术 软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到高度重视的 学科分支,其主要研究的内容包括 5 1 : ( 1 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件; ( 2 ) 构件模型:研究构件的本质特征及构件间关系: ( 3 ) 构件描述语言:以构件模型为基础,解决构件的精确描述、理解以及组装问题; ( 4 ) 构件的分类与检索:研究构件的分类策略、组织模式及检索策略,建立构件库 系统,支持构件的有效管理; ( 5 ) 构件的复合组装:在构件模型的基础上研究构件组装机制,包括源代码级的组 装和基于构件对象互操作属性的运行级组装; ( 6 ) 基于构件的软件系统开发:如何复用已有构件,构建集成应用系统,包括应用 工程、应用的组装等。 上述关键技术可以用图1 _ 1 描述,包括以描述构件本质的构件模型( 目前主要是三种 实现模型) 、以领域工程和领域再工程为主要途径的构件获取技术、以构件库为核心的 构件存储管理技术和以软件体系结构为核心的构件的描述组装技术等。 图l _ l 构件化软件开发所涉及的主要技术和流程 f i g 1 1t h ek e y t e c h n o l o g ya n d p r o c e s s o f c o m p o n e n t - b a s e ds o f t w a r e d e v e l o p m e n t 2 1 构件技术 9 0 年代软件技术的一个重要发展就是构件化,这是因为现在的系统软件规模越来越 大,要完成的功能也越来越多、越来越复杂。因此软件复用和软件集成更加具有非同寻 李新鹏:构件技术研究与在交通领域的应用 常的意义,开发和复用构件是提升软件生产效率、提高软件生产质量、降低软件生产成 本的现实有效的途径。基于可复用构件的软件开发必将成为软件开发技术的主流。 构件技术是面向对象技术的发展,其与面向对象技术的最基本不同点是:一个对象 是源代码的一部分或者是一个规范,用来执行应用程序的一部分;而构件不仅仅是个规 范,也不一定是需要编译器才能使用的一部分源代码,而是实际可运行的软件模块。另 外,构件与其它可复用软件模块的区别在于,构件既能在设计时使用和修改,也可以在 执行时使用和修改。个软件构件够有效的嵌入到其它开发商开发的软件系统当中。 在许多情况下,软件开发者需要那些已经制造好的可以直接拿来使用的软件功能模块, 这就形成了一个功能强大的软件需求市场。现在的软件工业的形式就如同人们用分离的 电子管或晶体管搭建复杂电路一样。显然将一个个电子管、晶体管搭建成一个实现某种 功能的电路是比较耗时、费力的,而利用集成芯片( i c i n t e g r a t e d c i r c u i t ) 就能快速搭建出 个功能非常复杂的电路,同时其可靠性也大得多。软件构件在软件生产中的作用就如 同i c 一样【9 1 。 构件技术的基本思想在于:创建和利用可复用的软件构件来解决软件开发的问题。 与面向对象编程语言编制的程序不同,构件技术是一种更高层次的对象技术。它独立于 语言,面向应用程序,只规定构件的外在形式,不关心其内部实现方法【1 0 l 。它既可以用 面向对象的语言实现,也可以用非面向对象的语言实现,只要遵循构件技术的规范,各 个软件开发商就可以用自己的语言去开发实现构件,应用程序开发人员就有可能实现在 计算机硬件领域早已实现的梦想:挑选构件,组装新的软件系统。这样的软件系统不再 是一个固化的软件系统,而是通过构件之间相互提出请求和返回服务结果的协同工作机 制来达到系统的目标,同时由于构件自身的灵活性所带来的由构件构造的整个系统的灵 活性和对外界扰动性的良好适应性。 推动构件发展的最大动力之一是软件复用,构件技术是目前软件发展最快的软件复 用技术。基于构件的软件开发是一种社会化的软件开发方法。它使得软件开发者可将用 不同语言、不同软件开发商开发的构件组装在一起来构造软件。下面介绍目前构件技术 研究的主要问题包括:构件的定义、构件的获取、构件的模型与运行环境以及构件的管 理。 2 1 1 构件的定义 构件( c o m p o n e n t ) 目前还没有一个统一的定义,目前存在的几种定义如下: ( 1 ) n a t o 在其颁布的构件标准中给出的定义为:构件是用于复用的软件实体; 大连理工人学硕士学位论文 ( 2 ) 构件之父c l e m e n t ss z y p e r s k i 指出构件具有以下三个属性:独立可部署的单元, 可作为第三方的组装单元,没有( 外部的) 可见状态; ( 3 ) 卡内基梅隆大学软件工程研究所的b a t c h m a n 等人给出的定义:是可在物理或 逻辑设备上运行的软件实现。构件遵照某种构件模型,可在不修改构件的前提下按照构 件的组装标准,部署到特定的软件构架中: ( 4 ) 计算机百科全书中给出定义为:软件系统中具有相对独立功能、可以明确辨识、 接口由契约指定、和语境有明显依赖关系可独立部署、多由第三方组装的可组装软件实 体: ( 5 ) 杨芙清等给出的定义:构件是指应用系统中可以明确辨识的构成成分。 一般认为,构件是具有一定功能、能够独立工作或同其它构件组合起来协调工作的 程序体,一经产生就与它具体的实现语言无关。因此被认为是一段二迸制代码或数据段。 广义上讲,它不但包括源程序,而且还包括在软件生产过程中各个阶段的成品,如项目 计划、需求定义、分析模型、设计模型、文档、测试案例和数据以及其它对开发活动有 用的信息等。 2 1 2 构件的获取技术 为了实现复用,构件必须具有定的、面向领域的通用性,构件所提供的功能能够 为多个系统所复用。因此构件的抽取、功能的定义将是要解决的第一个问题。软件复用 的研究表明,特定领域的软件复用更容易取得成功,而特定领域的软件构件的获取一般 采用领域工程技术,即进行系统建模和特定领域的软件体系结构设计,对特定领域的软 件在功能上进行划分。另外,由于构件技术是在面向对象技术的基础上发展起来的,加 上面向对象技术自身的抽象、继承、封装性,那么在领域工程的基础上,采用面向对象 的系统分析方法进行构件的抽取就比较合适了。 领域知识的内聚性和稳定性能够为软件复用活动提供足够的可复用资产和潜在的 经济利益,内聚性保证了领域具有足够的共性,而稳定性保证了对获取可复用资产进行 的投资能够获得足够的回报。软件复用的研究和实践表明,特定领域的软件复用活动相 对容易取得成功。 2 1 3 构件模型与运行环境 构件模型是对构件本质特征的抽象描述,分布式对象技术为构件提供了运行、组装 和部署的环境,是构件技术发展的基础。分布式对象技术中的中间件,从本质上是对分 布式应用的抽象,因而抛开了与应用相关的业务逻辑的细节,保留了典型的分布交互模 式的关键特征。经过抽象,将纷繁复杂的分布式系统经过提炼和必要的隔离后,以统一 李新鹏:构件技术研究与在交通领域的应用 的层面形式呈现给应用。应用在中间件提供的环境中可以更好地集中于业务逻辑上,并 以构件化的形式存在,最终自然而然地在异构环境中实现良好的协同工作。 目前在构件模型和分布式对象领域,国内外主要有以下三种影响比较有影响的规 范:o m g 起草与颁布的c o r b a c c m ,微软公司的c o m d c o m ,s u n 公司的 j a v a b e a n s e j b 模型【l ,从广域范围内来说,w e b s e r v i c e 和网格服务也可以看作是构件 的一种形式。 c o r b a ( c o m m o no b j e e tr e q u e s tb r o k e ra r c h i t e c t u r e ) 公共对象管理组织的缩写,是 对象管理组织( o m g o b j e c tm u n a g e m e n tg r o u p ) 开发的一套分布式对象标准,涉及结构、 注册、数据库、出错处理等方面的问题,和对象管理体系结构( o m a o b j e c tm a n a g e m e n t a r c h i t e c t u r e ) 定义的其它对象服务的集合,c o r b a 成为支持分布式系统中对象技术的中 间件设施,c o r b a 对象的请求代理( o r b ) 作为转发消息的中间件,实现了对象间的无 缝集成和互操作。另外,c o r b a 可以作为面向对象的软件构件在运行级上进行组装的 基础,从而实现构件的黑盒复用。c o r b a 的构件模型为c c m ,c c m 企图对企业版的 j a v a _ b e a n s 进行一个雄心勃勃的逻辑扩展,c c m 引入了若干新特征,声称包含所有现在 e j b 的实现。当前有许多符合o r b 的产品,如i n o a 公司的o r b i x ,i n p r i s e 公司的 v i s i b r o k e r 、i b m 公司的c o m p o n e n t b r o k e r 等。 c o m d c o m 是微软公司的一个开发的构件互操作标准,有很强的扩充和扩展能力。 c o m 规范包括c o m 核心、结构化数据存储、统一数据传输、智能命名和系统级的实 现( c o m 库) 。c o m 核心规定了构件对象与客户通过二进制接口标准进行交互的原则, 结构化存储定义了复合文档的存储格式以及创建文档的接口,统一数据传输定义了构件 之间进行数据交换的标准接口,智能命名给予对象一个系统可识别的唯一标识。d c o m 是微软开发的分布式对象组件模型,支持分布式系统中的面向对象的技术,是c o m 在 分布式对象技术方面的自然延续,为分布在网络不同节点的两个c o m 提供了互操作的 基础结构,也为基于构件的软件复用提供了支持【l “,但是c o m d c o m 是指基于 w i n d o w s 平台,不象c o r b a 那样具有平台独立性。 j a v a 是s u n 公司开发的编程语言,近几年随着w e b 的风行全球而发展起来的一种 语言。它是一种纯0 0 ( o b j e c t - o r i e n t e d ) 的语言,它外形象c + + ,核心类似s m a l l t a l k ,j a v a 和w e b 的结合带来了可移动的对象、可执行的内容等关键概念。j a v a 具有体系结构中 立的特性,从而使得j a v a 程序可以不需修改和编译而运行于不同平台。s u n 在企业版j a v a 中加入了的e j b 构件模型和远程方法调用( r m i r e m o t em e t h o di n v o k e ) ,为e j b 的运行 提供了环境。目前有很多大公司的支持,如b e a 的w e b l o g i c ,i b m 的w e b s p h e r e 等【l , 大连理工大学硕士学位论文 j a v a 的这些技术使其成为软件构件技术的良好支持工具,用j a v a 编制的构件具有良好 的平台独立型和互操作性。 2 1 4 构件的管理 随着复用实践的深入,组织内部将会积累大量自主开发的构件、购买的商业 c o t s ( c o m m e r c i a l l y o f f - t h e s h e l f ) 构件和其它组织开发的n d i ( n o n d e v e l o p m e n t a li t e m ) 构件。这些可复用构件构成了庞大的企业资产,实践中构件数量不断增长、构件也随技 术和领域演化而更新,要在众多的构件中爬梳寻找用户所需构件必须借助于自动检索工 具的支持。另一方面,对单个构件的复用可以划分为构件的识别和检索、构件理解和适 应性修改三部分,其复用成本公式为: 复用成本= 检索成本+ 理解成本+ 修改成本 有效的构件检索机制能够大大降低构件检索和理解的成本,而构件库作为分类、管 理和检索构件资产的基础设施就变得十分重要。为实践中的复用项目提供了技术支持。 构件库与构件分类的出现正是要完成这样的功能,合理而有效地使用构件库是软件复用 成功的关键。 构件库是按照一定的语义和组织结构形成的一个构件的集合,是基于构件的软件开 发最重要的共享资源。对于基于构件的开发过程开发人员必须和构件库打交道,因此, 构件库管理工作平台不仅要提供对构件的自动检索,还要提供对构件的查询、浏览、扩 充的功能。构件库作为一个管理用户构件的工具,对于构件库的分类检索、实现过程、 组织和维护方法必须遵循一定的规则。 2 2 基于构件的软件开发方法 2 2 ,1 基于构件软件开发的基本思路 基于构件的软件引导软件开发从应用系统开发转变为应用系统集成。建立一个应用 系统需要重用很多已有的构件模块,这些构件模块可能是在不同的时间、由不同的人员 开发的,并有各种不同的用途。在这种情况下,应用系统的开发过程就变成对构件接口、 构件上下文以及框架环境一致性的逐渐探索过程。例如,在j 2 e e 平台上,用e j b 框架 开发应用系统,主要工作是将应用逻辑,按s e s s i o nb e a n 、e n t i t yb e a n 设计开发,并利 用j t s 事务处理的服务实现应用系统。其主要难点是事务划分、确定构件调用关系、构 件的部署组装与开发环境配置。 2 2 2 基于构件的软件的开发生命周期 构件化软件开发过程也可以分为软件需求分析、软件设计、软件实现( 编程) 与软件 李新鹏:构什技术研究与在交通领域的应用 测试几个阶段,但是每个阶段的工作内容和工作重点与传统开发方法有很大的不同。下 面对这几个开发阶段进行简要介绍: ( 1 ) 需求分析 在系统的需求分析阶段复用软件构件是实现大规模软件复用的关键,它将直接影响 到对构件库中各种构件的复用机会。对分析构件的复用大大增加了对对应的设计件和代 码件复用的可能性,同时又可缩短需求分析所花费的时间,保证系统各部分间的互操作 性。需求分析的任务是,定义出完整的、致的、并且可实现的系统需求。在进行需求 分析时,应首先查询构件库,根据用户需求确定构件库中是否有相似的构架和子系统, 或在该领域中是否有对应的领域分析构件。对构件库中没有的软件部分,要对其进行充 分的分析,找出今后可能复用的部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽蚌埠市怀远县教育局所属事业单位紧缺专业人才引进(校园招聘)15人模拟试卷附答案详解(模拟题)
- 2025内蒙古赤峰市红山区崇文实验学校教师招聘14人模拟试卷完整答案详解
- 2025湖南资兴市面向本市农村订单定向医学生、基层医疗卫生机构本土化专科层次人才培养医学生考核招聘15人考前自测高频考点模拟试题及答案详解(考点梳理)
- 广本安全驾驶课程培训课件
- 协议书协议书5篇
- 广播电视基础知识课件
- 2025年三亚市直属学校赴高校面向2025年应届毕业生招聘81人模拟试卷(含答案详解)
- 小学学生安全培训总结课件
- 小学外出培训安全承诺书课件
- Hydroxylamine-生命科学试剂-MCE
- 2025鄂尔多斯市城市建设投资集团招聘92人考试参考题库及答案解析
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 2025年全国企业员工全面质量管理知识竞赛题库及答案(共132题) - 副本
- GB/T 23904-2009无损检测超声表面波检测方法
- GB/T 18043-2013首饰贵金属含量的测定X射线荧光光谱法
- 海绵城市总结课件
- 农产品增值税进项税额核定扣除办法课件
- 压疮预防及护理操作流程
- 政治学基本原理-精选课件
- 会计学全套课件第一学期公开课一等奖省优质课大赛获奖课件
- 公开课第一课素描基础入门课件
评论
0/150
提交评论