(计算机软件与理论专业论文)基于mda的模型转换技术研究与应用.pdf_第1页
(计算机软件与理论专业论文)基于mda的模型转换技术研究与应用.pdf_第2页
(计算机软件与理论专业论文)基于mda的模型转换技术研究与应用.pdf_第3页
(计算机软件与理论专业论文)基于mda的模型转换技术研究与应用.pdf_第4页
(计算机软件与理论专业论文)基于mda的模型转换技术研究与应用.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机软件与理论专业论文)基于mda的模型转换技术研究与应用.pdf.pdf 免费下载

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

文档简介

摘要 软件对现代企业的正常运作起着越来越关键的作用,从机器语言、汇编语言发 展到现在的高级语言,软件开发的抽象层次越来越高。这意味着,开发人员越来 越多地关注问题本身而不是一些技术上的实现细节。针对这一系列的发展趋势, o m g ( o b j e c tm a n a g e m e n tg r o u p ) 组织于2 0 0 1 年提出了模型驱动架构( m o d e ld r i v e n a r c h i t e c t u r e m d a ) 草案。m d a 是一种基于u m l 以及其他工业标准的框架,支持软 件设计和模型的可视化、存储和交换。 它以模型作为系统开发活动的主要制品, 将一个应用或集成系统分离为表示商业和应用逻辑的平台无关的模型( p i m s ) 和表 示平台技术的平台相关的模型( p s m s ) ,通过模型转换实现p i m s 到p s m s 并最终到 代码的( 半) 自动化生成,从而为解决各种互不兼容平台和中间件技术在系统集成 和互操作方面存在的不足提供了新思路。模型不再只是扮演软件开发的配角,而 是作为核心贯穿整个软件开发的始终。 本文从对模型驱动体系结构的产生背景、开发方法及相关规范的介绍入手, 剖析t m d a 软件开发方法的实质和核心技术。深入研究了模型转换理论和方法,特 别是从p i m 至i j p s m 的转换。对模型转换技术的研究现状及当前支持模型转换的m d a 工 具作了总结和比较。指出了元建模在模型驱动架构中的重要作用,提出了一个基 于元模型的模型转换框架,给出了一组基于o c l 的模型转换语言所描述的转换规 则。将模式引入到p i m 到p s m 的模型转换中,并用模式在元模型层对模型转换进行 定义,提出了基于模式的p i m 至o p s m 的模型转换方法,并在一个m d a 应用系统开发实 例中进行了验证。最后展望了模型转换技术的发展前景。 关键词:模型驱动架构平台无关模型模式模型转换元建模 a b s t r a c t s o f t w a r ei s p l a y i n gam o r ea n dm o r ei m p o r t a n tr o l e i n m o d e r ne n t e r p r i s e s a c t i v i t i e s f r o mm a c h i n e r yl a n g u a g e ,a s s e m b l yl a n g u a g et oh i g h l e v e ll a n g u a g el i k e c c + + a n dj a v a t h ea b s t r a c tl e v e lo fs o f t w a r ed e v e l o p m e n ti sb e i n gi m p r o v e d t h i s a l s om e a n st h a tw h a tt h ed e v e l o p e r sr e a l l yc a r ea r en o tt h o s ed e t a i l si nt e c h n i c a lb u tt h e b u s i n e s s e st h e m s e l v e s b e c a u s eo ft h e s et r e n d s ,o m g ( o b j e c tm a n a g e m e n tg r o u p ) p u b l i s h e dm d a ( m o d e ld r i v e na r c h i t e c t u r e ) a t2 0 0 1 m d ai sa ni n d u s t r ys t a n d a r d f r a m e w o r k ,w h i c hi sb a s e do nu m la n do t h e ri n d u s t r ys t a n d a r d s i ts u p p o r t ss o f t w a r e d e s i g na n dm o d e l sv i s u a l i z a t i o n ,s t o r ea n de x c h a n g e t h em d a t r e a t sm o d e l sa st h e m a i np r o d u c t i o ni nas y s t e md e v e l o p m e n ta c t i v i t y , d i v i d e sa na p p l i c a t i o no ri n t e g r a t e d s y s t e m i n t op l a t f o r mi n d e p e n d e n tm o d e l s ( p i m s ) w h i c hd e s c r i b e sb u s i n e s sa n d a p p l i c a t i o nl o g i c ,a n dp l a t f o r ms p e c i f i cm o d e l s ( p s m s ) w h i c hd e s c r i b e sas y s t e mw i t h t h ef u l lk n o w l e d g eo ft h ef i n a li m p l e m e n t a t i o np l a t f o r m t h em d am a p sp i m st op s m s a n df u r t h e rt oc o d e sa u t o m a t i c a l l yo rs e m i - a u t o m a t i c a l l yb ym o d e lt r a n s f o r m a t i o na n d p r o v i d e san e wi d e af o rs o l v i n gt h ep r o b l e mo fi n c o m p a t i b l e b e t w e e np l a t f o r m sa n d m i d d l e w a r e si ns y s t e mi n t e g r a t i o na n di n t e r - o p e r a t i o n t h em o d e lw i l ln o tp l a yam i n o r r o l ea n ym o r e ,i n s t e a di tw il lg ot h r o u g hi nt h ep r o c e s so fs o f t w a r ed e v e l o p m e n t t h i sp a p e ra n a l y z e st h ee s s e n c ea n dc o r et e c h n o l o g yo fm d as o f t w a r e d e v e l o p m e n tm e t h o d o l o g yt h r o u g hi n t r o d u c i n g t h e b a c k g r o u n d a n dr e l e v a n t s p e c i f i c a t i o n s ,a n ds t u d i e st h em o d e lt r a n s f o r m a t i o nt h e o r ya n dm e t h o d o l o g yi nd e p t h , e s p e c i a l l yt h ep i mt op s mt r a n s f o r m a t i o n t h i sp a p e rs u m m a r i z e sa n dc o m p a r e st h e m o d e lt r a n s f o r m a t i o nt e c h n o l o g i e sa n dt h es u p p o r t i n gt o o l si nt h ei n d u s t r ya tp r e s e n t i t p o i n t so u tt h ei m p o r t a n c eo fm e t a m o d e l i n g af r a m e w o r k o fm o d e lt r a n s f o r m a t i o nb a s e d o nm e t a m o d e l sw a sb r o u g h to u t t h i sw o r kg i v e sag r o u po ft r a n s f o r m a t i o nr u l e sb a s e d o no c l p a t t e mw a si n t r o d u c e dt ot r a n s f o r m a t i o nf r o mp i mt op s m t r a n s f o r m a t i o n p a t t e r nw a su s e dt os p e c i f yt r a n s f o r m a t i o na tm e t al e v e l t h i sd i s s e r t a t i o ng i v e st h e a p p r o a c ht os p e c i f ym o d e lt r a n s f o r m a t i o nb yt r a n s f o r m a t i o np a r e m ,a n dp r o v e si ti na r e a lm d aa p p l i c a t i o nl a t e r a tl a s t ,t h i sw o r kd i s c u s s e st h ee x p e c t a t i o no fm o d e l t r a n s f o r m a t i o nt e c h n o l o g y k e yw 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 p l a t f o r mi n d e p e n d e n tm o d e lp a t t e r n m o d e lt r a n s f o r m a t i o n m e t a m o d e l i n g 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名: 抽华一 日期丝篮上 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名: 互杰犟日期趁全金。j 。 导师签名: 第一章绪论 第一章绪论 1 1 研究背景 软件工程发展了几十年,各种相关技术不断推陈出新。随着技术变更速度的 加快,传统的软件开发模式面临着许多问题。 1 - 1 1 传统软件开发面临的问题 首先,典型的软件开发过程包括这样一些阶段:1 需求收集;2 分析;3 ,底层设 计;4 编码;5 顺0 试;6 部署。在传统的软件开发过程中,需求分析往往使用文本和图 的方式来描述,其中的图,经常采用的是u m l 图,如类图、交互图等。文档和相 暮的设计图表都是在前三个阶段中产生的。可是一旦开始编码,这些文档和相关 的图表很快就会失去价值。随着编码阶段的继续进行,系统不断地被修改,而我 们仅仅是修改了代码,代码和图表之间的联系逐渐减弱甚至消失,使得图表不再 是代码的精确说明。 文档一直都是软件开发过程的薄弱环节,许多开发人员总是认为编码才是他 们的主要任务,文档可用性的支持可以事后再做。在开发过程中编写文档需要花 时间,还会降低开发速度,所以编写文档这个工作就得不到开发者们的青睐。每 次代码改变之后都必须手工在一堆文档中找出设计中需要更改的地方,这是相当 烦琐的工作。其实开发人员的这种想法是错误的。我们的工作是开发一个容易修 改和便于将来维护的系统。在代码层次上解决这一问题的方案就是能够直接从源 代码中产生文档,使得文档是代码中不可分割的一部分。这种方案被一些语言所 支持,比如j a v a 语言。但是这种方案只能解决低层次的文档问题,高层次的设计 文档仍然需要手工维护。对于一个复杂的系统,在抽象层次上描述系统的详细设 计文档尤为重要。 1 1 ,2 中间件技术存在的问题 在中间件产生以前,所有形式的分布式计算都是依照专有或者自定义的方式 进行的,使用专有的消息系统通过底层网络协议在处理器之间传递消息。应用软 件直接使用操作系统、网络协议和数据库等开发。因此开发者不得不面临许多很 棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网 2 基于m d a 的模型转换技术研究与应用 络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。于是, 有人提出将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形 成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成 了中间件这类的软件。中间件是一种独立的系统软件或服务程序,位于客户机服 务器的操作系统之上,管理计算资源和网络通信,它位于中间,透明地连接不同 的平台和操作系统。随着分布式计算变得越来越重要,特别是随着互联网的发展, 中间件逐渐扮演了分布式操作系统的角色,控制了它所连接的计算机的许多行为。 因为最初,中间件只被看作一种在比网络协议层略高一点的逻辑层上抽象化通信 的方式,完全从属于操作系统以及在它所连接的平台上运行的应用程序。后来, 开发人员逐渐认识到中间件可以担负协调处理器之间行为的任务。 二十世纪九十年代末,面向对象的中间件技术成为中间件平台的主流技术, 出现了以s u n 公司的e j b j 2 e e ,m i c r o s o f t 的c o m + d n a 和o m g 的c o r b a o m a 为代表的三个技术分支。进入二十一世纪后,随着电子商务需求的发展,融合w e b 的企业计算解决方案成为热点,企业计算技术全面进入i n t e r n e t 时代,中间件技术 得到广泛应用。但是,由于i n t e m e t 环境下的分布式应用的天生异构性,各种中间 件产品的差异就造成了应用集成方面的困难。即使开发人员使用同样的系统设计 模型,由于各自团队使用不同的中间件产品,所得到的最终结果也各不相同,因 而这些最终产品之间的可复用性也难以保障。 1 1 3 对象管理组织0 m g 为了解决跨平台的软件互操作的问题,早在1 9 8 9 年,由软件技术提供商、开 发者和最终用户共同发起成立了对象管理组织,其宗旨是通过制定与维护规范的 标准以促进面向对象技术的理论与实践发展,特别是分布式计算领域。o m g 负责 定制并维护一套规范,以支持多平台环境中的分布式应用软件,覆盖了从领域分 析,需求说明,系统设计到编码,部署,运行和管理的整个软件生存期。 首先,o m g 发布了对象管理体系结构( 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 m m o no 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 ) 规范在内的所有o m g 规范的概念模型基础。c o r b a 是o m g 最具影 响力的规范集,它保证了应用程序的互操作性以及对硬件平台、操作系统、编程 语言及网络和通信协议的无关性。c o r b a 互操作标准已经成为事实上的工业标 准。 1 9 9 7 年以后,o m g 发布了一些不是基于c o r b a 的重要规范,包括统一建模 语言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 , 3 4 , 6 1 ( m o f :m e t ao b j e c tf a c i l i t y ) ;以及后来的x m l 第一章绪论 3 元数据交换 5 , 1 1 ( x m i :x m lm e t a d a t ai n t e r c h a n g e ) 和公共数据仓库元模型 ( c w m t l 0 :c o m m o nw a r e h o u s em e t a m o d e l ) ,这些基础设施规定了在不同设计工具之 间交换u m l 设计模型的标准。 1 2 模型驱动架构m d a 为了解决现存的各种问题,对象管理组织o m g 于2 0 0 1 年7 月发布了模型驱动 架构m d a 2 1 。并于2 0 0 2 年初宣布:模型驱动架构是它的战略方向。 1 2 1m d a 开发方法 m d a 和m d d ( m o d e ld r i v e nd e v e l o p m e n t ,模型驱动开发) 是当今软件领域最 热门的话题。m d a 是软件开发史上的又一次革命,模型驱动自动化软件开发,本 质上是另一种抽象级别( 模型级) 上的编译技术。m d a 把建模语言用作一种编程 语言而不仅仅是设计语言,它能够创建出机器可读和高度抽象的模型,这些模型 以独立于实现的技术开发,以标准化的方式存储。因此,这些模型可以被重复访 问,并被自动转化为s c h e m a 、代码框架、集成化代码以及各种平台的部署描述。 m d a 的关键特点就是软件开发的焦点和产品不再是程序,而是各种模型,设 计不再停留在纸上,而是被存储在标准仓库中,它们可以被m d a 工具读取,并通 过各大厂商提供的各种标准映射自动变成c + + 代码、j a v a 代码、c 撑代码、测试框 架、整合代码、j a v a 对象、n e t 对象、部署脚本乃至软件文档,而且可以映射到 j 2 e e 、n e t 等各种平台。m d a 的最大优势就是业务模型的持久价值,开发人员的 工作是不断拓展模型,只有到了最后阶段才会考虑将其实现。从宏观看,m d a 的 思想使得应用模型与领域模型在整个软件生命周期中得到了复用,保证了己有投 资并驱动整个系统的技术升级。从微观看,m d a 减少了大量的编码和设计,极大 地去除了重复劳动,很大地提高了生产力,保证了模型和代码的一致性。 m d a 认为系统开发的最好方式是隔离系统设计和系统实现,独立建模业务行 为和领域元素,关注系统应用的本身,而不是将中间件平台作为系统开发的中心。 m d a 依赖两种模型:平台无关模型p i m 和平台相关模型p s m 。m d a 的核心思想 是抽象出与实现技术无关,完整描述业务功能的核心模型( p i m ) ,随着建模领域建 模工具的完善,应由业务员完成大部分建模工作,因为只有他们真正理解业务流 程和规范。然后针对不同的技术应用不同的转换规则,通过这些转换规则和辅助 工具,将p i m 转换成与具体实现技术相关的应用模型( p s m ) ,其中包含了特定平 台独有的规范说明。最后,将语法语义完整的p s m 转换成最终的工件和代码。 m d a 软件的生命周期就是以模型为载体并由模型转换所驱动的过程。m d a 4 基于m d a 的模型转换技术研究与应用 开发方法的生命周期与传统的方式表面上看起来区别并不大,如图1 1 ,但它们之 间存在着根本的区别,m d a 的设计工件是能够被机器所理解的精确模型。 d e v e l o p m e n ts t a g e b u s i n e s sm o d e l i n g 舢由s i s 篓j ,一d e s i g n 泛i c o d i n g 。 j ;j t e s t i n g 。 d e p l o y m e n t 毫 1 2 2 使用m d a 的好处 : s t a g er e s u l t i fi n f o r m a ld e s c r i p t i o na n di 咧u s e :, - c a s e sj 纠:塑塑! : li p l a t f o r m s p e c i f i c m o d e l ( p s m ) s o f t w a r ec o d e s o f t w a r e 图1 1m d a 软件开发方法生命周期 使用m d a 的好处如下: 提高生产率。m d a 将开发人员的焦点转移到开发p i m ,所需的p s m 是通 过变换自动从p i m 生成的。从模型中自动生产高质量的、完全的实现代 码,将把开发者解放出来,他们可以花更多的时间去解决商业逻辑问题。 提高了可移植性。m d a 利用u m l 7 , s l ,c w m ,m o f 等建模标准,提供一 种与平台无关的领域模型,天生具有可移植的特点。 增加了互操作性。m d a 把形式化的模型作为互操作问题的核心,而这种 方法最重要的好处就是系统规范与实现技术或平台的分离。系统的定义与 任何实现模型无关,但是能够形式化映射到具体的平台基础设施( j a v a , x m l ,s o a p 等) 。 维护与文档。在m d a 开发过程中,开发者需要关注的是p i m ,它在开发 过程中起到了高层次文档的作用,与传统方式不同的是,程序员不会丢弃 这里的文档( 即p i m ) 。当系统需要改动时,程序员将通过修改p i m 来重 新生成p s m ,再生成代码。或者程序员可以通过直接修改p s m ,然后生 成代码。但是好的工具应该能保持p i m 和p s m 之间的关系,对p s m 的 修改应当反映到p i m 中。这样,在开发的整个过程中,产生的文档都不 第一章绪论 5 会因为系统的改变而失效,同时也有利于程序员以后的维护工作。 保证软件质量。通过m d a 开发应用程序,由模型自动化生成和转换代码 技术、精确的p i m 定义,减少了低端的代码编写,由于模型和模式框定 了应用程序框架和实现,可以确保产品的各个模块都是同等质量的代码。 延长系统生命周期。使用m d a ,功能和架构被单独定义,当新的热门技 术出现时,开发人员可以使用现有的设计来产生新的实现,这在很大程度 上延长了系统的生命周期。 1 3 问题的提出和研究意义 在m d a 中,模型转换是最重要的部分,只有圆满地解决了模型转换的问题,才 能够更加便利地实现代码的自动生成,才能够解决不同平台、不同技术路线的集 成和互操作问题,才能适应不断涌现出的新技术和新平台。o m g 组织为了制订统 一的模型转换标准,提出了q v t ( q u e r y 、v i e w 、t r a n s f o r m a t i o n ) r f p ,目前已经收 到八个提案,但还没有形成统一的标准。m d a 环境下的模型转换是一个较新的研 究领域。它依赖于某些程序转换和元建模已确立的领域元模型。m d a 将模型的精 化和转换作为对模型扩展和加工的基本技术。 就目前看来,各层之间的转换并不像我们所期待的那样容易,至少从p i m 到 p s m 、从p s m 到代码,这个实现的过程要远比从3 g l 生成机器代码来得困难。 现有的工具还不能完全自动完成p i m 到p s m 的转换,并把p s m 再转换到代码, 有些需要开发者手工设置、强化生成p s m 和代码。最典型的例如a r c s t y l e r ( 最优 秀的m d a 开发工具之一) ,它的p i m 到p s m 的转换主要是手工标记( m a r k ) 和映射 来实现的。目前有很多大学、公司、技术团体、专家和学者致力于研究模型转换 的方法,但是并没有一个统一的标准。 早在2 0 0 1 年o m g 组织就已经提出了m d a 的概念,但是国内真正开始了解 m d a 还是近两三年的事情,相关研究更是起步很晚。目前己经有人正在研究从p i m 到p s m 的模型转换方法论,而自称国内首家实现支持m d a 软件开发的k c o m 商 业工程软件工具( 金蝶软件公司开发的商业平台) 也只是局限在一两个成型的系统 模型之上的狭义代码生成,没有实现真正的通用。可以说国内对m d a 模型转换的 研究和应用还存在着很大的空白。 1 4 文章组织结构 本论文系统完整地介绍和分析了m d a 模型转换技术,共分为七章进行论述, 第章绪论,介绍目前软件产业面临的危机,为了解决这些危机,软件行业进行 6 基于m d a 的模型转换技术研究与应用 着不懈的努力,从而引出软件行业新的开发模式m d a 。第二章,详细分析了 m d a 这种具有划时代意义的软件开发方法,介绍了m d a 的核心标准,剖析了 m d a 开发方法的实质,为下文介绍模型转化方法作了铺垫。第三章,对模型转换 方法的概念作了介绍,并对当前的模型转换方法进行了详细的分类和介绍。第四 章,讨论了模型转换技术的研究现状,并对现有的模型转换支持工具进行了总结 和比较。第五章,指出了元建模在模型驱动架构中的重要作用,提出了一个基于 元模型的模型转换框架,给出一组基于o c l 的模型转换语言所描述的转换规则并 将模式引入到p i m 到p s m 的模型转换中,用模式在元模型层对模型转换进行定义, 提出了基于模式的p i m 到p s m 的模型转换方法。第六章,本章在一个m d a 应用系 统开发实例中验证了在第五章所提转换框架下运行的基于转换模式的p i m 到p s m 模型转换的可行性及正确性。第七章,总结了本文的工作。 捕二章m d a 基础理论 第二章m d a 基础理论 21m d a 的核心技术 m d a 架构包括了o m g 的再个核心标准,如图21 。统一建模语言【1 “( u m l ) , 它使应用程序开发人员能够用个标准方法构建、观察、开发和生产模型。元对 象设施( m o f ) 是一种元元模型,定义了构建离散系统模型的基本元素、语法和结构, 并标准化了管理模型的方法,是m d a 的基础,在元数据管理领域,它也是m d a 的 戍片j 。x m l 元数据交换( x m i ) 用于序列化的形式交换模型,是无关中间什技术的通 用,l 数据交换格式。标准通用仓库元模型( c w m ) ,提供了标准化方法表示数据库 模型或模式,模式转换模型,数据挖掘模型等。 网2 im d a 体系结构图 2l _ 1 统一建模语言u m l u m l 是o m g 提出的与具体实现平台无关的建模语言,用于可视化,构造和 文档化分布式对象系统的制品。u m l 提供了方便开发团队在分析设计、需求管理 等活动中进行交流的整套工具,以及一个软件开发生命周期模型。u m l 己经成为 了事实r 标准的建模语言。u m l 规约中自关建模的概念是对象、类、关联、职责、 话动、接口、u s ec a s e 、包、顺序、协作和状态。 在m d a 中,所有的模型均足以u m l 柬描述的。作为标准化的基础,每一个 基于m d a 的模型转换技术研究与应用 m d a 规范都具有两个层次的模型:一个平台独立的模型和一个或多个平台相关的 模型。u m l 是由一个元模型( 语义模型) 定义的,这个元模型本身也是由u m l 递归 地进行定义的。这种循环定义使得整个u m l 基于一个较小的元素定义。u m l l x 版本中虽然有很多优点,但是也有一系列的限制,u m l l x 的缺点主要是:太大且 划分不良;对视点支持不佳;与业界“组件和模式”的发展潮流不同步;扩展机 制有相当大的限制;和m o f 不协调;缺乏标准图表交换:缺乏o c l ( o b j e c t c o n s t r a i n tl a n g u a g e ) l 新;模型等。这些都影响了它在m d a 中扮演的角色。其中一 些缺点( 但不是全部) 在u m l 2 0 中得到了改正。 相比于u m l l x ,u m l 2 0 作了以下的改进( 不含扩展部分) :通过复合结构 ( c o m p o s i t es t r u c t u r e s ) 来支持基于组件的开发。部件( p a a s ) ,端点( p o r t s ) ,连接器 ( c o n n e t o r s ) 使结构化的类层次更好地按等级进行分解和组合。结构和行为的按等级 划分( h i e r a r c h i c a ld e c o m p o s i t i o n ) 。除了被结构性分解的类和组件之外,u m l 2 0 还 支持主要的行为结构,比如交互图,状态机制和活动图的按等级划分。结构和行 为的交叉整合。上面描述过的己分解的结构可以很容易地整合在一起。例如,类 复合结构图中,一些用来表示类的内部结构的部件,同样也可以用在顺序图中, 以表示内部构件之间的通信。关于行为分析的动作语义的整合。u m l 的动作就像 - f - j 编程语言的行为( 或语句) 那样被详细地定义,我们可以为仿真和生成代码定义 可执行的模型。有利于渐增式开发和相容性测试的层次架构。借鉴于其他的大型 语言( 例如s q l ) ,u m l 2 0 包分为三个层次( 要素层,中间层和项层) ,使得用户使 用起来更容易,标准化组织测试相容性时更有效率。 u m l 2 0 规范包括以下4 个文档: 1 ) u m l 2 0i n f r a s t r u c t u r e ( u m l 2 0 基础架构) 。其中重构了元模型继承体系, 使复用u m l 的一部分而不涉及另一部分更为简单;提供更为模块化的打 包;对扩展机制进行改进;对u m l 和m o f 间的不协调之处进行改进等。 2 ) u m l 2 0o b j e c tc o n s t r a i n tl a n g u a g e l 9 1 ( u m l 2 0 对象约束语言) 。其中定义了 o c l 元模型;o c l 描述,抽象语法以及标准库等。 3 ) u m l 2 0d i a g r a mi n t e r c h a n g e ( u m l 2 0 图表交换) 。其中定义了一个机制, 工具可以通过该机制交换图表信息。 4 ) u m l 2 0s u p e r s t r u c t u r e ( u m l 2 0 高层架构) 。该文档与u m l 2 0i n f r a s t r u c t u r e 相比,主要是介绍u m l 2 0 的扩展机制等问题。 所谓“u m l p r o f i l e 就是u m l 语言在特定的计算领域( 如企业分布式对象计 算e d o c ) 或特定的技术平台( 如e j b ,c o r b a 中的“方言,也就是加入特定的计 算领域或特定的技术平台的相关概念和术语的u m l 语言。正是各种u m lp r o f i l e 的存在,才使m d a 的各种模型之间能够平滑地过渡,所以u m lp r o f i l e 在m d a 中有着举足轻重的作用。随着技术的发展,最终o m g 组织会定义覆盖整个m d a 第二章m d a 基础理论 9 范围的一系列p r o f i l e 。目前,o m g 组织己经标准化了三个u m l p r o f i l e :u m l p r o f i l e f o rc o r b a 定义了一个从平台无关的模型到基于c o r b a 的平台相关的模型的映 射。u m lp r o f i l ef o re d o c 用于建立企业应用的平台无关的模型。定义了实体、事 件、过程、关系、模式和企业协作体系结构的表示。作为一个p i m 的p r o f i l e ,它 需要映射到平台相关的p r o f i l e 。其中包括u m lp r o f i l ef o re c a ,u m lp r o f i l ef o f p a t t e r n s ,u m lp r o f i l ef o ri a v aa n de j b 等文档。u m lp r o f i l ef o re a i 为松散耦合的 系统定义了一个p r o f i l e 。松散耦合的系统是指那些使用异步或基于消息的方式进 行通信的系统。 2 1 2 元对象设施m o f m o f 定义了一种抽象语言和一个框架用于详述、构造和管理技术无关的元模 型。它是m d a 的基础,在元数据管理领域它也是m d a 的应用。 m o f 定义了一个通用的元模型,为m d a 提供标准建模、交换构造块,o m g 的所有建模规范( 包括m o f 本身) 都是依据该元模型定义的。这使得起源相同的各 种规范能够很好地配合、协同工作。元模型实际上是一种用于描述各种元数据的 抽象语言。m o f 为元数据的交换和互通提供公共基础。 “元数据”是指用来描述数据的数据。元数据不仅可以描述系统的各个方面 和系统中所包含的信息,而且还可以依据系统对元数据的不同需求在不同层次、 不同约束程度上描述元数据。元数据有通用的抽象语法规则,管理其结构和一致 性,元数据在一个公共语义框架下有确定的含义。 一个元数据的对象是一个对象被用于表示元数据,元数据的对象简称为元对 象( m e t a o b j e c t ) ,所以m o f 是元对象设施。m o f 是一种面向对象的元元模型,它 提供一组建模元素以及使用这些元素的规则,为构建面向对象元模型定义了一种 公共的抽象语言。这种元模型可以是通用的,如u m l ,也可以是针对特殊应用领 域的,如c w m 。 m o f 元数据框架通常分为四层,如图2 2 。 1 0 基于m d a 的模型转换技术研究与应用 元层次描述 元素 m 3 m o f 元元模型即定义元模型m o f 类m o f 屙陛m o f 关联 的构造集台等 m 2 元元数据元模型由m o :f 构l 类u m l 屙胜u m l 状 造的实例组成态u m m 舌动等:c w m 表等 m 1元数据模型曲m 2 元模型构c u s t o m e r - 类e m pl o y e e 造的实例组成类a c c o u n 谈v e n d o r 表等 m o对象和数据i l p m l 模型构造客户j a n es m i t h 员工b 7 8 4 2 的实例 账户2 6 4 9 图2 2 典型的o m g 元模型体系结构 2 1 3x m l 元数据交换x m i x m i i l l 】是将m o f 映射到w 3 c 的x m l 的o m g 标准。x m i 定义了x m l 标记如何 在x m l 中表示遵从m o f 的序列化模型。基于m o f 的元模型翻译成x m l d t d s ( d o c u m e n tt y p ed e f i n i t i o n s ) ,模型翻译成与之对应d t d s 相一致的x m l 文档 ( d o c u m e n t s ) 。 x m i 试图通过x m l 语言为程序员和其它用户提供一种交换元数据信息的标 准途径。x m i 希望能够帮助使用各种语言和开发工具的u m l 开发人员自由地交换 数据模型,另外,x m l 也可以用于数据仓库信息的交互。最重要的是,x m i 制定 了描述各种元数据定义的统一标准,并要求跨行业和跨操作环境的用户使用一致 的方法读取数据。x m i 规范集成了三个关键的工业标准: 1 x m l 可扩展标记语言,w 3 c 的标准。 2 u m l 统一建模语言,o m g 的建模标准。 3 m o f 元对象设施,o m g 元模型建模和元数据仓库标准。 x m i 以序列化的形式交换模型( 元数据) 。 利用x m i 能从u m l 和m o f 模型自动生成x m ld t d ,它为这些制品提供一 种x m l 序列化机制。x m i 己经用于描述u m l 制品( 使用u i v i lx m id t d ) 、数据 仓库和数据库制品( 使用c w mx m id t d ) 、c o r b a 接口定义( 使用i d ld t d ) 以及 j a v a 接口和类( 使用j a v ad t d ) 。x m i 规范主要由以下几部分构成:基于m o f 的元 模型转变为x m ld t d 的x m l 文档类型定义生成规则,x m id t d 是x m i 文档的 语法规范,并能用通用的x m l 工具构建,校验x m i 文档将基于m o f 的元数据编 码为x m l 文档的生成规则,同时,生成规则也可以反向解码x m i 文档并重构元 数据。 第二章m d a 基础理论 2 1 4 通用数据仓库元模型c w m 依据m o fm o d e l 定义的c w m 元模型,是一个用于描述数据仓库领域平台无 关的模型的u m lp r o f i l e 。按照m d a 开发方法,首先,依据c w m 元模型对数据 仓库系统建立平台无关的模型,然后依据标准映射规则,将建好的平台无关的模 型转换为x m l 文档( 适于交换) :最后将各个x m l 文档分别导入到各种支持c w m 规范的数据仓库工具中,完成数据仓库系统的建立过程。 c w m 规范的主要目标是:使处于分布式、异构环境下的数据仓库元数据和商 业智能元数据能方便地在不同的数据仓库工具、数据仓库平台和元数据仓库之间 进行交换。c w m 覆盖设计、建立和管理数据仓库应用的整个生命周期,并支持生 命周期管理。c w m 是迄今为止将m d a 用于具体应用领域( 数据仓库和商业智能领 域) 的最完美的例子。c w m 元模型由多个子元模型构成,c w m 元模型分为5 个层 次,每个层都包含有多个子元模型包。 这5 个层次分别是:对象模型层,基础层,资源层,分析层以及管理层。 2 2m d a 的模型 软件系统的模型用建模语言来表达,如u m l 是对系统的功能、结构或行为的 形式化规范。软件模型包含两个主要方面:语义方面的信息( 语义) 和可视化的表达 方法( 表示法) 。语义模型用一套逻辑组件表达应用系统的含义,如类图、关联图、 状态图、用例图、消息图等。一个语义模型具有一个词法结构、一套高度形式化 的规则和动态执行结构,以及这些内部结构之间分析、推理的规则。表示法携带 了模型的可视化表达方式,即语义是用一种可被人直接理解的方式来表达的。 m d a 的规划其实是非常宏伟的,m d a 显然充分意识到了问题的复杂性,所 以严格区分了四类模型: 1 计算无关模型( c o m p u t a t i o ni n d e p e n d e n tm o d e l ,c i m ) :又称域模型或商业模 型,主要描述系统应用情况。 2 平台无关模型( p i m ) :具有高抽象层次、独立于任何实现技术的模型。 3 平台相关模型( p s m ) :为某种特定实现技术量身定做,让你用这种技术中可 用的实现构造来描述系统的模型。 4 实现相关模型( i m p l e m e n t a t i o ns p e c i f i cm o d e l ,i s m ) :对系统的源代码描述。 在m d a 框架的基本模型分类中,计算无关模型和物理部署模型或者代码,由 于它们和传统定义没有什么区别,不是m d a 模型转换的所关注的焦点,所以在本 文中不做详细介绍。 1 2 基于m d a 的模型转换技术研究与应用 2 2 1 平台无关模型( p i m ) 平台无关模型:具有高抽象层次、独立于任何实现技术的模型。p i m 描述支 撑某些业务的软件系统。在p i m 中,对系统的建模视角是“系统如何才能最好地 支撑业务”。至于系统是用在大型机上的关系数据库实现,还是用e j b 应用服务器 实现,这不是p i m 关心的内容。平台独立性是个相对的概念。当声称模型是独立 于平台的,就必须说明独立于哪些平台技术,这才有意义。比如,当c o r b a 一 开始被提出时,人们认为它是平台独立的,因为它同3 g l 以及操作系统不相关。 但是现在有好几种主流中间件技术,c o r b a 本身就可以被认为是一个平台,于是 有人称独立于中间件的模型为“平台独立”。因此,不指明某个模型同哪个或哪些 平台挂钩就贸然称其为“平台独立”是毫无意义的。我们需要知道它独立于什么 样的平台。如果所说的平台是中间件,那么我们就称独立于中间件的组件模型是 平台独立的,在本文中,独立于平台意味着独立于信息格式化技术、3 g l 、4g l 、 分布式组件中间件和消息中间件。在这个意义上,独立于平台的模型要比目前程 序员工作的抽象层次“更上一层楼”。 2 2 2 平台相关棋型( p s m ) 平台相关模型:包含某种实现平台的技术细节,让你用这种技术中可用的实 现构造来描述系统的模型。p s m

温馨提示

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

评论

0/150

提交评论