(计算机软件与理论专业论文)基于andromda的应用系统开发方法研究.pdf_第1页
(计算机软件与理论专业论文)基于andromda的应用系统开发方法研究.pdf_第2页
(计算机软件与理论专业论文)基于andromda的应用系统开发方法研究.pdf_第3页
(计算机软件与理论专业论文)基于andromda的应用系统开发方法研究.pdf_第4页
(计算机软件与理论专业论文)基于andromda的应用系统开发方法研究.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机软件与理论专业论文)基于andromda的应用系统开发方法研究.pdf.pdf 免费下载

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

文档简介

基于a n d r o m d a 的应用系统开发方法研究 摘要 模型驱动架构m d a ( m o d e ld r i v e na r c h i t e c t u r e ) 是对象管理组织提 出的一种新的软件开发架构。相对于传统的开发方式,在m d a 中,开发 者的关注点从代码转移到了模型,把应用系统的模型和实现代码紧密联系 起来,提高了系统开发的抽象层次。这种以模型为中心的开发思想为解决 当前软件开发中的一些问题( 例如需求变更、文档维护、系统集成等) 提 供了新的思路。 本文介绍了模型驱动架构的基本概念和实现该架构的核心规范,并分 析了m d a 中模型转换的实现技术。 阐述了支持m d a 的开源工具a n d r o m d a 的实现原理,介绍了适用于 a n d r o m d a 的三个模型转换组件h i b e r n a t ec a r t r i d g e 、s p r i n gc a r t r i d g e 和 b p m 4 s t r u t sc a r t r i d g e 的建模方法。 比较全面地论述了一种基于a n d r o m d a 进行应用系统开发的方法。该 方法遵循m d a 的开发思想,解决了传统软件开发中的一些不足,给出了 一个该开发方法的流程。鉴于模型转换组件的开发在此方法中的重要性, 提出了一种扩展a n d r o m d a 的模型转换组件的方法,并使用此方法对 a n d r o m d a 的模型转换组件b p m 4 s t r u t sc a r t r i d g e 进行了扩展。扩展后的 b p m 4 s t r u t sc a r t r i d g e 可以将应用系统的表示层模型转换成基于s t r u t s 框架 和d w r 框架的代码。 按照本文提出的方法,完成了煤矿环境监测与管理信息系统的开发。 创建了煤矿环境监测与管理信息系统的计算无关模型,建立了该系统的平 台无关模型。使用a n d r o m d a 及其h i b e r n a t ec a r t r i d g e 、s p r i n gc a r t r i d g e 和扩展后的b p m 4 s t r u t sc a r t r i d g e 三个模型转换组件将模型转换为代码,并 对转换得到的代码进行了手工完善,使其成为可以实际使用的系统。 关键词:m d a ,软件开发,a n d r o m d a ,模型转换组件,统一过程 r e s e a r c ho nd e v e l o p m e n tm e t h o do f a p p l i c a t i o n s y s t e mb a s e d o na n d r o m d a a b s t r a c t m o d e ld r i v e na r c h i t e c t u r ei san e ws o f t w a r ed e v e l o p m e n tp a r a d i g mr e l e a s e db y o b j e c tm a n a g e m e n tg r o u p c o m p a r i n gw i t ht r a n d i t i o n a ld e v e l o p m e n tm e t h o d ,m d a m a k e st h ed e v e l o p e r sf o c u ss h i f tf r o mc o d et om o d e la n dm a k e ss y s t e m sm o d e l a s s o c i a t et i g h t l yw i t hi t sr e a l i z a t i o n ,s oi th e i g h t e n st h ea b s t r a c tt i e ro fs y s t e m d e v e l o p m e n t t h i sm o d e l - c e n t f i cd e v e l o p m e n tp a r a d i g mp r o v i d e san e wm e t h o df o r s o l v i n gs o m ep r o b l e m s i nc u r r e n ts o f t w a r ed e v e l o p m e n t e g d e m a n da l t e r a t i o n , d o c u m e n tm a i n t e n a n c e ,s y s t e mi n t e g r a t i o n ) t h i sd i s s e r t a t i o ni n t r o d u c e st h eb a s i cc o n c e p t sa n dc o r es p e c i f i c a t i o n si nm o d e l d r i v e na r c h i t e c t u r ea n da n l y s e sr e a l i z a t i o nt e c h n o l o g i e so fm o d e lt r a n s i t i o n t h ep r i n c i p l eo fa n d r o m d 允a no p e ns o u r c et o o lw h i c hs u p p o r t sm d a , i s d i s s e r t a t e d ,a n dt h em o d e l i n gm e t h o d sw h i c ha r es e p a r a t e l ys u i t a b l ef o rh i b e r n a t e c a r t r i d g e ,s p r i n gc a r t r i d g e a n d b p m 4 s t r u t sc a r t r i d g e ,t h r e e m o d e lt r a n s i t i o n c o m p o n e n t so f a n d r o m d a , a r ee x p o u n d e d a d e v e l o p m e n tm e t h o do fa p p l i c a t i o ns y s t e mb a s e do n a n d r o m d ai sd i s s e r t a t e d c o m p l e t e l y t h i sm e t h o df o l l o w st h et h o u g h to fm d a , s o l v e ss o m ed e f i c i e n c i e s o f t r a n d i t i o n a ld e v e l o p m e n t ,a n dp r e s e n t saf l o wo fu s i n gt h i sm e t h o d b e c a u s et h e d e v e l o p m e n to fm o d e lt r a n s i t i o nc o m p o n e n ti sv e r yi m p o r t a n ti n t h i sd e v e l o p m e n t p r o c e s s ,am e t h o do fe x t e n d i n gt h em o d e lt r a n s i t i o nc o m p o n e n to fa n d r o m d ai s b r o u 【g h tf o r w a r da n dt h eb p m 4 s t r u t sc a r t r i d g ei se x t e n d e du s i n gt h i sm e t h o d t h e e x t e n d e db p m 4 s t m t sc a r t d d g ec a ng e n e r a t ea p p l i c a t i o ns y s t e m sc o d ew h i c hb a s e d o ns t r u t sf r a m e w o r ka n dd w rf r a m e w o r kf r o mi t sm o d e lo fp r e s e n t a t i o nl a y e r a na p p l i c a t i o ns y s t e mn a m e dh b e m i si sd e v e l o p e du s i n gt h em e t h o dp r e s e n t e d a b o v e f i r s t l yw ec o n s t r u c tt h ec i mo f t h es y s t e m t h e nw ec o n s t r u c tt h ep i m a tl a s t w eg e n e r a t et h ec o d ef o rp i mu s i n ga n d r o m d aa n di t sm o d e lt r a n s i t i o nc o m p o n e n t s , w h i c ha r eh i b e r n a t ec a r t r i d g e ,s p r i n gc a r t r i d g ea n dt h ee x t e n d e d b p m 4 s t r u t s c a r t r i d g e t om a k et h eg e n e r a t e dc o d eb e c o m eas y s t e mw h i c hc a nb ed e l i v e r e dt o o u rc l i e n tw ec o m p l e m e n ti tb yh a n d k e y w o r d s :m o d e ld r i v e na r c h i t e c t u r e ,s o f t w a r ed e v e l o p m e n t ,a n d r o m d a , m o d e lt r a n s i t i o nc o m p o n e n t ,u n i f i e dp r o c e s s 图表目录 图3 1a n d r o m d a 原理图1 1 图3 2 a n d r o m d a 中的模型访问1 2 图3 3t e m p l a t e 与m e t a f a c a d e s 的关系图1 3 图3 4 类的表示1 7 图3 5v a l u eo b j e c t 模式1 8 图3 6a n d r o m d a 中值对象建模1 9 图4 1 基于a n d r o m d a 进行应用开发的流程2 2 图4 2 系统建模流程2 2 图4 3 确定a n d r o m d a 模型转换组件的流程2 5 图4 4 生成代码的流程2 6 图4 5 方法中主要活动在u p 中的分配2 7 图4 6a n d r o m d a 模型转换组件的扩展机制。3 0 图4 7d w r 的元模型3 4 图4 8b p m 4 s t r u t s 的e m o d e l t r a n 的类图一3 7 图5 1 领域模型( 1 ) 4 5 图5 2 领域模型( 2 ) 4 5 图5 3 领域模型( 3 ) 4 6 图5 4 系统的模块划分4 6 图5 5 保证金管理的类图( 1 ) 4 8 图5 6 保证金管理类图( 2 ) 4 9 图5 7 保证金管理类图( 3 ) 4 9 图5 8 保证金管理用例图5 0 图5 9 保证金信息浏览用例的活动图5 i 图5 1 0 保证金管理模块页面控制器5 1 图5 1 l 保证金补交活动图5 2 表2 1m d a 元层冽2 1 6 表3 1c a r t r i d g e 描述文件中 元素的主要属性的含义1 5 表4 1d w r 的映射规则3 5 表4 2d w r 的标记3 6 i l l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得金蟹王些太堂 或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签字:i 匕抽签字目期:纠7 年,月j 日 学位论文版权使用授权书 学位论文者躲禾患旭新躲老刊易 签字日期:枷口7 年月膨日签享日期:乃口 年多剧g 日 7 学位论文作者毕业后去向 工作单位: 通讯地址: 电话: 邮编: 致谢 首先在此特别感谢我的导师袁兆山教授,本论文从选题、研究到写作的整个过 程中都是在袁老师的悉心指导和帮助才得以圆满完成。袁老师在软件工程领域深厚 的理论基础和对研究方向良好的把握,给我以深刻的指引。袁老师渊博的知识、严 谨并注重实际的治学态度和工作作风,给我以深刻的启迪教育,使我在理论和实践 两方面都得到了锻炼,受益匪浅。研究生三年的学习生涯和导师对我的关怀让我永 生难忘。 感谢合肥工业大学研究生院和计算机与信息学院里的各位领导和老师,谢谢你 们在这三年中对我的关心和教导。 同时,也非常感谢各位同学对我的支持、关心和帮助。 最后,感谢我的家人在这三年里对我的鼓励、支持和关爱。 朱忠旭 2 0 0 7 年5 月 合肥工业大学硕士学位论文 第一章绪论 i i 研究背景 对象管理组织( o b j e c tm a n a g e m e n tg r o u p ,o m g ) 成立于1 9 8 9 年,最 初有3 c o r n 、a m e r i c a n a i r l i n e s 、c a n n o ni n c 、d a t a g e n e r a l 、h p 、p h i l i p s t e l e c o m m u n i c a t i o nn m 、s u n 、u n i s y s k 个成员。目前已超过7 0 0 个成员, 其目标是开发一种技术上先进和商业上可用,独立于厂商的软件工业规 范。公共对象请求代理体系结构( c o m m o n0 b j e c tr e q u e s tb r o k e r a r c h i t e c t u r e ,c o r b a ) 是o m g 在中间件层次上一个显著的工作成果,然 而,这个技术上成功的作品在商业应用上却并不十分成功,数年之间,j 2 e e 和n e t 相继在中间件的层面上异军突起。o m g 的工程师们希望在更高的 层面上提供一个统一的标准,他们在其另外一个成功的规范u m l 的基础上 提出了m d a 的概念。 m d a 分离出两个抽象级别的模型:平台无关模型( p l a t f o r m i n d e p e n d e n tm o d e l ,p i m ) 和平台相关模型( p l a t f o r ms p e c i a l i z em o d e , p s m ) 。p i m 是一个纯粹的不考虑实现技术的模型,而p s m 可以视为一个基 于特定实现技术( 比如j 2 e e ) 的设计模型。开发人员只需要建立表达业务逻 辑的p i m ,剩下的工作可由m d a 引擎( 工具开发商的工作) 完成。p i m 将具 有长久的价值,p s m 则可能会随着平台技术的进步而快速地迁移。在m d a 中,系统开发被提升到一个新的抽象层级一一分析模型级,针对特定计算 平台的编码工作交由计算机自动完成,业务逻辑与实现技术成功分离,二 者相对独立。m d a 模型的价值在包容已有技术的条件下被最大化,解决了 当今软件开发面临的一些问题i 。 1 2 模型驱动软件开发的优势 相对于传统的以代码为中心的软件开发,模型驱动的软件开发方法以 p i m 为中心,使开发人员不需要设计平台相关的细节,减少了开发人员的 工作量。从模型生成大部分的实现代码,使开发人员可将更多的时间用于 设计系统的业务逻辑,完成更多的功能性需求的分析和设计,从而缩短系 统的开发时间,提高开发效率。 这种以模型为中心的开发,虽然有时要做很多工作定义额外信息来指 导模型的转换,但这种工作只需要做一次,且仅由高水平的软件架构师来 完成。一旦创建完成,可以分发给项目成员使用。 在开发过程中,如果发现了错误,修补它的花费越多,交付日期就越 推后。p i m 可减少系统复杂性,提高系统质量。模型帮助设计者在团队成 员之l 旬提高沟通效率,减少错误。m d a 应用开发,由模型自动化生成代码, 合肥工业大学硕士学位论文 可以降低低端的代码编写工作量,减少手写代码带来的缺陷,使预算可控。 由于模型和模式框定了应用程序框架和实现,可以确保系统的各个模块都 是同等质量的代码,开发人员水平参差不齐的问题也在一定程度上避免 了。 m d a 模型是对代码的最佳诠释,p i m 完全可以当做设计文档来对待。 与传统的文档相比,当完成p i m 的创建后,p i m 不会象传统的文档那样被 抛弃。对系统的改变首先是更改p i m ,再从p i m 重新生成p s m 和代码。根 据代码更新设计文档的工作是单调乏味和耗时的。然而,使用m d a 模型, 代码和文档总是保持同步。 由于代码由模型生成,模型和代码总是保持同步状态,使新开发者可 以迅速接手。这些特性使基于m d a 开发的应用系统更易于维护,可以显著 地降低维护成本。 1 3 国内外研究状况 自从2 0 0 1 年o m g 提出m d a 后,国外有许多公司和研究机构在研究 m d a 方法,其中o m g 、m i c r o s o f t 、c o m p u w a r e 、i b m 等都在m d a 的研究 上取得了进展,并开发了多种支持m d a 的开发工具。i b mr a t i o n a l ,x d e 、 r o s e 等开发工具中增加了部分m d a 功能,在e c l i p s e 中提出了e m f m d a 代 码生成系统项目。b o r l a n d 公司在t o g e t h e r 和e c o 等工具中了加入了m d a 的 模型自动生成功能。 一些中小厂商也推出了比较优秀的m d a _ - - e 具。比较著名的有: c o m p u w a r e 公司的o p t i m a l j ,i n t e r a c t i v eo b i e c t s 公司的a r c s t y l e r , m e t a n o l o g y 公司的m d e 等。 国内从事m d a 研究的机构有中国科学院软件研究所软件工程技术中 心、武汉大学、m d a c h i n a 组织等,他们的研究主要集中在以下方面: 1 ) 基于m d a 的模型集成和互操作模式; 2 ) 动态模型的预测、演化和仿真方面的研究; 3 ) 提供支持可扩展性和团队开发的工具; 4 ) 专用领域建模; 5 ) m d a 工具应用研究等。 国内应用m d a 技术的公司有k c o m s o f t 公司、金蝶公司等。k c o m s o f t 软件公司首家推出了支持m d a 的k c o m 商业工程软件工具,2 0 0 4 年底发布 的金蝶e a sv 4 0 集团版是国内第一款全面实现了m d a 的管理软件。 1 4 主要工作与篇章结构 论述了模型驱动架构的基本概念和m d a 的四个核心规范,及m d a 中 2 合肥工业大学硕士学位论文 实现模型转换的方法。 研究了a n d r o m d a 的实现原理,介绍了a n d r o m d a 的三个常用模型转 换组件h i b e r n a t ec a r t r i d g e 、s p r i n gc a r t r i d g e 和b p m 4 s t r u t sc a r t r i d g e 提出了一种基于a n d r o m d a 的应用系统开发方法,及对a n d r o m d a 的 模型转换组件扩展的方法,并使用此扩展方法对模型转换组件b p m 4 s t r u t s c a r t r i d g e 进行了扩展。扩展后的b p m 4 s t r u t sc a r t r i d g e 可以从u m l 模型生成 基于s t r u t s 框架和d w r 框架的代码。 应用本文提出的应用系统开发方法,开发了煤矿环境监测与管理信息 系统。 本文的篇章结构如下: 第一章:绪论。论述了m d a 的提出及其相对于传统软件开发模式的优 点,介绍了当前国内外的研究现状及本文的主要工作。 第二章:模型驱动开发概论。介绍了m d a 的基本概念和u m l 、x m i 、 c w m 、m o f 四个核心规范,论述了m d a 中模型转换的实现方式。 第三章:a n d r o m d a 的原理与应用。论述了a n d r o m d a 的实现原理, 介绍了h i b e r n a t ec a r t r i d g e 、s p r i n gc a r t r i d g e 和b p m 4 s t r u t sc a r t r i d g e - 三_ 个模 型转换组件的使用方法。 第四章:基于a n d r o m d a 开发应用系统的方法。论述了一种基于 a n d r o m d a 进行应用系统开发的开发方法,提出了一种扩展a n d r o m d a 的 模型转换组件的方法,并对a n d r o m d a 的模型转换组件b p m 4 s t r u t s c a r t r i d g e 进行了扩展。 第五章:基于a n d r o m d a 开发煤矿环境监测与管理信息系统。使用前 面提出的开发方法完成了煤矿环境监测与管理信息系统部分模块的开发。 第六章;总结与展望。 1 5 小结 本章介绍了论文的研究背景,论述了模型驱动的软件开发相对于传统 的软件开发方法的优势以及当前国内外对m d a 研究的现状,最后介绍了本 文的主要工作和结构。 3 合肥工业大学硕士学位论文 第二章模型驱动开发概论 2 1m d a 的基本概念 d a v i ds f r a n k e l 2 j 认为m d a 是一种基于u m l 和其它工业标准的软件 开发框架,它支持软件设计的可视化,以独立于实现的技术开发,以标准 化的方式来存机器可读和高度抽象的模型,并进行数据交换等操作。m d a 的基本概念有平台、模型、模型转换等。 2 1 1 平台 平台【4 l 是一系列子系统和技术的集合,它通过接口和特定的使用模式 向构建在平台之上的各种应用提供功能和服务,而这些应用不需要关心平 台所提供的功能和服务的实现细节。从不同的抽象层次来看,平台有不同 的划分,如低层的操作系统可以看作是一种平台,常用的有u n i x 平台和 m i c r o s o f tw i n d o w s 平台等,m d a 中用到的平台是指位于操作系统之上的 中间件平台,常见的有c o r b a ,j 2 e e ,n e t 等。 2 1 2 模型 模型是对软件系统整体结构和行为的一种抽象,它常以图形和文字相 结合的方式表示。模型驱动的方法就是利用模型来进行系统的设计、开发 和维护。在m d a 中可以将模型分为计算无关模型c i m 、平台无关模型p i m 和平台相关模型p s m 等几种。 1 ) 计算无关模型c i m 计算无关模型是从用户视角描述特定领域所面临的问题及系统需求的 模型。c i m 是需求阶段的结果,它代表软件生命周期中的需求模型。 2 ) 平台无关模型p i m p i m 定义系统的结构和功能,而不考虑系统的实现细节。p i m 代表构件 生命周期中的分析模型,可以在多个特定的平台被实现。 3 ) 平台相关模型p s m p s m 由系统的数据、处理进程等平台相关的信息组成。p s m 代表构件 生命周期中的详细设计模型,描述了系统基于特定平台的实现方式。 2 1 3 模型转换 在m d a 中,模型转换是指c i m 、p i m 和p s m 之间的相互转化,转换 前后的模型分别称为源模型和目标模型。 模型转换由一系列的转换规则组成,这些转换规则是无歧义的规约, 规定了如何从源语言描述的源模型转换到由目标语言描述的目标模型。转 4 合肥工业大学硕上学位论文 换规则由形式化的模型转换语言来描述,它们可以由转换引擎自动执行。 2 2m d a 的核心规范 2 2 1 统一建模语言( u m l ) u m l 的正式发展始于1 9 9 4 年,它汇集了近2 0 多年的各种建模技术, 特别是b o o t h 、o m t 和o o s e 三种主要技术的精华,使系统开发者能够以 一种支持可伸缩性、安全性和健壮性的方式描述、记录模型并使之可视化。 u m l 提高了分析和设计阶段的抽象程度,使得行为模式的识别较为容易, 从而大大增加了重用的可能性。u m l 建模推动了模块化设计和组件和组件 库的形成,并保证了系统设计和实现之间的一致性。 u m l 提供了有力的扩展机制,可通过特征文件或扩展m o f 元模型的 方式来实现。特征文件是构造型( s t e r e o t y p e ) 、标签值( t a g g e d v a l u e ) 和 约束( c o n s t r a i n t ) 三者的集合,它扩展了u m l 的元模型,就如同为u m l 创建了一种方言。可以通过特征文件来建模各种平台( 如j 2 e e 和n e t ) 、 纵向领域( 如银行、电信) 、建模领域( 如系统工程、实时分析) 的特性。 还可以通过扩展m o f 元模型来扩展u m l 。实际上利用m o f 扩展机制可 扩展任何m o f 元模型,特征文件只是m o f 扩展机制的一个子集。 当前u m l 的最新版本是u m l 2 0 ,u m l2 0 对u m l l 4 的做了很大的 改进,主要有:改进了体系结构、提供了经过改进的可扩展性、加强了对 基本构件开发的支持、改进了关系建模、分离了状态图和活动图的语义、 增强了模型管理以及增加了通用机制等。u m l 2 0 保留了u m l l 4 的大部 分建模元素,除此之外,u m l2 0 也添加了一部分自己特有的元素。 u m l 的表示法是定义了元素图形,主要有类图、组成结构图、构件图、 部署图、用例图、活动图、交互图( 包括顺序图、通信图、交互综述图以 及定时图) 、顺序图、协作图、状态机图等。 2 2 2 元对象设施( m o f ) m o f ( m e t a o b i e c tf a c i l i t y ) 1 4j 标准o m g 于1 9 9 7 年发布。由于对不 同的功能进行建模需要不同的建模结构集,因此,为了描述某一特定类型 的模型,必须描述组成该类模型的建模结构集。m o f 的构建者拒绝了把这 些不同的建模结构集合并成一个集合的想法,决定定义一种统一方式描述 不同类型的建模结构,这种统一的方式是m o f 。 m o f 提供了一个存储模型的数据库,还提供了一个定义模型的基础结 构集和种查看模型的标准方法。m o f 还定义了独立的编程接口,理解 m o f 的应用程序员不必了解模型实例中特定领域接口的任何知识,就可以 5 合肥工业大学硕士学位论文 通过这些接口实现模型的操作,也能够利用反射接口的一般操作来读取和 更新模型。 m o f 使用u m l 描述建模结构的抽象语法,因此m o f 元模型看上去 像u m l 类模型,可使用建模工具创建。通过m o f ,建模结构被构建成为 类模型,结构的属性对应于类的属性,结构间的关系对应于关联。 m o f 包含4 个元层次,这4 个层次被命名为m 3 、m 2 、m 1 和m 0 ,如 表2 1 所示。 表2 1m d a 元层次脚 元层次描述 元素 m 3 m o f ,即定义元模型的构造m o f 类、m o f 属性、m o f 关 集合联等 m 2 元模型,由m o f 构造的实例u m l 类、u m l 属性、u m l 状 组成 态、u m l 活动等;c w m 表、 c w m 列等 m 1 模型,由m 2 元模型构造的实 c u s t o m e r 类、a c c o u n t 类等: 例组成 e m p l o y e e 表、v e n d o r 表等 m 0 对象和数据,也即m 1 模型构客户j a n es m i t h 、账户2 9 8 7 、 造的实例员工a 3 2 1 4 、商家7 8 4 4 4 5 等 m 0 层包含系统的对象和数据,这些对象的数据是m 1 层元素的实例, 如客户j a n es m i t h 是m 1 层c u s t o m e r 类的实例,员工a 3 2 1 4 是m 1 层 e m p l o y e e 表的实例等。 m 1 层包含各类模型,它的所有元素是都是m 2 层元素的实例,如 c u s t o m e r 类是m 2 中的u m l 类的一个实例,c u s t o m e r 的各个属性是u m l 中类属性的实例。m 1 层中的元素是对问题域的抽象,我们构建的p i m 即 位于这一层。 m 2 层包含由m o f 结构定义的元模型,它们是m 1 层中各种模型的模 型。m 2 层元素直接规定了m 1 层的概念,如类( c l a s s ) 、属性( a t t r i b u t e ) 和关联( a s s o c i a t i o n ) 等。 m 3 层就是m o f ,它们是m 2 层中各种模型的模型,称为元一元模型。 m 3 层的元素是m o f 为定义元模型提供的各种结构,它们包括c l a s s 、 a t t r i b u t e 、a s s o c i a t i o n 等等。m 3 层是元层次的最高层,该层的m o f 元素 是由其自身来描述的。 2 2 3x m l 元数据交换( x m i ) x m i ( x m l m e t a d a t a i n t e r c h a n g e ) 【5 j 是o m g 发布的另一个规范,它基 6 合肥工业大学硕士学位论文 于w 3 c 的可扩展标记语言,目标是使基于元对象设施m o f 的元数据仓库 间能容易地进行信息交换,使建模工具间能够交换u m l 模型,第三方开 发商能使用来自任何u m l 建模工具的x m i 输出来创建代码。重要的是, x m i 制定了描述各种元数据定义的统一标准,并要求跨行业和跨操作环境 的用户使用一致的方法读取数据。 x m i 定义了m o f 元模型与x m l d t d 、x m l 元模型,与x m ls c h e m a 之间的映射规则,定义了产生满足所生成的d t d ( 或s c h e m a ) 的x m l 文 档的规则集合,即x m l 文档产生规则和x m l 文档定义产生规则。通过这 些规则,可以为任何基于m o f 的仓库创建d t d 或s c h e m a ,将基于m o f 的元模型转换成x m l 文档类型定义,对基于m o f 的元数据进行编码和产 生x m i 实例文档。 x m i 使用基于流的模型交换格式使元数据能进行基于流的交换,不需 要传递信息的“o r b 到o r b ”连接,不需要中间件。只要一个m o f 仓库 能够导出x m i ,利用仓库引入x m i ,就可以交换信息。x m i 增加了储存 在基于m o f 的仓库中数据的可用性,提高了m o f 自身的有用性。 x m i 能交换基于m o f 的元模型和元数据,可以在不是基于m o f 的仓 库之间交换信息。这可通过创建从其它元模型到m o f 元模型的映射来实 现。 2 2 4 公共仓库元模型( c w m ) c w m ( c o m m o nw a r e h o u s em e t a m o d e l ) 1 6 l 是o m g 为数据建模、数据 仓库、数据交换以及数据分析定义的一个标准建模语言,是目前国际上元 数据集成的唯一公认标准。c w m 定义了数据仓库和业务分析领域中常见 的业务和技术元数据的元模型,是异构软件系统元数据实例间交互基础。 c w m 包含了关系数据库元模型、多维数据库元模型、记录结构元模 型及x m l 元模型。c w m 还包含一组特定产品的数据库元模型,这些元模 型是基本的关系元模型、多维元模型以及记录结构元模型的扩展,如i b m i m s 数据库定义、o r a c l ee x p r e s s 。c w m 还包含了一组用来描述处理不同 形式数据的规则的元模型,这些元模型定义了指定变换规则的结构,可以 依照元模型,用源数据模型和目标数据模型来描述一个变换。 c w m 代表了一种软件系统之间基于模型的元数据交换方法。一个系 统可以按照c w m 规初具规定的格式将内部元数据结构形成一个模型,以 这种方式导出元数据,而另一个系统则可以通过消费c w m 兼容的模型并 把它变换到自身的内部元数据,从而导入元数据。 c w m 元模型基于m o f 标准定义的,可以使用与m o f 标准相关的其 它o m g 标准。u m l 是c w m 定义的标记基础,c w m 中的u m l 有三种 合肥工业大学硕士学位论文 不同的关键角色【7 1 :即 1 ) u m l 用作与m o f 等同的元元模型; 2 ) u m l 用作构建c w m 元模型的基础元摸型; 3 ) u m l 用作面向对象数据源的元模型。 2 3m d a 中的模型转换 2 3 1 概述 模型是对系统( 或系统的一部分) 的形式化规约( 。这种规约可以是 系统的结构规约,也可以是对系统的功能或行为的规约。这种规约要用一 种严格定义的、没有歧义的语言描述。 解决软件开发复杂性的最好的方法是抽象、问题分解和关注点分离。 软件建模已成为实现这些方法的主要形式,模型驱动开发方法将从用第三 代编程语言( 3 g l ) 编写的代码转移到用u m l 等建模语言建立的系统模 型。模型驱动软件开发的目标是通过提升软件开发的抽象层次和使用接近 问题域的语言来提高生产力、缩短软件产品的上市时间。模型驱动开发的 核心问题是如何将这些较高层次上的模型转换成所谓的平台相关模型。 如今软件工业已经走过可视化建模语言标准化,统一建模语言( u m l ) 已经得到许多支持,并于1 9 9 7 年成为对象管理组织( 0 m g ) 的标准,u m l 及其p r o f i l e s 已与模型驱动开发相关联。 u m l 为详述软件系统给出了多种选择。个u m l 模型可以从某个视 点和( 或) 在某种抽象程度上图形化地描述系统的结构和( 或) 行为,可 通过使用多个模型,每个模型捕捉系统的不同方面,以管理系统描述的复 杂性。模型也可以被提炼或被分解到其它模型中,模型不仅可以被以水平 方式使用( 描述一个系统的不同方面) ,也可以被竖直方向使用( 被从较 高的抽象层次提炼到较低的抽象层次) 。 处理描述软件系统多重、互相联系的模型要保证模型的整体一致性。 除垂直和水平方向的模型同步外,模型精化、反向工程、应用软件模式以 及模型重构等工作的自动化方面的进展,减少了建模工作的工作量。 m d a 从模型到代码的转换工作被分成两步实现:从与平台无关的模 型生成无平台相关模型。从平台相关模型到代码,平台相关模型包含了相 应平台的详细信息。 大多数m d a 或u m l 建模工具已很好地支持对u m l 静态视图的转化, 如从u m l 包图到系统逻辑架构的生成,从u m l 类图生成相应的类代码( 不 包括具体方法的实现) ,从u m l 类图生成相应的关系数据库文件。但所有 代码的自动生成目前还做不到, 8 合肥工业大学硕士学位论文 2 3 2 模型转换的实现技术 模型转换是指以一个或多个模型作为输入并产生一个或多个模型作 为输出的过程,输入模型称做源模型,输出模型称做且标模型。模型转换 是m d a 中的关键,但现在还没有统一的模型转换标准。目前已出现了多 种模型转换方法,如直接模型操作方法、模型的间接表现方法、转换语言 支持的模型转换方法等,这些方法各有优点和不足之处。 1 ) 直接对模型进行操作 使用这种方式进行模型转换的工具向使用者提供访问内部模型表示 和使用一系列a p i 操纵模型的能力。如r a t i o n a lr o s e 以及p o w e r d e s i g n e r 等建模工具就提供了带有一系列a p i 的v b 语言来操作模型,r a t i o n a lx d e 为其模型服务器提供了更多的a p i ,这些a p i 可以被j a v a 、v b 或c 挣调用。 直接操作的好处是获取和操作a p i 的语言是通常的程序设计语言,如 v b 、j a v a 、c 群等,开发者容易编写转换代码。开发者通常更习惯于用过程 式语言来书写复杂的转换算法。不足之处是系统提供的a p i 限制了可以做 的转换的种类。因为编程语言是“一般目的”的,它们缺乏适用于定义转 换的高层抽象。用这种方式编写转换可能需要花费较多的时间,比较烦琐, 而且转换算法比较难以维护。 2 ) 基于图理论的模型转换 在图语法和图转换系统上已有人做了许多研究工作,这种转换方法的 理论基础扎实。图转换是通过应用图重写规则实现的。一条重写规则由要 匹配的图( l h s ) 和一个替代的图( r h s ) 组成,如果一个适用于l h s 的 匹配被发现,则规则被激活,从而使匹配的图的子图被依照转换规则替换 为r h s 。基于这一理论的转换系统有预编程图替换系统( p r o g r e s ) 【引, 图重写与转换系统( g r e a t ) l g l 等。 预编程图替换系统不仅可以指定转换规则,而且可以定义这些规则的 执行顺序,这个特征是p r o g r e s 与其它图转换系统相区别的标志。 为确保生成符合目标元模型的结果模型,图重写与转换系统使用源模 型和目标模型的元模型来创建l h s 和r h s 的词汇。但不足的是,g r e a t 的规则语言在一个图中定义了l h s 、r h s 和一系列转换动作,虽然这对于 工具的解释器来说并不会产生二义性,但却使得转换规则很难被理解。 g r e a t 的规则合成语言有一个像电路图一样的可视化的形式,它为顺序规 则、非确定性分类规则、规则合成、递规和条件分支提供了操作符号。虽 然规则合成语言提供了较强的表现能力,但是使用它进行复杂的转换合成 策略和繁重的规则系统的分析则需要相当时间的训练才能完成。一般说 来,使用可视化的语言来书写复杂的算法是非常困难的。 1 0 1 f 1 1 】对g r e a t 进行了一些改进,增加了一些新的特性。 合肥工业大学硕士学位论文 3 ) 混合式模型转换 混合式模型转换综合利用了上述的模型转换方式,被认为是最有前途 的一种模型转换实现方式。a t l ( t h ea t l a st r a n s f o r m a t i o nl a n g u a g e ) i l 2 j 是以这种方式进行模型转换的。a t l 是a t l a si n r i a & l i n a 研究组织为 o m gm o f q v t t f p 提案提交的一个答案,它是用元模型和具有一定语法 的文本描述的转换语言。 一个a t l 转换程序是由一系列的转换规则构成的,这些转换规则可以 是声明式的,命令式的,也可以是两者的混合体。转换规则定义了如何从 源模型元素创建对应的目标模型元素,除了基本的模型转换外,a t l 还提 供了模型查询工具等附加设施。 a t l 完全声明式的交换规则的源模式( l h s ) 包含一组语法类型的变 量和作为过滤器或者遍历逻辑的o c l 约束。它的目标模式( r h s ) 包含一 组变量和用来绑定目标元素中属性值的声明式逻辑。完全命令式的变换规 则包括规则名,一组形式化参数和一个命令块,但是没有任何模式。在混 和式规则中,源模式和目标模式还辅以一个命令逻辑块,在应用目标模式 后执行该逻辑块。 a t l 的规则是单向的,并且支持规则间的继承关系。a t l 要求源模型 和目标模型必须不同,不过自动拷贝机制可以模拟模型内的变换。a t l 既 支持

温馨提示

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

最新文档

评论

0/150

提交评论