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

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

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

文档简介

摘要 m d a 是国际对象管理组织( o m g ) 为应对业务和技术的快速变化提出的一 种开放、中立的系统开发方法和一组建模语言标准的集合。m d a 以模型作为系 统开发活动的主要制品,将一个应用或集成系统分离为表示商业和应用逻辑的平 台无关的模型( p i m s ) 和表示平台技术的平台相关的模型( p s m s ) ,通过模型 转换实现p i m s 至i , i p s m s 并最终到代码的( 半) 自动化生成,从而为解决各种互不 兼容平台和中间件技术在系统集成和互操作方面存在的不足提供了新思路。 为实现m d a 环境下以模型为中心的系统开发方法,模型转换是极需研究的课 题。模型转换是一个或多个的源模型作为输入,通过执行转换规则产生一个或多 个的目标模型作为输出的过程。模型转换依赖于某些程序转换和元建模已确立的 领域元模型。 本文剖析了m d a 软件开发方法,指出了m d a 开发的实质:1 ) 抽象、模型 复用和模型产品化;2 ) 元建模、模型精确化;3 ) 模型转换自动化、转换规则资 产化。在结合领域元模型及决策模型理论的基础上,本文给出了一种p i m 精确建 模方法,保证了有效的实现模型转换。 本文对模型转换理论和方法进行了深入的研究,特别是从p i m 到p s m 的转 换。从p n “到p s m 的转换是通过模型转换引擎执行模型转换规则实现的,转换规 则是对元模型中的每一个元素进行映射的规则,转换规则定义了如何从源模型 ( 如p i m ) 输入转换引擎产生目标模型( 如p s m ) 。在转换规则还没有标准化的 情况下,本文研究了转换规则的组织结构,提出了转换规则书写规范即转换定义, 为实现模型转换提供了理论基础。同时,给出了模型转换过程控制方法。在此基 础上,结合本文提出了精确p i m 建模方法,通过m d a 开发示例,展现模型驱动开 发的优势和实践了m d a 开发思想。 本文研究了基于g r e a t 的模型转换方法,并对该方法的各个部分进行了详 细的分析,提出一种有效的基于g r e a t 的实现模型转换的一般框架。在该框架 内,改进了模型转换引擎,提出了转换规则库等概念,弥补了该转换方法的不足, 从而完善了模型转换理论。 本文的研究只是抛砖引玉,在模型转换领域还有很多有意义的工作要做。 关键词:模型驱动构架:模型驱动开发;p i m 、p s m ;模型转换;转换规则: 模型转换方法 a b s t r a c t o m g sm o d e ld r i v e na r c h i t e c t u r e ( m d a ) p r o v i d e sa l lo p e n , v e n d o r n e u t r a l a p p r o a c ha n das e to fm o d e l i n gl a n g u a g es t a n d a r d st ot h ec h a l l e n g eo fb u s i n e s sa n d t e c h n o l o g yc h a n g e t h em d at r e a t s m o d e l sa sm a i np r o d u c t i o ni nas y s t e m d e v e l o p m e n ta c t i v i t y ,d i v i d e s aa p p l i c a t i o no ri n t e g r a t e ds y s t e mi n t op l a t f o r m i n d e p e n d e n tm o d e l s ( p i m s ) ,w h i c he x p r e s sb u s i n e s sa n da p p l i c a t i o nl o g i ca n d p 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 he x p r e s sp l a t f o r mt e c h n o l o g y ,m a p sp i m st o p s m sa n df u r t h e rt 0c o d e sa u t o m a t i c a l l yo r s e m i a u t o m a t i c a l l yb y m o d e l t r a n s f o r m a t i o na n dp r o v i d e san e wi d e af o rr e s o l v i n gi n c o m p a t i b l ep 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 or e a l i z em o d e l - c e n t e r e ds y s t e md e v e l o p m e n tm e t h o du n d e rt h em d ae n v i r o n m e n t , m o d e lt r a n s f o r m a t i o ni sv e r yi m p o r t a n ts u b j e c tt or e s e a r c h m o d e lt r a n s f o r m a t i o ni s t h ep r o c e s st h a to n eo rm a n ys o u r c e sm o d e la si n p u to u t p u ta no rm o r et a r g e tm o d e l , t h r o u g ht h ep e r f o r m a n c et r a n s f o r m a t i o nr u l e s m o d e lt r a n s f o r m a t i o nd e p e n d o n t r a n s f o r m a t i o np r o g r a ma n dd o m a i nm a t e - m o d e le s t a b l i s h e di nm e t a - m o d e l i n g t h i sp a p e ra n a l y z e dt h em d as o f t w a r ed e v e l o p m e n ta p p r o a c h ,a n dp o i n t i n go u tt h e e s s e n t i a lo ft h em d a d e v e l o p m e n t :nt h ea b s t r a c t i o n , m o d e lr e u s e da n dt h em o d e l p r o d u c t i z a t i o n ;2 ) m e t a - m o d e l i n g ,t h ep r e c i s em o d e l ;3 ) m o d e l t r a n s f o r m a t i o n a u t o m a t i o na n dt r a n s f o r m a t i o nr u l e 嬲p r o p e r t y b a s e do nt h ed o m a i nm o d e la n dt h e d e c i s i o nm o d e lt h e o r i e s ,t h i sp a p e rs u g g e s t e dap i mp r e c i s i o nm o d e l i n ga p p r o a c h ,i n o r d e rt oe i l s u r et h em o d e lt r a n s f o r m a t i o ne f f e c t i v e l y i nt h i s p a p e rt h e m o d e l 订a n s f o r m a t i o nt h e o r i e sa n da p p r o a c hw e r er e s e a r c h e d , e s p e c i a l l yt h et r a n s f o r m a t i o nf r o mp i mt op s m t h et r a n s f o r m a t i o nf r o mp i m t o p s mr e a l i z e dt h r o u g ht h em o d e lt r a n s f o r m a t i o ne n g i n ep e r f o r m a n c et r a n s f o r m a t i o n r u l e s t h et r a n s f o r m a t i o nr u l ei st h er u l em a p p i n ge a c he l e m e n to fm a t e - m o d e l t r a n s f o r m a t i o nr u l ed e f i n eh o wt oi n p u ts o u r e 冠m o d e l ( s u c ha sp r m ) t o t r a n s f o r m a t i o ne n g i n e ,t h e nc r e a t et a r g e tm o d e l ( s u c h 硒p s m ) f r o mt h es o b r e em o d e l u n d e rt l l ec o n d i t i o no ft r a n s f o r m a t i o nr u l eh a v i n gn o tb e e ns t a n d a r d i z e d ,t h i sp a p e r s t u d i e dt h e o r g a n i z a t i o n s t r u c t u r eo ft r a n s f o r m a t i o nr u l e ,p u t t i n gf o r w a r d t r a n s f o r m a t i o nr u l et ow r i t e ,p r o v i d et h et h e o r i e sf o u n d a t i o nf o rr e a l i z i n gt h em o d e l t r a n s f o r m a t i o n , a tt h es s m et i m e ,g i v et h em o d e lt r a n s f o r m a t i o np r o c e s sc o n t r o l s m e t h o d b a s e do nt h i s ,t h i sp a p e rc o m b i n e dt h ea c c u r a t ep i mm o d e l i n gm e t h o d , n t h r o u g ht h ee x a m p l eo fm d aa p p r o a c h ,e m e r g i n gt h ea d v a n t a g eo fm d aa n d p r a c t i c i n gt h em d ad e v e l o p m e n tt h o u g h t t h i sp a p e rr e s e a r c ht h eg r e a tm o d e lt r a n s f o r m a t i o na p p r o a c h ,a n da n a l y z e dt h e d e t a i l e do ft h ee a c h p a r t o ft h a tm e t h o d ,p u to u tae f f e c t i v eg e n e r a lm o d e l t r a n s f o r m a t i o nf r a m eb a s e do l lt h eg r e a ta p p r o a c h i nt h a tf r a m e ,p u r e do u t t r a n s f o r m a t i o nr u l e d e p o s i t o r ye t c c o n c e p t ,i m p r o v e dt h em o d e lt r a n s f o r m a t i o n e n g i n e ,m a k i n gu pt h es h o r t a g eo ft r a n s f o r m a t i o na p p r o a c h ,t h u sp e r f e c tt h em o d e l 1 t a n s f o r m a f i o nt h e o r i e s t e x t u a lr e s e a r c hj u s ti st h eo u t s e t ,t h e ma r em o r ea n dm e a n i n g f u lw o r kt on e e dt od o i nm o d e lt r a n s f o r m a t i o nr e a l m 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 ;m o d e l - d r i v e nd e v e l o p m e n t ;p i m ,p s m : m o d e lt r a n s f o r i l l a t i o n ;t r a n s f o r m a t i o nr u l e ;t r a n s f o r m a t i o na p p r o a c h 武汉理工大学硕士学位论文 第0 章解读m d a 新一代软件开发方法 引子 一项软件工业调查】9 9 5 年对美国8 0 0 0 个软件项目进行跟踪调查,结果 表明 1 】,有l 3 的项臣没能完成,而在完成的项目中,又有1 2 的项目没有成功 实施。他们仔细分析失败的原因后发现,与需求过程相关的原因占了4 5 ,而其 中缺乏最终用户的参与以及不完熬的需求又是两大首要原因,各占1 3 和1 2 。 需求过程是软件过程的一个很重要的部分。软件项目中4 0 6 0 的问题都是在 需求分析阶段埋下的“祸根”。即使在大力发展软件工程、推广c m m 模型以及后 来的a 百l e 方法之后的今天,软件项目完全成功的比例也只是从上个世纪8 、9 0 年代的1 0 上升到目前的1 6 。 1 分析】软件项居高失败率的原因可归结为:需求内容不明确,把握不充分; 开发计划不充分;设计能力不足;项目管理能力不足;软件生命周期过短,后期 不易于维护等等。 传统的软件开发模式存在很大的弊端,从需求采集、系统设计、系统构建以 及程序开发、系统测试等环节,各个环节的工作机制和规范的不一致,导致系统 最终开发出来与预期的目标相去甚远。随着时间的推移,系统不断地被修改,而 我们仅仅是修改了代码,文档、设计图表和代码之间的距离就越来越疏远,因为 修改文档和设计图表所要花费的代价是无法容忍的。 通过上述分析,传统软件开发方法存在的问题可以归结为以下几点: ( 1 ) 疲于应付需求的不断变更,生产效率低; ( 2 ) 文档迅速地失效、项目后期修改维护困难; ( 3 ) 项目二期开发生产力无法提升; ( 4 ) 跨平台互操作实现困难; ( 5 ) 当一种新的技术产生的时候,必须做许多重复的工作。 中间件( 互操作一 提升抽象层次)在中间件产生以前,应用软件直接使 用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层 越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网 络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、 武汉理工大学硕士学位论文 性能和效率、安全,等等。于是,有人提出将应用软件所要面临的共性问题进行 提炼、抽象,在操作系统之上再形成一个可复用的部分,供成于上万的应用软件 重复使用。这一技术思想最终构成了中间件这类的软件。 中间件是一种独立的系统软件或服务程序,位于客户机服务器的操作系统之 上,管理计算资源和网络通信。随着分布式计算变得越来越重要,特别是随着互 联网的发展,中间件逐渐扮演了分布式操作系统的角色,控制了它所连接的计算 机的许多行为。 中间件的本意是要屏蔽不同厂商产品之间的差异,然而具有讽刺意义的是, 中间件本身之间却创造了新的差异。常见的中间件技术诸如c o r b a ,e j b , x m l s o a p ,c o m + ,n e t ,面向消息中间件等,不能够互相兼容,要在它们之 间建立联系,虚要耗费大量的人力和物力。 1 分析】 中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简 单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务逻辑 上,不必再为程序在不同系统软件上的移植而重复工作。 随着技术的发展,中间件平台的迁移是必然的事,这就提出了新的问题:如 何能够将不同中间件平台上的应用以一种简单易行的方式集成起来,并且在应用 边界变化以及中间件平台迁移的情况下保护既有投资。m d a ( m o d e l d r i v e n a r c h i t e c t u r e ,模型驱动架构) 【3 1 正是针对这个问题提出的一个解决的框架。m d a 其实是中间件思想的进一步提升。“中间件战争已经结束,下一个战场是模型转 换! ”【2 】。 m d a 开发方法 m d a 是国际对象管理组织( o b j e c tm a n a g e m e n tg r o u p , o m g ) 【4 】为应对业务和技术的快速变化提出的一种开放、中立的系统开发方法 和一组建模语言标准的集合,该架构支持软件设计和模型的可视化、存储和交换。 它的出现为提高软件开发效率,增强软件的可移植性、协同工作能力和可维护性, 以及文档编制的便利性提供了解决之道。采用传统的方法,从模型到模型的变换, 或者从模型到代码的变换,主要是手工完成的,与此相反,m d a 中的模型变换 总是由工具执行的。m d a 被认为在面向对象领域中未来最重要的方法学。 1 分析1 计算机技术的发展从过去“动手做”的传统开发模式,到今天“动口 说”的模型驱动开发模式,再到未来“动脑想”的智慧思维模式,将形成概念分明 的三个层次。 m 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 模型驱动的开发) 【2 ,3 ,4 】是当今 武汉理工大学硕士学位论文 软件领域最热门的话题。 m d a 提出了把系统的业务功能分析设计和系统的具体实现基本分离的思 路,把业务信息从技术细节及其复杂实现中分离出来,为此m d a 提出了2 个独 特的模型:平台无关模型( p l a t f o r mi 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 f i cm e d e l ,p s m ) ,以求把实现技术的变化对业务系统的影响降低 到最小化的程度。 m d a 是软件开发史上的又一次革命,模型驱动自动化软件开发,本质上是 另一种抽象级别( 模型级) 上的编译技术。m d a 把建模语言用作一种编程语言 而不仅仅是设计语言,它能够创建出机器可读和高度抽象的模型,这些模型以独 立于实现的技术开发,以标准化的方式储存。因此,这些模型可以被重复访问, 并被自动转化为s e h e m a 、代码框架、集成化代码以及各种平台的部署描述。m d a 的关键特点就是软件开发的焦点和产品不再是程序,而是各种模型,开发人员的 工作是不断拓展模型,只有到了最后阶段才会考虑将其实现。从宏观看,m d a 的思想使得应用模型与领域模型在整个软件生命周期中得到了复用,保证了已有 投资并驱动整个系统的技术升级。从微观看,m d a 减少了大量的编码和设计, 很大地提高了生产力,保证了模型和代码的一致性。 m d a 以一种全新方式整合一系列趋势,从而有助于我们减轻企业计算的压 力。基于组件开发、设计模式、中间件、说明性规约、抽象、多层系统、企业应 用集成、契约式设计并不是m d a 的新发明,但是m d a 可以扩展并推动这些技 术更好地协作。m d 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 工具还仅支持j a v a 和n e t 平台) 。简而言之,m d a 是一个在今天多平台i t 环境中创建良好设计的构架。 m d a 开发方法的生命周期与传统的方式表面上看起来区别并不大,如图0 1 。 而事实上,它们之间存在着根本的区别,m d a 的设计工件是能够被机器所理解 的精确模型。 一3 一 武汉理丁大学硕士学位论义 m d e 咂 图0 - 1m d a 软件开发生命周期 f i g u r e0 - 1l i f ec y c l eo fm d a m d a 软件的生命周期就是以模型为载体并由模型转换所驱动的过程。首先 抽象出与实现技术无关、完整描述业务功能的核心模型( p i m ) ,针对不同实现技 术制订多个转换规则,通过这些规则及转换工具将p i m 转换成与具体实现技术 相关的应用模型( p s m ) ,最后将p s m 转换成特定运行平台上的代码。m d a 就是 一种基于p i m 规范和开发应用程序的方法。把p i m 转换成一个或多个p s m 是 m d a 开发过程中最复杂的步。 m d a 开发方法实质 m d a 开发不同于以往的u m l 建模,而是在更离的抽象层次上描述系统,自 动的生成有效的可执行部分,从而促使与设计模式的一致。m d a 环境下的系统 开发方式强调在开发活动中创建各种模型以精确描述不同的问题域和使用模型 转换以驱动包括分析、设计和实现等在内的整个软件开发过程。 m d a 方法的实质主要体现在以下方面: ( 1 ) 抽象、模型复用和模型产品化 目前,我们的关注焦点常常是用面向对象编程语言书写的代码。m d a 把目 前的开发行为提升到更高的抽象层次。将软件系统的模型分离为分两个抽象级别 的模型【3 ,2 0 ,2 3 】:p i m 和p s m ,p i m 是一个不带有任何特定技术细节的系统模型, 描述了系统独立于任何实现平台的结构和功能特征;p s m 是包括了特定技术细 节的模型,描述建立在特定技术基础上的系统结构和功能特征。这样的抽象使得 p i m 更接近于人类易懂的描述语言;p s m 更易于实现到代码转换的转换工具理 解的描述性语言。 当采用m d a 软件开发方法后,关注的焦点会转移到编写p s m 上,随着理 论和技术的成熟然后再移到p i m 的编写上来,把针对特定计算平台的编码工作 交由机器自动完成,这样的情况下,业务逻辑与实现技术被成功地解耦,二者相 对独立,因此模型的价值在包容已有技术的条件下被最大化。 将p i m 和p s m 分开主要有以下几个优点: 武汉理工大学硕士学位论文 1 p i m 可以被多种实现技术复用,当技术平台发生变迁时,p i m 不必做改动, 真正做到“一次建模,多次使用”; 2 与具体实现技术无关。p i m 可以更加精确地体现系统的本质特征,因此 可以跨越具体技术的限制进行交流和共享; 3 由于使用了简单、通用的模型,可以更加容易地对p i m 进行验证。 4 在p i m 这个层次上对跨平台互操作问题进行建模非常容易,因为使用与 平台无关的通用术语,语义表达会更加清晰。 m d a 最大的优势就是业务模型的持久价值和产品化。软件开发过程是由对 软件系统的建模行为驱动的,把建模语言当成编程语言来用,而不只是当作设计 语言来用,从而使用m d a 软件开发的最终产品不是传统意义上的代码,而是模 型。因此模型不仅仅是软件开发者问交流的革图,而是可披机器处理的软件制品 和一种企业资产。 ( 2 ) 元建模、模型精确化 元建模又称为建模语言定义,元建模类似建模活动,它们之间的区别之一是 建模的主题不同,元建模是对建模语言进行建模,以描述或定义建模语言的语法、 语义和语用。 元模型定义、模型转换是元建模的两个重要组成,它们是建模语言定义和使 用的两个不可分离的维度。元模型定义为模型转换提供了结构、词汇、假设和约 束;模型转换使得抽象模型可以被转换为更具体的模型、提供了构造新模型的另 一种方式和为模型提供操作语义等。 通过标准化各种建模语言,如元对象设施( m e t ao b j e c tf a c i l i t y ,m o f ) 5 】、 统一建模语言( u n i f i e dm o d e l i n gl a n g u a g e ,u m l ) 【6 】、对象约束语言( o b j e c t c o n s t a i n tl a n g u a g e ,o c l ) 【7 】、u m l 动作语义( u m l a c t i o ns e m a n t i c ,u m l a s ) 【8 ,9 】等,较为糟确地定义建模语言的抽象语法、静态语义、部分具体语法、动 态语义( 以自然语言描述为主) 、反射接口和表示空间的映射( t t o m o f t o x m i m a p p i n g 1 0 、m o ft oj m i m a p p i n g 1 l 】等) ,这不仅使模型可在不同的表示空间, 如:x m l 、j a v a 等中存诸和互操作,更重要的是使模型变的更精确。 m d a 的核心思想在于系统的设计是完全明确的,构建系统的时候很少会出现 偏差,这样的精确模型才可以直接生成代码。 ( 3 ) 模型转换自动化、转换规则资产化 模型转换是m d a 的核心和灵魂1 1 2 1 ,它通过模型转换定义语言编写一组模 武汉理t 大学硕上学位论文 型转换规则以编码领域模型、平台模型等的互相转换的知识,将模型间的转换规 则输入模型转换引擎以实现模型间的( 半) 自动转换。 今天围绕m d a 的大多数实践活动涉及了模型转换的自动化,特别是那些在 更高的抽象级别之上的模型和更低的抽象级别之上的模型间的特殊的转换。更确 切地说,一个高抽象级别上的单个模型单元( 如,用例) 连接到多个低抽象级别 模型中的模型单元( 如,边界、实体和控制器) 上。这些连接的可溯性很重要, 主要的原因是支持自动的转换。除此之外,在重复的开发环境( 任何转换都可能 被多次调用) 中,模型转换的自动化具有重要的意义。 m d a 转换规则的撰写将视为软件开发项目本身。基于标准模型转换语言的 模型转换规则可作为模型被存诸、交换和重用,使得模型转换规则成为一种企业 资产。 为达到上述( 1 ) ( 3 ) 的目标,实现模型驱动开发( m o d e l d r i v e n d e v e l o p m e n t , d ) ,进而促进模型驱动的软件开发方法建立、使用和推广,m d a 环境下的 模型转换是极需研究的核心课题。 小结 m d a 是o m g 定义的一个软件开发框架,其关键之处是模型在软件开发过 程中扮演了非常重要的角色,软件开发过程是由对软件系统建模为驱动的。m d a 的软件开发工件是形式化的模型,也就是可以被计算机理解的模型。 在传统上,从模型到模型和从模型到代码的转换是手工完成的。但在m d a 中这些转换是通过m d a 转换工具执行的自动转换。因此,为实现模型驱动的软 件开发方法,m d a 环境下模型转换是一个首要研究的课题。 论文结构 第o 章导读后的章节安排如下:第1 章阐述了和分析了m d a 的模型转换问 题、理论和国内外对该项课题的研究现状,总结出了该课题研究的目标和意义; 第2 章简介了模型转换的相关概念、理论,具体割析了m d a 架构的核心支撑技 术及其作用,指出了p i m 和p s m 的概念和它们之间的转换过程,着重阐述如何 构建精确的p i m 模型及完整的过程;第3 章给出了基于m d a 的模型转换理论, 重点阐述具体实现模型转换的细节,包括各层次模型转换定义;转换规则的设计; 转换过程控制等;第4 章介绍了最主流的m d a 工具o p t i m f l j ,通过一个电子商 务示例实践了m d a 模型转换思想;第5 章在研究g r e a t ( 图重写与转换) 方法的 基础上,设计了蒸于g r e a t 的m d a 模型转换的一般实施框架和模型转换引擎; 最后是总结与展望。 武汉埋工大学硕l :学位论文 第1 章绪论 1 1 背景 当前计算机科学的软件开发方法领域正面临一场影响深远的技术革命,其中 不断提升开发语言和执行平台的抽象层次是这场革命的趋势,从而解决软件互操 作问题和简化开发问题。m d a 就是这场交革中最有代表性产物。 软件发展的历史也是计算机语言抽象程度不断提高的历史。在软件工程发展 过程中,我们初期用汇编语言来进行编程,现在我们有越来越高级的语苦,如: s a m l l t a l k 、c + + 、c # 和j a v a 等这些面向对象语言。当我们从一种低级语言发展 到一种高级语言时,我们可以看出实质上是语言抽象程度提高的过程,高层抽象 语言更易于理解和掌握,再转化到低层抽象的语言。例如:从c + + 到c 到汇编代 码到机器码。当我们不断提高语言的抽象层次时,我们也不断的丌发出新的工具 来支持从高层抽象语言自动转化到低层抽象语言,就此产生了互操作问题。 业界为了解决不同的商业产品和标准之间的数据交换及相互操作,提出了中 间件的解决方案。c o r b a 、j 2 e e 、n e t 和面向消息的中间件( m e s s a g e - o r i e n t e d m i d d l e w a m ,m o m ) 都是重要的中间件平台。然而,众多中间件平台的出现又 带来了新的中间件平台间的互操作问题,如此往复。为此,o m g 把眼光放到更 远的地方,在更高的层面上一统这混乱的局面,提出了基于模型驱动的新的软件 开发方法m d a 。o m g 认为,利用m d a 可以得到更好的“高层抽象”设计框架, 更好地得到针对今天各种语言的“通用化,l 弋码。 m d a 还处在一个发展的过程中,完整的m d a 定义还在不断的演进。狭义 上讲,它是关于个系统的不同豹抽象模型,和在模型之间的定义良好的模型转 换。广义上讲,它是关于抽象的各种级别上的模型,这些抽象作为基础为软件架 构服务,这些架构最终将通过各种实现技术被实现。此时,m d a 被解释的非常 广泛,并且很多组织主张在不同的方案中“支持”或者“符合”m d a 的标准。 m d a 是一种组织和管理被自动化工具支持的企业体系架构和用于定义模型 和推动不同模型类型之闯转换的方法,它将软件系统建立在各种模型的基础上, 把建模语言当成新一代计算机编程语言来用,通过模型的变换来实现系统的开 发。与传统的u m l 模型相比,m d a 能够创建出机器可读和高度抽象的模型, 这种模型通过转换( t r a n s f o r m a t i o n ) 技术可自动转换为代码、测试脚本、数据 库定义以及各种平台部署描述。在m d a 中,模型不再仅仅是描述系统、辅助沟 通的工具,而是软件开发的核心和主干。从此,建模语言不仅仅是分析设计语言, 更可用作为一种更高级编程语言。 武汉理t 大学硕士学位论文 基于m d a 的开发首先关注于系统或者应用程序的功能和行为,而不是它将 采用哪种具体的技术来实现。m d a 对系统关键模型作了区分,使得业务逻辑和 实现细节相分离,并把这些模型置于一个统一结构中。因此,每当一种新的技术 到来的时候,我们不必再重复对系统或者应用进行建模,只要定义到新技术的映 射,通过相应的转换工具就可以实现到该技术的模型转换。而其他架构往往都和 某种特定的技术或者平台捆绑在一起,无法达到这一目的。从而,m d a 为解决 各种互不兼容平台和中间件技术在系统集成和互操作方面存在的不足提供了新 思路。 m d a 为使用模型和应用模型之间的转换作为被控制的、高效的软件开发过 程的一部分提供了概念性的框架。m d a 的初衷是为了解决软件互操作问题,但 所带来的影响却将远远超越互操作领域,m d a 引领将新一代的软件开发方法学。 基于m d a 的模型转换贯穿于模型驱动开发的全过程。系统开发初期,为了 刻画系统特征。一般会创建系统的分析模型。分析模型是一个比较粗糙的模型, 相当于草图的作用,只用于辅助分析。随着系统的特征越来越清晰,系统的设计 模型会慢慢形成。设计模型能够比较精确地描述系统,是系统实现的基础。从设 计模型可以很容易地导出系统的实现模型。实现模型包括具体的代码、脚本、配 置文件等等。这是一个自顶向下、逐层细化的过程,从高层的抽象模型开始,经 过一系列的模型转换,最终生成底层的系统实现。 1 2 问题陈述 1 2 1 问题的提出 ( 1 ) 软件开发的新起点:自动编程与模型编译器 计算机语言是人与计算机之间的交流工具,编程的历史是伴随着计算机语占 诞生而开始的,至今半多个世纪了,基本上都是人( 程序员) 在编程。如果说汇 编语言时代的程序员的工作是用汇编语言写程序,而c + + 编译器扮演的角色和当 时的程序员一样,同样是用汇编语言“写”程序。为此,早在本世纪初,微软研究 院的吉姆髂瑞提出了一个未来信息技术发展根本闷题自动编程闯惩【1 3 】:能 不能开发一种描述性语言,我们只要把设计告诉给计算机,让计算机代替人来自 动编程。而今计算机语言已发展到比3 g 等高级语言更高级的建模语言了,为解 决上述问题提供了可行的解决方向。 自动编程就是替换人在编程中扮演的角色,让计算机来编程,通过建造一种 具有完备性的需求描述语言或用户界面,可以很容易地表述其设计( 比现有的编 程语言更接近人类语言且容易1 0 0 0 倍) ,直接编译,系统应该能对具体应用需求 武汉理工大学硕士学位论文 进行推理,对例外情况和不完备需求能提出疑问。 语言编译器是将一种计算机语言翻译成另一种较低级的计算机语言的工具。 按照这个定义,语言编译器的功能其实就是自动编程。而现有的编程语言( 包括 3 g l 、4 g l ) 都还没有发展到描述性语言的级别,真正描述性语苦应该是像u m l 这样的建模语言。那么如何将模型编译成3 g 等高级语言或更低级的计算机语言 昵? 这就需要一个来实现模型转换的工具模型编译器。 模型编译器是将建模语言翻译成高级语言或更低级的计算机语言的工具。现 有的多数模型工具能将建模语言翻译成高级语言的代码框架,但不是全部代码, 因此不能算是完整意义上的模型编译器。我们希望的是翻译成完整的可运行的高 级语言代码。模型编译器运行自动编程语言输出的结果正好和程序员书写的程序 代码相同。程序员的经验是保存在他的大脑里、文档中,丽模型编译器的积累就 体现在用自动编程语言书写的代码中。 在正规的软件开发过程中,模型设计对程序员来说就是应用需求,程序员通 过读懂模型设计,结合自己的开发经验来编程。现在,模型编译器也要做同样的 事: 1 读取模型设计; 2 遵循一定的规则来自动编程实现模型到高级语言代码的转换。 这里就出现了两个问题:1 如何让计算机读懂我们设计的模型? 2 怎么样 将模型转换为高级语言代码? 在m d a 出现以前这些问题提出时,信息技术远没有“成熟”,当时的现 实和以上的目标之间的距离还很大。这个差距不仅是量而且也是质的问题,因为 用现有技术简单延伸是无法跨越的,必须在理论和技术上有大的突破性进展。 在2 0 0 1 年o m g 组织提出了m d a 框架,这为解决自动编程问题提供了一个 可行的研究方向。在m d a 中,创造性的将设计时系统模型分离为分两个抽象级 别的模型p i m 和p s m ,这使得p i m 更接近于人类易懂的描述语言;p s m 更易于 实现到代码转换的转换工具理孵的描述性语言。这样的设计很好的解决了上面提 出的两个问题。请注意,如果你用工具去生成全部的代码,这就相当于编译你的 模型。在很多方面,这个过程都类似于当从汇编编程转到c 编程时发生的模式 转换,开始的时候,存在一定的怀疑,特别是那些汇编语言编程者。计算机语言 发展到今天,自动编程就是把系统设计模型作为其驱动,并转换成3 g l 、4 g l 代码,也就是模型驱动开发( m d d ) 。对于模型驱动开发,我们说的也是一种相 似的模式转换,建模语言代替了编程语言。用建模语言来实现系统。 - 皇t 武汉理丁大学硕士学位论文 通过上述分析,我们不难得出这样的结论:计算机语言将从程序性语言发展 到说明性( 元) 描述语言时代。而这种转变的实现就要求在更高的抽象层次( 也 就是模型级) 进行编程,其实现工具就是模型编译器。模型编译器的核心就是按 照一系列特定的规则把模型转换为代码。故为了实现自动编程和模型驱动开发 ( m d d ) ,模型转换将是极需研究的核心主题,同时基于m d a 的u m l 模型转 换和分析工具也将是一个重要研究课题。 ( 2 ) 简化开发 战胜软件开发过程中的复杂性的最好方法就是使用抽象,问题分解和关联分 离。模型驱动开发已经变成一个主要的途径来实现这些原理。软件开发的模型驱 动方法把焦点从3 g l 转移到了模型( 用u m l 和u m lp r o f i l e s 描述的精确模型) 上来。正如目前很多的企业都在把业务与i t 相结合作为一项重要的任务来做一 样,其根本是要在业务与软件之间建起一座桥梁。 模型驱动开发的现代工具提供了运行一个( 或部分) 模型的能力,这使得可 以更早得到确认,系统能按预定方式工作。在模型驱动开发中,测试也变得更加 重要,因为能够被更早和更频繁地进行。这种方式,对在项目后期,会使应用程 序的各部分能够更容易统一合作。有人可能以为所有这些额外的工作会延长丌发 周期,但是经验显示,产品上市时间实际上是缩短了。你花费更少的时间用于实 现和测试阶段,更多的时间用于分析和设计阶段,当你迭代重复这些过程时,你 会发现,这种方式的好处是实实在在的。 文献1 1 4 1 根据对软件体系结掏和方法论研究,总结了四种简化软件开发方法: 第一种方法就是尽量向业务领域描述靠拢,尽量用高级语言来直接描述业务 领域的概念。首先要来描述问题的模型,在这里可以使用u m l 或者是使用新的 领域描述语言d s l ( d o m a i ns p e c i f i cl a n g u a g e ) 来描述业务领域力一面的模型; 第二,需要利用架构框架来描述具体的实现过程,架构框架可以针对某种具体实 现作出一些假设,从而基于这些假设来减少我们在建模阶段所涉及的细节;最后, 通过一些自动化的工具来生成实际可执行的模型或者是模型的特定翻译工具。 第二种方法就是完全生成。在这种技术中,只存在一种单向变换,即:从 模型直接变换到代码,而且是百分之百地生成代码,而开发人员不会去修改生成 的代码。这就要求d s l 应该有能力来描述足够的细节,编译器就是一种完全生 成的例子。 第三种方法是把代码嵌入到模型中去,也就是把前面两种方法都结合在起。 在这种方法里开发人员会把代码的片段插入到模型中去。在这种模型中,如果 t o - 武汉理工丈学硕士学位论文 u m l 的描述能力不够的话,开发人员就会用编程语言来描述这些细节。当变换 工具生成代码后,能够把开发人员插入的代码嵌入到最后生成的代码中去。如果 开发人员想修改最终生成的代码,只需要修改这个模型中插入的代码片段,重新 利用这个模型来生成代码。 第四种方法是一种更加先进的变换技术。在这种变换技术中,开发者要为这 种变换本身搭建起变换模型,然后针对这种变换来建立起一个模型,并且利用这 个模型把原模型跟目标代码联系起来。 1 2 2 研究现状分析 ( 1 ) 国内外研究现状 m d a 环境下的模型转换是一个较新的研究领域。它依赖于某些程序转换和 元建模已确立的领域元模型。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 和代码。最典型的例妻1 a r e s t y l e r ( 最优秀 的m d a 开发工具之一) ,它的p i m 到p s m 的转换主要是手工标记( m a r k ) 和映射 来实现的。

温馨提示

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

评论

0/150

提交评论