




已阅读5页,还剩64页未读, 继续免费阅读
(计算机应用技术专业论文)基于xml的构件组装描述及其代码生成技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 构件组装技术已经成为软件重用的主流技术。构件组装的目标是 将分布在i n t e r n e t 上的构件,自动或半自动组装成为一个粒度更大的 构件或者一个新的软件,缩短系统的开发周期,降低开发成本,提高 系统的灵活性,可靠性、可扩展性和易维护性。传统的构件组装方法 在组装编译过程中,缺乏有效的构件组装规约描述,并且组装酶自动 化程度不高。本文主要研究构件组装平台中基于艾m l 的构件组装描 述及其代码生成技术,提出一种基于x m l 的构件组装规约描述方案 和组装程序代码自动化生成机制。 首先,介绍了构件组装技术的背景知识、技术特点和发展现状。 然后,给出构件组装平台系统的总体框架和组装编译过程设计。 然后,阐述了基于x m l 的构件组装规约描述方案的设计思想及 组装描述的生成机制。建立构件组装描述的形式化规约和统一描述文 档;通过借鉴结构化编程思想,将构件组装行为分为顺序、分支、循 环三种方式;利用文档对象模型,实现了组装描述文档的转化生成。 通过借鉴软件自动生成技术,设计了组装程序代码自动生成机 制。定义了组装程序模板:系统构架模板、构件节点模板、构件细化 模板,动态编译运行组装程序代码。 为了证明研究结果的可行性,本文在所提出方案的基础上,实现 了构件组装平台组装编译原型工具。最后,对研究工作进行了总结, 并阐述了将来进一步的研究方向。 关键词构件组装,x m l ,规约描述,代码自动生成,组装编译, a b s t r a c t c o m p o n e n ta s s e m b l yt e c h n o l o g yh a sb e e nt h em a i nt e c h n o l o g yo f s o f t w a r e r e u s e c o m p o n e n ta s s e m b l y a i m s a t a u t o m a t i c a l l y o r s e m i a u t o m a t i c a l l ya s s e m b l i n ga c o a r s eg r a i n c o m p o n e n to rs o f t w a r e w i t ht h ec o m p o n e n t so ni n t e r n e t ,t h u st h ed e v e l o p m e n tc y c l eo fs y s t e m s c a nb es h o r t e n e d ,t h ed e v e l o p m e n tc o s t c a nb er e d u c e da n dt h ef l e x i b i l i t y , r e l i a b i l i t y , e x p a n s i b i l i t ya n dm a i n t a i n a b i l i t yo fs y s t e m sc a nb ei m p r o v e d t h et r a d i t i o n a lm e t h o d o fc o m p o n e n ta s s e m b l yi nt h ea s s e m b l yc o m p i l e i si nt h el a c ko fa ne f f e c t i v ep r o t o c o l d e s c r i p t i o na n dt h el e v e lo f a u t o m a t i z a t i o ni ss t i l ll o w t h i st h e s i sm a i n l yr e s e a r c h e so nx m l - b a s e d c o m p o n e n ta s s e m b l yd e s c r i p t i o n - a n d c o d eg e n e r a t i o nt e c h n o l o g yo n t h e p l a t f o r mo fc o m p o n e n ta s s e m b l y , a n dp r o p o s e san e w tp l a no fp r o t o c o r d e s c r i p t i o n f o rx m l b a s e dc o m p o n e n ta s s e m b l ya n dam e c h a n i s mo f a u t o m a t i cc o d e g e n e r a t i o n f i r s t l y t h e t h e s i si n t r o d u c e st h e b a c k g r o u n dk n o w l e d g e ,t h e t e c h n o l o g i cf e a t u r ea n d t h ep r e s e n ts i t u a t i o n ,g i v e st l i et o t a lf r a m eo ft h e c o m p o n e n ta s s e m b l yp l a t f o r ma n dt h ed e s i g no ft h ea s s e m b l yc o m p i l e p r o c e s s t h et h e s i se x p o u n d st h ed e s i g n t h o u g h to ft h ep r o t o c 0 1 d e s c r i p t i o n a n d g e n e r a t i n g m e c h a n i s mo fx m l - b a s e dc o m p o n e n ta s s e m b l ya f o r m a l i z e dp r o t o c o lo fa s s e m b l yd e s c r i p t i o na n dt h ed e s c r i p t i o nf i l e sa l e p r o p o s e d r e f e r e n c i n gf r o mt h et h o u g h to f - s t r u c t u r e dp r o g r a m m i n g ,t h e b e h a v i o ro fc o m p o n e n ta s s e m b l yi sd i v i d e di n t ot h r e ef o r m s :s e q u e n c e , c h o i c ea n dr o l l u s i n gd o c u m e n to b j e c tm o d e l ,t h ei n v e r tg e n e r a t i o no f a s s e m b l yd e s c r i p t i o nf i l ei sa c h i e v e d r e f e r e n c i n gf r o mt e c h n o l o g yo fa u t o m a t i cs o f t w a r eg e n e r a t i o n ,t h e a u t o m a t i cg e n e r a t i o nm e c h a n i s mo fp r o g r a m m i n gc o d ei sd e s i g n e d t h e a s s e m b l yp r o g r a m m i n gt e m p l a t e s a r e d e f i n e d ,i n c l u d i n gs y s t e m a r c h i t e c t u r et e m p l a t e ,c o m p o n e n tn o d et e m p l a t ea n dc o m p o n e n td e t a i l t e m p l a t e t h ec o d ei sd y n a m i c a l l yc o m p i l e da n dp e r f o r m e d i no r d e rt op r o v et h ef e a s i b i l i t yo ft h er e s e a r c hr e s u l t s ,t h i st h e s i s r e a l i z e sa n a s s e m b l yc o m p i l ep r o t o t y p e t o o lo nt h ep l a t f o r mo ft h e i i c o m p o n e n ta s s e m b l yb a s e do nt h es c h e m ap r o p o s e d a tl a s t ,t h et h e s i s m a k e sas u m m a r yo ft h er e s e a r c h ,a n dp r o v i d e sa no u t l o o ko ft h ef u r t h e r r e s e a r c h k e yw o r d s c o m p o n e n ta s s e m b l y , x m l ,p r o t o c o ld e s c r i p t i o n , a u t o m a t i cc o d eg e n e r a t i o n ,a s s e m b l yc o m p i l e 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢的, 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得中南大学或其他单位的学位或证书而使用过的材料。与我共 同工作的同志对本研究所作的贡献均已在论文中作了明确的说明。 作者签名:翌皇日期:丛年上月堡日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校有 权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学位论 文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论文; 学校可根据国家或湖南省有关部门规定送交学位论文。 名:丑聊签咎畸嗍啦月鱼 硕士学位论文第一章绪论 第一章绪论 i n t e r n e t 的迅速发展和基于构件的软件开发方法促进了网络计算及网络化软 件的发展,基于构件的软件开发方法成为软件重用的主流技术1 1 1 。基于构件的软 件开发c b s d ( c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t 的简称) 通过标准化运行 级构件的规约,依靠构件运行平台提供的基础设施,提供了一种自底向上的,使 用标准软件构件组装构造系统的有效途径。本章首先介绍构件组装技术的发展历 史、技术特点、研究现状和构件组装技术中组装编译过程研究存在的问题。最后, 阐述论文的研究内容和主要组织情况。 1 1 榭伴技术发展历史 构件思想源于软件复用的概念。1 9 6 8 - 年在n a t o 软件工程会议上,贝尔实 验室的d o n g m c i l r o y 提出了基于编码重用的软件开发,软件复用思想首次被明确 提出。1 9 8 3 年f r e e m a n 又迸一步拓广了软件复用概念,指出可复用构件不仅可 以是源代码,还可以是模块、设计结构、规格说明和文档等,而且构件不仅可按 组装方式复用,还可按模式复用【2 j 。一般而言,构件复用可分为产品复用和过程 复用两大类p j ,产品和过程都被称为可复用软件构件。 就软件开发而言,复用包括:早期的函数复用、面向对象语言中类复用、以 及互联网时代完整软件体系的构件复用。有效的软件复用可以提高软件开发的效 率和质量。 2 0 世纪6 0 年代末到8 0 年代初,结构化软件开发思想占据主导地位,当时 主要是复用函数( f u n c t i o n ) 和模块( p a c k a g e ) 。函数通过改变参数值来复用,模 块则是通过接口规范说明实现复用。但是,在结构化软件中,函数和模块层面复 用能力有限,导致系统结构混乱、开发效率低。实践结果证明,函数复用和模块 复用没有真正解决软件工程危机。 2 0 世纪8 0 年代起,面向对象的软件开发思想迅速发展起来,通过类封装、 继承,面向对象的软件开发成功地实现了代码级的复用1 4 j 。面向对象方法通过借 鉴人类思维方式,引入了类和封装概念,实现了数据抽象和信息隐蔽,而类之间 的继承,更是大大提高了代码复用性。直到今天,面向对象技术仍然被公认为主 流的软件开发技术。然而,面向对象的复用脱离不了代码级复用本质,由于复用 粒度较低,软件对象的复用潜力远远没有发挥出来。类复用也没有解决软件工程 的危机。 硕士学位论文第一章绪论 构件技术是在面向对象技术基础上发展起来的pj 。在面向对象技术中,虽然 类也可被复用,但对象类复用属于源代码级,受到编程语言的限制,并且由于对 象没有标准对外接口,很难使用组装技术快速生成应用程序。与对象不同,构件 抽象层次更高,独立于语言,面向应用程序,只规定对象外在表现形式,而不关 心其内部实现方法。只要遵循构件技术规范,各个软件开发商就可以用不同的语 言去实现构件。近年来,在面向对象和分布式技术的支持下,构件技术逐渐显示 了强大的生命力和光明的前景,逐渐成为软件复用研究热点之一【2 1 。 1 2 构件技术特点 目前对构件还没有一个公认的、统一的定义。广义上,构件指可以被明确标 识的软件产品,它可以是需求分析、设计、代码、测试用例、文档或软件开发过 程中的其它产品。狭义上,软件构件是指可以复用的、提供明确接口完成特定功 能的程序代码模块,如源代码、二进制代码、可执行文件等等。本文所述的构件 是指通过契约式接口指明对语境的依赖,可以独立部署的软件基本组成单元1 6 1 。 构件技术提供了一种从可复用构件中组装程序的有效方法,近年来,构件技 术在研究领域和商业领域都引起人们的高度重视,在技术上出现了长足进步,也 出现了许多相互竞争的构件标准与产品,如s u n 公司提出的j a v a 构件标准 j a v a b e a n 、e j b ,m i c r o s o f t 提出的c o m 、d c o m 、c o m + ,以及o m g 的c o r b a 3 0 规范中的c c m 等1 7 【8 】1 9 1 i l o l 。同时,i n t e r n e t 的易用性和广泛联通性,使它成 为发布和测试构件的理想场所。目前在i n t e r n e t 上出现了多个专门的构件库,如 c o m p o n e n t s o u r c e 、i b m a l p h a w o r k s 、f l a s h l i n e 等,分别提供j a v a b e a n 、a c f i v e x 等多种构件,有很多w e b 站点也提供指向构件的链接,这样,在i n t e r n e t 上逐渐 形成了一个不断扩展的在线构件库,为基于构件的程序开发提供了坚实的基础 ”“。下图给出了基于构件的软件系统结构图: 图卜1 基于构件的软件系统结构图 面向构件的生产具有以下特点【1 3 】 硕士学位论文 第一章绪论 1 标准化 构件之间的集成是建立在构件的开发都基于一定的标准之上的,共同的生产 标准是构件化生产的一大特点。 2 知识复用 知识通过构件的形式得以储存复用,降低了重复劳动量。 3 分工协同 复杂的软件系统可以通过组合构件的方式实现,提高开发效率。通过社会化 的分工协同,将使软件产业的生产效率得以革命性提升。 4 高效率 标准化、知识复用、分工都带来了软件生产效率的革命性提升。 5 高质量 构件经过反复测试,保证了高的质量,由构件集成的应用系统具有高的质量 和稳定性。 面向构件的软件生产的主要流程分为:系统需求分析、软件结构设计、构件 评估选择、组装结构设计、构件组装编译、软件系统测试和软件系统部署等几个 步骤。面向构件的软件生产流程图如下: 图1 - 2 面向构件的软件生产流程图 复用思想在计算机软件领域得到了最广泛的公认,这一事实揭示了未来应用 软件发展趋势。国际上兴起的可复用软件构件研究高潮,向软件工程研究人 员昭示了软件复用技术的广阔前景。 硕士学位论文 第一章绪论 1 3 构件技术研究现状 基于构件的开发方法是目前软件工程研究领域的前沿课题1 4 6 j 。目前主流的 软件构件技术标准有:微软公司提出的c o m d c o m i l ”、s u n 公司提出的 j a v a b e a n s e j b l l ”、o m g 提出的c o r b a i l 7 1o 它们为应用软件的开发提供了可移 植性、异构性的实现环境和健壮平台。国内外在构件技术方面已经取得一定的研 究成果:北京大学软件工程研究所的青鸟工程”、中科院软件研究所的信息化 基础软件核心平台f 1 9 l 、上海普元的面向构件的互联网应用基础平台( e o s ) 1 2 0 1 、 互联网实验室的面向构件的互联网应用基础平台研究报告1 2 1 l 、r i c h a r dn t a y l o r 等研制开发的用于g u i 软件开发的基于消息总线的c 2 架构风格f 2 2 1 、m a z y s h a w 等开发的利于枚举方式定义构件和连接器类型的u n i c o n 系统【2 3 】、j m a g e e 等研制的用于分布式开发环境的d a r w i n 系统瞄4 1 等等。 1 3 1 构件技术标准 1 c o r b a c o r b a t l 7 1 是o m g 组织在众多开放系统平台厂商提交的分布对象互操作内 容的基础上制定的公共对象请求代理体系规范。 c o b r a 标准分为三个层次:对象请求代理、公共对象服务和公共设施。最 底层对象请求代理o r b 规定了分布对象的定义( 接口) 和语言映射,实现对象 问的通讯和互操作;o r b 之上定义了很多公共服务,可以提供诸如并发、名字、 事务、安全等各种各样的服务;最上层的公共设施则定义了构件框架,提供可直 接为业务对象使用的服务。目前c o r b a 兼容的分布计算产品有b e a m 3 ,m m c o m p o n e n tb r o k e r 等。 c o r b a 得到了绝大多数分布计算平台厂商的支持和遵循,具有模型完整、 独立于系统平台和开发语言、受支持程度高等特点。缺点是体系结构庞大复杂, 并且技术和标准的更新相对较慢。 2 j a v a b e a n s e j b j a v a b e a n s 是j a v a 语言的标准构件模型。b e a n s 是基于j a v a 环境的、可视的、 可操作的、可重用的构件。j a v a b e a n s 构件模型是s u n 制定的关于b e a n 的软件构 件标准,规定设计所有b e a n 所依据的框架。j a v a b e a n s 被编译成可实例化的j a v a 类,在一个可视化开发环境中无须访问构件的源代码,仅通过配罱输出属性值就 能够对构件进行定制和组合,方便地构造一个合适的应用。 e j b l 4 2 i 扩充了j a v a b e a n s 构件模型,是s u n 推出的基于j a v a 的服务器端构件 规范j 2 e e 的一部分,和c o r b a 一样,e j b 提供了分布式环境下对象之间的通 4 硕士学位论文 第一章绪论 讯手段。e j b 是在j a v ab e a n 本地构件基础上发展的面向服务器端分布式应用构 件技术,提供了基于j a v a 的二进制字节代码重用方式。e j b 给出了系统的分布 式构件规范,包括构件、构件容器的接口规范以及构件打包、构件配置等方面的 内容。 e j b 。的优势在于可以充分利用服务器市场主流大型机和u n i x 平台。这意味 着凡是符合f j b 规范的构件,都能够做到”w r i t eo n c e ,i n na n y w h e r e ”,可以部署 到包括w i n d o w s 平台在内的绝大多数服务器端环境中去。 3 c o m 仍c o m c o m d c o m l l 5 是m i c r o s o f t 在推出w i n d o w s 2 0 0 0 系列操作系统平台基础上, 经过扩展分布计算模型,以及改造b a c ko f f i c e 系列服务器端分布计算产品后发 布的新的分布式构件技术标准。 c o m d c o m 构件仍然采用普通的c o m ( c o m p o n e n t o b j e c tm o d e l ) 模型, c o m 最初作为m i c r o s o f t 桌面系统的构件技术,主要为本地的o l e 应用服务, 但是随着m i c r o s o f t 服务器操作系统n t 和d c o m 的发布,c o m 通过底层的远 程支持使得构件技术延伸到了分布式应用领域,c o m d c o m 更将其扩充为面 向服务器端的业务逻辑中间件刚。通过相关服务设施,如负载均衡、内存数据 库、对象池、构件管理与配置等,c o m d c o m 将c o m 、d c o m 、m t s 的功 能有机地统一在一起,形成了一个功能强大的构件应用体系结构。 c o m d c o m 是单一厂家提供的分布对象构件模型,开发者使用同一厂家提 供的系列开发工具,可以得到比较完善的售后服务支持。不足之处在于依赖 m i c r o s o f t 的操作系统平台,因而在其它平台( 如u n i x 、l i n u x ) 上不能发挥作用, 应用范围受到比较大的限制。 1 3 2 构件组装方式 构件组装是在构件之间建立联系,将相对独立的构件集合组织成一个有机的 整体,共同完成用户定制功能的过程。根据组装场景的不同,构件组装方法主要 分为不同的组装层次( 源代码级的组装和运行级的组装) 和不同的组装模式( 静 态组装和动态组装) 。但是,按照构件在组装时需要对构件进行的处理来分类, 更能反映构件的可复用性和可组装性等方面的技术特征。 根据构件组装时需要对构件内部细节了解的程度,可以将构件的组装方法分 为黑盒组装方法、白盒组装方法和灰盒组装方法1 5 2 1 。 黑盒组装方法是理想化的方法。该方法不需要对构件的实现细节有任何了 解,也不需要对其进行配置或修改,使用方便,安全可靠。这显然要求软件体系 结构、构件模型、描述、生产、存储、检索、组装等环节都实现严格的标准化, 硕士学位论文 第一章绪论 而且能够发现不同领域的构件合理粒度等。从目前研究的成果看,黑盒组装方法 实现难度大,离实用较远,但是它是进行构件理论与技术研究的基础性方法。 白盒组装方法要求将构件的所有细节都展现出来,让组装人员理解后再进行 组装,并可以对构件按应用的需求进行适当的修改。从构件复用的角度分析,白 盒组装方法的存在只能是局部的和暂时的。一个可以随意修改的软件构件并不是 真正意义上的可复用产品,因为弄清一个构件并对其进行合适的修改的代价会很 高,其安全性、可靠性均得不到保证。 灰盒组装方法介于“黑盒”与“白盒”之间,是当前技术发展的合适选择。 灰盒组装方法通过调整构件的组装机制而不是通过修改构件来满足应用系统组 装的要求,既实现了构件组装的灵活性,又不至于使构件组装过程过于复杂。因 此近年来对构件组装技术的研究主要集中在灰盒组装方法方面。 1 3 3 构件组装支撑平台 1 通用组装工具 通用软件开发平台一般都配备了构件组装工具,并为用户提供了一些通用构 件。以j b u i l d e r 为例,j b u i l d e r 不仅为程序员提供了大量的标准构件,而且为程 序员提供了一个使用方便的构件开发集成环境( i d e ) ,使用户能够轻松地开发 构件。j b u i l d e r 的构件库相当庞大,各种构件应有尽有,使用它开发软件比同类 软件开发周期短,产品运行稳定,并且构件使用方式非常灵活。它的不足之处是, 构件组装过程完全依赖于手工生成粘合代码,工作效率不高,自动化程度低。 2 a b c t o o l s 基于软件体系结构的构件组装方法a b c l 6 l ( a r c h i t e c t u r e b a s e dc o m p o n e n t c o m p o s i t i o n ) 基本思想是在构件组装基础上,使用软件体系结构理论与概念指 导软件开发,提高系统生成的效率和可靠性。a b c 方法是以软件体系结构为指 导,面向构件组装的软件开发方法,为基于构件的软件复用提供了一种有效的解 决方案。在a b c 开发方法的指导下,a b c t o o l 以a b c a d l 为基础,结合当前 主流的o o 技术,以中问件作为运行支撑平台,支持把e j b 构件组装部署到符 合j 2 e e t l 6 ) 规范和c o r b a 规范的底层运行平台上,从而实现从s a 模型到可运 行系统的映射。a b ct o o l s 功能比较完善,具有自带的j 2 e e 运行平台,是s a 从实验室走向实用的一个比较成功的范例,但构件来源比较单一,实用性还需进 一步提高,而且需要手工部分代码,自动化程度仍不高。 3 青鸟i 型 青鸟型系统 2 1 是支持基于构件一构架复用的软件工业化生产技术,包括: 青鸟构件模型和构件描述语言;专业化的构件生产和构架开发;构件库、构架库 6 硕士学位论文 第一章绪论 管理;软件过程设计和控制;构件、构架的系统集成( 组装) 等。青鸟构件组装 工具支持用户以图形方式描述构件及其连接关系,然后将图形表示转化为青乌构 件描述语言,实现构件组装。组装工具的主要功能包括:编辑构件的c d l 描述; 根据构件的c d l 描述来生成c + + 代码骨架:构件组装:利用分布式对象技术实 现构件在网络上的分布等。青鸟构件组装工具描述面向对象的构件组装,提供了 一整套集成开发编译工具,组装方式非常灵活。但它的组装层次比较低,构件复 用效率不高,这一点在新的构件技术标准和运行环境出现的今天,已经成为一个 不可忽视的问题。 4 上海普元( e o s ) 上海普元( e o s ) 集成开发环境( e o ss t u d i o ) 1 2 0 1 , 是可视化的构件开发组 装工具。通过规划好数据模型,拟定出w e b 表现形式,用户可以利用e o s 内置 的各类基础构件,采用拖拽画图的方式,快速定义展现逻辑和业务逻辑,e o s 还支持断点调试和分布式部署。e o s 应用运行环境( e o ss e r v e r ) ,负责自动解 释执行e o ss t u d i o 环境中生产出的图形化“源程序”,提供各层次业务过程在 w e b 服务器、j 2 e e 服务器、数据库服务器上的运行。e o s 应用管理工具,包括 e o sd e p l o y 、e o sm o n i t o r 、e o sm a n a g e r 等工具,提供应用软件( 基于构件开 发模式) 动态发布、运行监控、升级等功能;e o sd d t o o l 则提供了数据字典管 理,基本业务属性变化可以通过参数配置来完成,使得应用层业务配置具有强大 的灵活性;e o sr o l em a n a g e r 提供灵活的基于系统角色的用户菜单与功能设定等 功能。e o s 内置的构件库,是支撑快速开发、部署应用系统,具有高度复用能 力的一组预制构件的集合。e o s 的优点在于构件组装层次高,充分利用了构件 技术的新成果。但是,它对特定领域构件库依赖性较强,虽然组装效率高,但应 用范围受到限制,普及程度不高。 5 c 2 架构风格 c 2 模型【2 2 】是一种层次的、基于消息的软件体系结构模式。它源于解决g u i 软件开发中软件构件问题,并被扩充用于其它的应用领域。在c 2 模型中,构件 之问通过发送消息进行通讯,消息包括自上而下的通知消息和自下而上的请求消 息,消息的传递由连接构件负责。c 2 模型在消息总线基础上较易实现系统组装, 但固定的体系结构风格使其不适应软件风格多样化的需求,仍不能对组装过程提 供很好的支持。 6 u n i c o n 系统 u n i c o n 模型【2 3 l 是卡内基梅隆大学( c m u ) 的s h o w 等人提出的。在u n i c o n 构件模型中,“构件”和“连接子”是其主要的构成成分。构件表达了系统中一 组计算和状态的抽象,连接子则定义了构件之间的交互种类,通常用作构件交互 硕士学位论文第一章绪论 的媒介。构件和连接子均有规约部分和实现部分。u n i c o n 模型还涉及了构件在 源代码级的组装技术。u n i c o n 提供了u n i x 环境下基于体系结构的组装,但扩 展u n i c o n ,特别是扩展组装工具很困难。 7 d a r w i n 系统 d a r w i n 模型【2 4 】中构件包括接口、绑定和配置等描述成分。d a r w i n 模型通过 两种构造( 惰性初始化和显式的动态构造) 支持动态的重新配置,配置的申明实 际上变成了在运行时执行的一个程序。d a r w i n 模型的组装描述能力仍然不足, 而且组装系统的灵活性差。 1 4 构件组装技术及组装编译研究存在的问题 基于构件的开发方法( c o m p o n e n tb a s e d s o f t w a r ed e v e l o p m e n t ) 的目标是将 分布在i n t e m e t 上的构件,自动或半自动组装成为一个粒度更大的构件或者一个 新的软件,缩短系统的开发周期,降低开发成本,提高系统的灵活性、可靠性、 可扩展性和易维护性。 目前,构件组装技术及组装编译过程中存在以下问题: 1 组装描述能力不足 已有的构件组装描述,从模块互联语言( m i l ) 到构件描述语言( c d l ) 再 到构架描述语言( a d l ) ,均只能描述构件和连接子及其接口的语法语义、组装结 构中系统的整体架构等等;不能直接与具体实现相关,仍需要使用适当的转换技 术,存在一定的局限性,不能对组装编译过程提供很好的支持。 2 构件组装编译的自动化程度低 目前的组装编译过程,缺乏对构件组装行为的研究,一般通过图形和文本两 种方式来编辑构件描述语言,并根据构件描述语言生成构件骨架,而具体的构件 组装机制需手工填写代码维护。因此,在组装编译过程,过多地依赖于人机交互, 组装编译的自动化程度不高。 3 组装系统灵活性差 当前的构件组装技术以及组装工具,往往在组装过程中过早确定了组装结 构。随着软件系统的演化,可能会出现功能更强的构件,软件需求也常常发生变 化,这就需要调整组装结构。而过早确定的组装结构导致系统灵活性较差,很小 的调整都需要改写大量源码,并且改动涉及面较广,以致于工作量大,而且程序 质量得不到保证。 4 构件复用程度低 构件实体与构件之间的组装机制没有有效的分开,构件组装机制可重用性 硕士学位论文 第一章绪论 差。一般来说,构件组装的基本思想是通过“粘合代码”或“连接件”将已有的 构件组合在一起,以提供粒度更大以及功能更齐全的功能构件,并能有效的支持 软件复用。但在这种情况下,构件之间的组装机制与构件功能代码编译在一起, 当加入新的连接信息时,需要改写源码、重新编译,构件组装机制不灵活。 1 5 :论文的研尧目标和内容 针对现有构件组装技术及组装编译过程中存在的问题,本文结合课题研究背 景,参考国内外研究现状,对构件组装的组装编译过程进行深入研究。通过采甩 可扩展标记语言x i k 4 l ,提出构件组装描述语言规范,改进构件组装描述的能力, 将组装机制和构件实体有效分开,提高构件组装机制的重用性和灵活性。借鉴软 件自动化技术中的程序变换方法,定义组装程序代码模板,实现组装程序的变换 生成,以此提高组装编译过程的自动化程度和组装系统的灵活性; 论文主要研究内容包括: 1 利用x m l 技术制定构件组装形式化描述规范,定义构件组装x 船l 描述 模板文档。 2 解析构件组装x m l 描述模板文档,根据构件组装结构相关信息,替换 x m l 描述模板文档中的元素,生成统一的构件组装x m l 描述文档。实现组装 结构与软件结构的独立,隐蔽构件实现细节。 3 定义程序代码模板,根据构件组装x m l 描述文档的内容,变换生成构 件组装程序源代码;利用标准代码编译器进行编译形成应用软件的实体并进行测 试。提高构件组装的自动化程度。 4 实现构件组装平台的组装编译原型工具,证明研究结果的可行性。 1 6 论文的组织结构 论文共分为五章。第一章是论文的绪论部分;第二章到第四章是论文的主体 部分;第五章是论文的结束语部分。 第一章绪论。本章主要介绍构件组装技术的课题研究背景、研究现状,把 目前产业界在构件组装技术研究应用的几种典型方案进行分析比较。阐述构件组 装技术中组装编译研究与实现的必要性及其重要意义。 第二章构件组装平台系统框架。本章首先阐述构件组装平台的工作流程和 系统结构,其次介绍构件组装平台的功能结构,最后介绍构件装平台中组装编译 流程和工具的设计。 9 硕士学位论文第一章绪论 第三章基于x m l 的构件组装规约描述及描述生成机制。本章首先提出基 于x m l 的构件组装形式化描述规范,其次介绍应用描述规范的构件组装描述文 档,最后重点阐述构件组装平台中构件组装规约描述文档的转化生成。 第四章组装程序代码生成机制、测试工具及原型系统实现。本章首先重点 阐述构件组装程序代码变换生成实现机制,其次介绍构件组装生成程序的测试, 最后介绍构件组装平台中组装编译原型工具的设计与实现,说明该组装编译解决 方案的有效性。 第五章结束语。对本文进行总结,并提出进一步的研究工作。 硕士学位论文第二章构件组装平台系统框架 第二章构件组装平台系统框架 构件组装平台利用构件组装技术、结合传统产业思想提出的实现构件组装的 支撑环境,根据需求分析和业务流程将构件组装成为一个应用系统。主要完成软 件系统的需求分析、软件结构的描述、组装结构的描述、组装编译的实现和软件 系统运行测试的实现功能。构件组装规约描述方法和构件自动化组装【5 3 l 编译技 术是构件组装技术领域的研究热点,是本文的研究重点。本章阐述构件组装平台 的工作流程、系统结构、功能结构和构件组装编译过程。 2 1 构件组装平台工作流程 构件组装平台系统框架如图2 - 1 所示: 砑丽 组装程序 有错误 程序运行校验 篱粼爹竺i 痞卜结构描述陟组誊爹竺多叵 程序校验l 上编译 组装编译工具亡二二:= j构件库 组装程序正确新构件入库 图2 - i 构件组装平台系统框架示意图 1 用户按照构件组装平台的输入格式要求,根据需求的描述【l 射,利用需求 分析工具,在系统提供的输入规则引导下,逐步输入需求,形成系统软件结构描 述。业务建模人员在用户的参与下,根据输入的需求内容,建立业务逻辑流程模 型。如果业务需求不明确,则在用户的参与下重新进行需求分析。需求分析的主 要工作是:确定业务流程节点功能,节点之间的逻辑关系( 逻辑关系的种类由组 装机制来定义) ;按照功能的内聚性,将系统划分为若干个子系统和模块,形成 系统软件结构描述。用户在进行需求分析的同时,根据软件系统应用的领域来了 解构件目录库【4 8 】中相关领域构件的基本信息,逐步对软件系统的结构模块化, 层层分解、逐步求精,降低系统的复杂度,形成完整的系统软件结构,为构件的 评估和选择奠定良好的基础。 签厮 鞴 硕士学位论文 第二章构件组装平台系统框架 2 根据软件结构描述,在构件组装工具的帮助下,从构件目录库中搜索出 与模块功能最匹配的构件1 5 “,并在构件之间添加连接子,形成完整的组装结构 】。首先,根据软件结构描述,按照业务流程对模块功能的描述,从构件库【5 4 l 中评估选择出最合适的构件,若不能选择出合适的构件则指导用户按照构件模板 向构件库中添加满足模块功能需求的构件,并选择使用:然后,当所有功能模块 对应的构件选择完毕后,在相继的两个构件之间添加连接子,并根据构件的各项 基本信息指导用户完成构件问连接子的设计( 包括输入输出参数的传递,参数类 型的转换等等) ,设计完成后编译连接子;最后,所有构件和连接子选择设计完 成后,形成完整的构件组装结构,作为生成构件组装描述的依据。 3 根据构件组装结构,在组装编译工具的帮助下,生成构件组装描述,再 变换生成构件组装程序代码并编译运行测试,交付用户使用。首先,根据构件组 装结构,使用组装编译工具生成构件组装描述,实现构件实体与构件之间的组装 机制有效分离,增强组装机制的可重用性;然后,根据构件组装描述,变换生成 软件系统程序代码,按照组装机制控制各个构件执行顺序和参数传递;最后,利 用标准代码编译器对程序代码编译,运行整个软件系统并根据校验规则对系统进 行测试,满足用户的需求则交付用户使用,若不能满足用户的需求,则返回软件 系统的软件结构和组装结构,进行修改,并重复上述过程,直至满足用户的需求。 2 2 构件组装平台系统结构 构件组装平台系统由构件库蟑5 1 、构件目录库和构件组装支撑平台组成。其 中构件库和构件目录库是关系数据库,用户通过构件组装支撑平台来操作需求分 析工具、构件组装工具、组装编译工具,并对系统的软件结构、组装结构、组装 描述和程序代码进行操作,同时对组装后的系统提供支撑运行环境。构件组装平 台系统结构图如图2 2 所示: 构件组装支撑平台 l 图2 - 2 构件组装平台系统结构图 1 2 硕士学位论文 第二章构件组装平台系统框架 本文主要研究j a v a b e a n s 构件的自动化组装,构件组装平台采用j a v a 语言进 行开发,具有j a v a 语言内在的与平台无关的特点,可以运行在几乎当前所有流 行的处理机和操作系统上。计算机需要安装由s u n 公司提供的j a v a 运行环境。 系统的网络图如图2 3 所示: 构件组装支撑平台构件搜索服务器 图2 3 系统网络图 2 3 构件组装平台功能结构 构件组装平台系统提供一套工具,支持用户从软件系统的需求分析开始,逐 步形成软件系统的软件结构、组装结构、组装描述和程序代码,并为组装后的应 用软件系统提供运行环境。构件组装平台的功能结构如图2 - 4 所示: 图2 - 4 构件组装平台功能结构图 硕士学位论文 第二章构件组装平台系统框架 1 构件组装平台 ( 1 ) 需求分析工具 需求分析工具的主要任务是确保需求分析和系统设计之间的可追踪性和一 致性。工具以图形界面的形式提供给用户,通过格式化的输入方法,界定问题域 边界,从用户角度分析系统内部行为,制作面向软件结构的高层需求说明。高层 需求说明从整体上描述系统各部分之间的功能需求和行为关系,初步勾勒组装后 系统框架结构,是下一步进行构件装配的重要依据。 ( 2 ) 构件组装工具 构件组装工具以图形化界面的形式提供给用户,主要任务是在用户需求细化 后,将其映射到构件组装结构上去。组装者通过参考系统需求说明,制定相应的 全局设计决策,进一步细化问题域空间中的构件性质,将软件结构映射到组装结 构,建立组装结构图。根据组装结构的要求,从构件库中检索出合适的构件,替 换功能模块。如果构件库中没有对应的构件,则有两种处理方法:可以通知开发 人员,按照模块功能描述中的内容,生成所需构件,然后存入构件库中备选:或 者是利用系统提供的简易编辑工具,由组装人员直接创建新构件。在相继的两个 构件之间,按照连接子的模板编辑添加连接子,最终形成完整的组装结构,组装 结构是形成构件组装描述蓝图。 ( 3 ) 组装编译工具 组装编译工具的任务是根据构件组装结构生成构件组装描述和变换生成程 序代码并编译运行测试。形成定义良好的构件组装描述是实现构件实体与构件组 装机制有效分离和增强组装机制可重用性的重要手段。程序代码则控制整个软件 系统中构件的运行顺序和构件之间的参数传递。软件系统组装完成后,将软件系 统编译部署到运行环境中去,运行整个软件系统,经过用户测试,交付用户使用。 2 支撑运行平台 ( 1 ) 支撑运行环境 支撑运行环境的功能是负责构件组装平台与构件库和构件目录库之间的通 信,并且为生成的软件系统的部署运行提供环境支持。 ( 2 ) 系统维护工具 系统交付用户后,用户通过系统维护工具对系统设置进行修改,并监控系统 运行情况。系统维护工具对配置参数调整的依据是系统日志,日志记录系统运行 情况。一方面可以通过日志找出异常发生前后的状况,以便迅速判明障碍;另 方面,通过对日志的统计分析,维护人员也可以挖掘出系统的最优配置。支撑运 行环境还需要监控系统的运行状态,并将异常现象记录到系统日志中去。监控工 具方便用户全面掌握系统实对运行情况,当异常情况出现时,可以自动报警。 1 4 硕士学位论文 第二章构件组装平台系统框架 2 4 构件组装编译过程 构件组装编译过程是实现构件组装的重要步骤,是本文的研究重点。构件组 装编译过程主要包括对构件组装描述语言、构件动态组装和组装程序代码编译运 行测试的操作。构件组装编译过程主要完成三个功能:( 1 ) 定义构件组装x m l 描述规范,解析构件组装x m l 描述模板文档,结合构件组装结构转化生成组装 x m l 描述文档:( 2 ) 定义程序代码模板,解析组装x m l 描述文档,变换生成 组装程序代码,把组装结构中各个构件和连接子进行动态组装;( 3 ) 定位构件组 装结构中各个构件和连接子的位置,载入各个构件和连接子程序包和其他支撑程 序包,由程序代码控制各个构件和连接子的执行顺序和参数传递,调用j d k 标 准代码编译器进行j a v a 程序代码编译、运行,测试整个软件系统。具体的构件 组装编译过程如图2 5 所示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新解读《CB-T 3862-1999船用机械术语 轴系及传动装置》新解读
- Brand KPIs for health insurance:SBK in Germany-英文培训课件2025.4
- 商贸公司消防管理制度
- 协会业务培训管理制度
- 初中英语七年级下册统编教案 第七单元
- 物理中考二轮复习教案 2图像专题
- 仓储管理提升年活动方案
- 仙桃加油活动方案
- 安徽省合肥市庐阳区2023-2024学年四年级下学期数学期末试卷(含答案)
- 以学定教教研活动方案
- 2024年嘉定区外冈镇招聘工作人员真题
- 贵州国企招聘2025贵州省粮食储备集团有限公司招聘76人笔试参考题库附带答案详解析集合
- 2025年建筑工程土石方回填分包协议范本
- 学生集中配餐管理制度
- 体育导论(大学体育1)(山东联盟)智慧树知到期末考试答案章节答案2024年青岛科技大学
- MOOC 计量经济学基础与EViews软件操作-江西财经大学 中国大学慕课答案
- 示范文本-《电池消费税纳税申报表》
- 项目施工条件分析
- 2022秋期版2208国开电大专科《政治学原理》网上形考(任务1至4)试题及答案
- 初中英语一词多义重点词汇汇总大全
- 运营管理案例分析-巴里勒
评论
0/150
提交评论