(计算机应用技术专业论文)基于mda的webmis平台研究与实现.pdf_第1页
(计算机应用技术专业论文)基于mda的webmis平台研究与实现.pdf_第2页
(计算机应用技术专业论文)基于mda的webmis平台研究与实现.pdf_第3页
(计算机应用技术专业论文)基于mda的webmis平台研究与实现.pdf_第4页
(计算机应用技术专业论文)基于mda的webmis平台研究与实现.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

、 、 吨 、 、 n a n j i n gu n i v e r s i t yo f a e r o n a u t i c sa n d a s t r o n a u t i c s t h eg r a d u a t es c h o o l c o l l e g eo fi n f o r m a t i o ns c i e n c ea n dt e c h n o l o g y r e s e a r c ha n d i m p l e m e n t a t i o n o nw e b - - m i sp l a t f o r mb a s e d m o d e ld r i v e na r c h i t e c t u r e a 砀e s i si n c o m p u t e rs c i e n c ea n dt e c h n o l o g ye n g i n e e r i n g b y d o n gs h a n s h a n a d v i s e db y a s s o c i a t ep r o f e s s o rz h o ul i a n g s u b m i t t e di np a r t i a lf u l f i l l m e n t o ft h er e q u i r e m e n t s f o rt h ed e g r e eo f m a s t e ro f e n g i n e e r i n g m a r c h ,2 0 1 0 p 矛 , t 1 , 簟 j 、 l i 承诺书 本人声明所呈交的硕士学位论文是本人在导师指导下进 行的研究工作及取得的研究成果。除了文中特别加以标注和致 谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得南京航空航天大学或其他教育机构的学位 或证书而使用过的材料。 本人授权南京航空航天大学可以将学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本承诺书) 作者签名:董避避 e t 期:2 坌l 盘:3jf , 1 | , q - 南京航空航天大学硕士学位论文 摘要 上世纪9 0 年代以来,软件行业更新迭代的速度愈来愈快,软件开发方法的不断变更虽然在 一定程度上解决了开发过程中的问题,但不能从根本上解决需求变更、软件移植、软件复用、 互操作性及开发效率等问题。模型驱动架构的出现在一定程度上解决了这些问题,并且使得以 工业化方式开发软件成为了可能。但是,传统的模型驱动架构在模型建立过程中还没有比较成 熟的方法,难以适应企业业务逻辑的不断变化。因此,本文将工作流技术引入到m d a 的开发 过程中,利用工作流成熟的建模方法来完善m d a 开发过程,主要包括以下几方面内容: ( 1 ) 介绍了传统m d a 以及工作流技术的基本原理和发展现状。为基于工作流的m d a 思 想的提出提供了理论依据。 ( 2 ) 设计了基于工作流的m d a 总体框架和开发流程。基于工作流的m d a 思想是将工作 流建模技术生成的模型应用于m d a 中,以弥补m d a 在建立平台无关模型时的不足之处,达 到改进m d a 的目的。在工作流模型基础上,运用m d a 的自动生成方式,将模型转换为实现 代码。 ( 3 ) 提出了基于x 1 ,的业务模型建模方法。针对u m l 在建模方面存在的不足,我们对 其进行了扩展,即在u m l 基础上增加动作语义,使其能够建立可执行的业务模型。 ( 4 ) 定义了从工作流模型到p i m 模型的转换规则。根据定义的规则首先将业务模型转换 为x p d l 工作流模型,然后将x p d l 模型转换到p i m 模型。建立了基于工作流技术的p i m 模 型,实现了将工作流技术与m d a 开发过程的结合。 ( 5 ) 给出了p i m 到p s m 及p s m 到最终代码的转换规则。根据这些转换规则并有地效结 合m d a 后续的开发技术,完成了从p s m 到代码转换。 ( 6 ) 实现了基于m d a 的w e b - m i s 平台的项目开发。运用基于工作流的m d a 思想设计、 开发了快速扩散制造系统,给出了系统主要的模型转换规则实现代码和系统效果图。 关键词:模型驱动架构,工作流技术,业务模型,平台无关模型,平台相关模型 基于m d a 的w e b - m ! s 平台研究与实现 a b s t r a c t s i n c et h e1 9 9 0 s ,t h ed e v e l o p m e n to fs o f t w a r ei n d u s t r yi sm o r ea n dm o r eq u i c k l y t h ec h a n g e so f s o f t w a r em e t h o d ss o l v es o m ep r o b l e m s ,b u tc a nn o tf u n d a m e n t a l l ys o l v ea l lp r o b l e m s ,s u c ha s r e q u i r e m e n t sc h a n g e s ,t h es o f t w a r et r a n s p l a n t a t i o n , s o f t w a r er e u s e ,i n t e r o p e r a b i l i t ya n dd e v e l o p m e n t e f f i c i e n c y , e r e m o d e ld r i v e na r c h i t e c t u r e ,i nac e r t a i ne x t e n t ,s o l v et h ep r o b l e m s b u t ,t h em e t h o do f t r a d i t i o n a lm o d e ld r i v e na r c h i t e c t u r ei sn o tm a t u r e ,i ti sd i f f i c u l tt oa d a p tt ot h ec o n s t a n t l yc h a n g i n g b u s i n e s sl o g i c t h e r e f o r e ,t h i sa r t i c l ew i l li n t r o d u c ew o r k f l o wt e c h n o l o g yt om d a ,u s i n gt h em a t u r e w o r k f l o wm e t h o d st oi m p r o v em d ad e v e l o p m e n tp r o c e s s m a i n l yi n c l u d et h ef o l l o w i n ga s p e c t s : ( 1 ) i n t r o d u c e st h eb a s i cp r i n c i p l ea n dd e v e l o p m e n ts i t u a t i o no fw o r k f l o wt e c h n o l o g ya n d m d a b a s e do nt h e s et h e o r i e s ,w ep u tf o r w a r dm d ab a s e do nw o r k f l o wt e c h n o l o g y ( 2 ) d e s i g nt h ef r a m e w o r ka n dd e v e l o p m e n tp r o c e s so fm d ab a s e do nw o r k f l o w t h e t e c h n o l o g yo fw o r k f l o wa r ea p p l i e dt om d a ,t oc o m p e n s a t ef o rt h ed e f i c i e n c y o fm d ai n e s t a b l i s h i n gp l a t f o r mi n d e p e n d e n tm o d e l b a s e do nw o r k f l o wm o d e l ,w eu s em d at e c h n o l o g yt o c o n v e r tt h em o d e l si n t oc o d e ( 3 ) p r o p o s e db u s i n e s sm o d e le s t a b l i s h m e n tm e t h o db a s e do nx i 瓜,w ee x t e n d e dt h eu m l , a d ds e m a n t i ca c t i o n st ou m l , w h i c hc a ne s t a b l i s ht h ee x e c u t a b l eb u s i n e s sm o d e l ( 4 ) d e f i n et h ec o n v e r s i o nr u l e sf r o mw o r l f f l o wm o d e lt op i mm o d e l a c c o r d i n gt ot h er u l e s , w et r a n s f o r mt h eb u s i n e s sm o d e lt ox p d lw o r k f l o wm o d e lf i r s t l y , t h e nw et r a n s f o r mx p d lm o d e l t op i mm o d e l w h i c hi se s t a b l i s h e db a s e do nt h ew o r k _ f l o wt e c h n o l o g y ( 5 ) g i v et h ec o n v e r s i o nr u l e sf r o mp i mt op s ma n df r o mp s mt ot h ef i n a lc o d e a c c o r d i n gt o t h er u l e s ,w ef i n i s ht h ec o n v e r s i o nf r o mp i mt ot h ef i n a lc o d e ( 6 ) r e a l i z et h ew e b - m i sp l a t f o r mp r o j e c t s u s i n gt h em d aw h i c hi sb a s e do nw o r k f l o w t e c h n o l o g y , w ed e s i g na n dd e v e l o p m e n tr a p i dd i f f u s i o nm a n u f a c t u r i n gs y s t e m t h e nw ep r e s e n tt h e c o n v e r s i o nr o l e sa n dt h es y s t e r ni n t e r f a c e k e yw o r d s :m o d e l d r i v e na r c h i t e c t u r e ,w o r k f l o wt e c h n i q u e , i n d e p e n d e n tm o d e l ,p l a t f o r ms p e c i f i cm o d e l r 矽 , 1 , t 、 i 南京航空航天大学硕士学位论文 目录 第一章绪论l 1 1 弓i 言。1 1 2m d a 概述:二:二:二:j 二二:1 1 2 1m d a 的优点2 1 2 2m d a 模型:3 1 2 2 1 平台独立模型3 1 2 2 2 平台相关模型3 1 2 2 3 代码4 1 2 3 模型转换方法研究现状。4 1 2 3 1 模型到代码的转换4 1 2 3 2 模型到模型的转换。4 1 2 4 基于m d a 的模型变换6 1 2 4 1 建立p i m 模型。6 1 2 4 2p i m 到p s m 的转换。6 1 2 4 3p s m 到代码的转换6 1 2 5m d a 核心技术。6 1 2 5 1 统一建模语言u m l 。7 1 2 5 2 元对象设施m o f 7 1 2 5 3x m l 元数据交换x m i 。8 1 2 5 4 公共仓库元模型c w m 8 1 3 工作流技术综述8 1 3 1 工作流建模技术。9 1 3 1 1 基于p e t r i 网的建模方法9 1 3 1 2 基于e p c 的建模方法9 1 3 1 3 事务工作流的建模方法9 1 3 1 4 基于协调理论的建模方法1 0 1 3 2 工作流的执行和控制1 0 1 4 研究目的及意义1 0 1 5 主要内容和结构1 1 基于m d a 的w e b - m i s 平台研究与实现 第二章基于工作流的m d a 总体框架设计1 2 2 1 基于工作流的m d a 思想的提出。1 2 2 2 基于工作流的m d a 总体框架1 2 2 3 元模型的建立与解析1 4 2 3 1 过程元模型1 4 2 3 2 组织元模型1 6 2 3 3 资源元模型1 7 2 4 模型转换和代码生成1 8 2 4 1 基于x p d l 的工作流建模1 8 2 4 2 工作流模型到p i m 的转换2 0 2 4 3p i m 到p s m 的转换2 0 2 4 4p s m 到代码的转换,2 1 第三章基于工作流的p i m 建模方法2 2 3 1 业务模型到p i m 转换的总体框架2 2 3 2 业务模型的建立方法2 2 3 2 1 域的划分2 3 3 2 2 系统用例建模2 3 3 2 3 业务模型的建立2 4 3 3 业务模型到x p d l 模型的转换2 5 3 3 1 转换规则思想的提出2 5 3 3 2 包的x p d l 转换规则2 6 3 3 3 过程定义的x p d l 转换规则2 7 3 - 3 4 路径活动的x p d l 转换规则2 7 3 3 5 活动替代执行方式的x p d l 转换规则2 8 3 3 5 1n oi m p l e m e n t a t i o n 的设置2 8 3 3 5 2t o o l 的设置。2 8 3 3 5 3s u b f l o w 的设置2 9 3 3 6 转移约束的x p d l 转换规则2 9 3 3 7 转移信息的x p d l 转换规则2 9 3 3 8 工作流参与者的x p d l 转换规则3 0 3 4 工作流模型到e c o r e 元模型的转换3 0 3 4 1e p a c k a g e 的转换规则3l , 户 c 每 , - , 南京航空航天大学硕士学位论文 3 4 2 简单数据类型的转换规则3 l 3 4 3 复杂数据类型的转换规则。3 2 3 4 4a t t r i b u t e 的转换规则。3 2 3 4 5 元素声明的转换规则3 4 3 5 业务流程的转换规则3 6 第四章p i m 到代码的变换3 9 4 1p i m 到代码变换的总体框架3 9 4 2p 眦到p s m 的变换4 0 4 2 1p i m 到关系p s m 的变换规则4 0 4 2 2p i m 到e i bp s m 的变换4 1 4 2 2 1 粗粒度的e j b 模型。4 2 4 2 2 2p i m 到e j bp s m 的变换规则。4 2 4 2 3p i m 到w e bp s m 的变换规则4 3 4 2 4 通信桥接器的生成4 4 : 4 3p s m 到代码的变换4 4 4 3 1 关系模型到代码的变换规则“ 4 3 2e j b 模型到代码的变换规则。4 5 4 3 3w e b 模型到代码的变换规则4 6 第五章基于m d a 的w e b - m i s 平台实现4 8 5 1 快速扩散制造系统4 8 5 1 1 系统的功能概述4 8 5 1 2 功能性需求4 8 5 1 2 1 系统的功能结构树4 8 5 1 2 2 系统流程4 9 5 1 3 用户类和特征5 0 5 1 4 运行环境5l 5 2 系统的开发和实现5 1 5 2 1 业务模型到p i m 转换的实现5 1 5 2 1 1 质量检验过程的x p d l 建模5 2 5 2 1 2x p d l 模型到p i m 转换的实现。5 4 5 2 2p i m 到p s m 转换的实现5 4 5 2 2 1p i m 到e j b 模型转换的实现5 4 基于m d a 的w e b m i s 平台研究与实现 5 2 2 2p i m 到w e b 模型转换的实现5 6 5 3 系统实现效果5 8 第六章总结与展望6 1 6 1 总结6 1 6 2 展望6 2 参考文献6 3 致谢6 7 在学期间的研究成果及发表的学术论文二6 8 , 声 、i 南京航空航天大学硕士学位论文 图清单 图1 1m d a 开发生命周期3 图1 2p i m 到代码的变换过程3 图2 1 基于工作流的m d a 总体框架1 3 图2 2 过程元模型。1 5 图2 3 组织元模型1 6 图2 4 资源元模型1 7 图2 5x p d l 过程定义转换原理1 9 图2 6a t l 模型转换层次结构2 0 图3 1 业务模型到p i m 的转换过程2 2 图3 2 快速扩散制造系统域图。2 3 图3 3 快速扩散制造系统顺序图2 4 图3 4 质量检验域的类图2 4 图4 1p 讧到p s m 的三个变换3 9 图4 2 顶层e j b 组件模型4 3 图5 1e m i q m s 的一级功能结构树4 9 图5 2e m i q m s 的系统管理功能结构树4 9 图5 3 系统运行的总体流程5 0 图5 4 质量管理流程5 l 图5 5 ) a ,d l 工作流模型到p i m 的转换5 4 图5 6 系统的登录界面5 8 图5 7 系统主界面5 9 图5 8 过程检验界面5 9 图5 9 不合格品处理界面。6 0 图5 1 0 质量统计分析界面6 0 基于m d a 的w e b - m i s 平台研究与实现 表清单 表2 1x p d l 的主要元素1 8 表3 1 业务模型元素与x p d l 实体定义的映射关系2 6 表3 2 复杂数据类型的映射规则3 2 表3 3a t t r i b u t e 的映射规则3 3 表3 3 ( 续) 3 4 表3 4 元素声明的映射规则。3 5 表3 5 含e n u m e r a t i o n 限制的e l e m e n t 的映射规则。3 6 表3 6e l e m e n t 映射规则3 6 表3 7x p d l 到p i m 的映射规则3 7 南京航空航天大学硕士学位论文 注释表 英文缩写 英文全称中文全称 m d a m o d e ld r i v e na r c h i t e c t u r e 模型驱动架构 p mp l a t f o r mi n d e p e n d e n tm o d e l 平台无关模型 p s mp l a t f o r ms p e c i f i cm o d e l 平台相关模型 u ,u n i f i e dm o d e l i n gl a n g u a g e 统一建模语言 m o fm e t a0 b j e c tf a c i l i t y 元对象设施 x m ix m lm e t a d a t ai n t e r c h a n g e 基于x m l 的元数据交换 o m g o b j e c tm a n a g e m e n tg r o u p 对象管理组织 c 、椭c o m m o nw a r e h o u s em e t a m o d e l 公共仓库元模型 x m 几e x e n s i b l em a r k u pl a n g u a g e 可扩展标记语言 w f m c w o r k f l o wm a n a g e m e n tc o a l i t i o n : 工作流管理联盟 x p d lx m lp r o c e s sd e f i n i t i o nl a n g u a g e 基于x m l 的过程定义语言 肌a t l a st r a n s f o r m a t i o nl a n g u a g e 模型转换语言 j 2 e ej a v a2e n t e r p r i s ee d i t i o nj a v a 2 企业版 o c l o b j e c tc o n s t r a i n tl a n g u a g e 对象约束语言 r , t 南京航空航天大学硕士学位论文 第一章绪论 1 1 引言 上世纪9 0 年代以来,软件行业更新迭代的速度愈来愈快,已超出任何人的预期。在短短十 多年间,基础技术经历了从面向过程到基于对象,从基于对象到面向对象,从面向对象到面向 组件三次大的变迁。软件工业的发展进步,基本上处于被平台技术的快速变革所驱动的境地。 与此同时,目前的软件开发由于缺乏一种工业化生产方式,软件生产经常出现质量低下、项目 延期等项目失败行为。软件开发方法的不断变更虽然在一定程度上缓解了开发过程中的问题, 但不能从根本上解决需求变更、软件移植、软件复用、互操作性及开发效率等问题,而且项目 文档维护的费用也在逐年攀升。因此,软件行业迫切的需要一种新技术、新标准来解决目前软 件开发面临的种种问题。 模型驱动架构( 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 ) 的出现在一定程度上解决了以上这 些传统软件开发的问题,并且使得以工业化方式开发软件成为了可能【l 】。m d a 模型驱动架构是 对象管理组织( o b j e c tm a n a g e m e n tg r o u p ,0 m g ) 于2 0 0 1 年3 月提出的一种新的软件体系结构 方法学,它基于u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 以及一系列工业标准,支持基于可视化模型 驱动的软件设计、内容存储与交换,是一种基于模型的软件开发架构【2 】。m d a 的终极目标是把 针对特定计算平台的编码工作交由机器自动完成,以此将业务逻辑与实现技术解藕,实现二者 的相对独立变化,从而使模型的价值在包容已有技术的条件下被最大化。从软件开发人员的观 点来看,就是使软件复用由组件复用扩展到模型复用,从而最大程度地提升软件开发效率和质 量、降低开发成本、延长软件寿命,实现工业化开发软件嘲。 业务流程重组是当今企业进行信息化建设的重头戏,对企业管理制度的变革和管理水平的 提升具有极其深远的影响。在企业信息化建设当中,只有以业务驱动为向导,对现有的r r 系 统进行整合集成,才能保证企业信息化的顺利实施。工作流技术作为一项成熟的技术,在许多 工程领域中得到了广泛的应用,它可以改进和优化业务流程,更好的控制业务过程、提高业务 流程的柔性和工作效率。 本文以此为出发点,利用工作流技术在描述业务流程方面的优势,深入研究了基于工作流 技术的m d a 。即在软件开发过程中将业务模型作为输入,然后经过多次转换和映射,实现基 于特定平台的业务代码自动生成。 1 2m d a 概述 m d a 将软件系统建立在各种模型的基础上,通过模型变换来驱动系统开发。m d a 的核心 l 基于m d a 的w e b m i s 平台研究与实现 思想是抽象出与实现技术无关、完整描述业务功能的核心平台无关模型( p l a t f o r mi n d e p e n d e n t m o d e l ,p d v i ) ,然后针对不同实现技术指定多个转换规则,通过这些转换规则及辅助工具将p i m 转换成与具体实现技术相关的平台相关模型( p l a t f o r ms p e c i f i cm o d e l ,p s m ) ,最后通过p s m 转 换成可执行代码。m d a 通过p i m 和p s m 分离业务建模与具体的实现平台技术,确保建模过程 产生的成果不受技术变迁的影响。 1 2 1m d a 的优点 与编码驱动等传统软件开发方法相比,m d a 的优势主要包括如下几点: ( 1 ) 开发效率高 i m d a 将开发人员的注意力转移到开发p i m 上,虽然仍然需要做很多复杂的工作定义额外 的信息来指导模型的变换,但这种工作只需一次,并能应用到不同的技术平台上。虽然定义变 , 换规则的工作量较大,但它一般仅由高水平的软件架构师完成,一旦创建完成,即可分发到项 目组中使用,开发人员只需将注意力放在开发p i m 上面。p i m 开发人员由于不需要设计和撰写 平台相关的细节,减少了工作量。在p s m 和代码层面,开发人员也只需要编写或修改少量的代 码,因为大部分代码都己从p i m 中自动生成。m d a 可使开发人员利用更多的时间去解决业务 逻辑问题,不但可以提高生产效率,而且利于设计出更加符合客户需求的系统【4 】。 ( 2 ) 可移植性好 在m d a 中,可移植性是通过把焦点转移到p i m 而获得的。p i m 具有跨平台性,同一p i m 可被变换到多个不同平台上的p s m 。对于流行的平台,很多工具将会支持从p i m 到此平台的 p s m 的变换。而对于那些不是很流行的平台,开发人员可以选择支持插入功能的工具,自己编 写这种平台定义的变换规则并且嵌入到工具中使用【5 l 。 ( 3 ) 互操作性强 从p i m 中生成的多个p s m 之间可能存在一定的关系,在m d a 中,它们被称为桥接器。 由于p s m 针对一个特定的目标平台,所以它们相互之间不能够直接通信。我们需要将一个平台 的概念交换到另一个平台的相关概念,这就是我们常说的互操作性。m d a 提出的解决的方法 是变换工具不仅需要从p i m 生成p s m ,还需要生成不同p s m 之间的桥接器【6 】。 ( 4 ) 文档维护方便 与传统的文档相比,一个很大的不同就是当完成p i n 的创建之后,p i m 不会像传统的文档 那样被“抛弃”。对系统的改变,首先是要更改p i m ,再从p i m 重新生成p s m 和代码。所以, 使用m d a 模型、代码和文档时,代码与需求之间总是保持同步,从而降低了维护代价。 m d a 还有其它更多的优势,如对新技术的快速包容、平台无关性、领域相关性、降低开 发成本和缩短开发周期等等。m d a 的出现为提高软件开发效率、增强软件的可移植性、协调 2 南京航空航天大学硕士学位论文 工作能力和可维护性,以及文档编制的便利性指明了解决之道。m d a 被面向对象技术界预言 为未来两年里最重要的方法学,其开发方法是未来软件开发的必然趋势川。 1 2 2m d a 模型 图1 1 描述了m d a 开发周期。从图中可以看出,m d a 开发模式的生命周期与传统开发模 式的生命周期并没有太大的不同,都具有相同的开发阶段。一个主要的区别就是开发阶段创建 的设计工件的性质不同,m d a 的设计工件是形式化的精确模型,可以被计算机理斛叼。 图1 1m d a 开发生命周期 传统的从模型到模型的变换和从模型到代码的变换,主要是手工完成的。许多工具可以从 模型生成一部分代码,但是往往只是生成一些模版代码,大部分工作需要手工完成。与此相反, m d a 变换总是由工具执行的,如图1 2 所示,许多工具可以把p s m 变换成代码,因为p s m 已 经和代码很接近了。m d a 的创新之处是把p i m 到p s m 的变换也自动化了,这是m d a 带来的 显著好处。m d a 主要包括三种模型:平台独立模型、平台相关模型和代码。 鼍 致势鬻“赢 二变换。 吲刊 ; 变换一譬 : 工具,。 4 工具“。“ 。嚣 挣 一 ”j 麓象纛。荔巍良纛茹 1 2 2 1 平台独立模型 图1 2p i m 到代码的变换过程 平台独立模型是具有高度抽象层次、独立于任何实现技术的模型,这种模型描述了独立于 任何实现平台的系统结构和功能特征。在p i m 中i 是从系统如何才能最好地支撑业务的视角对 系统建模的,至于系统是用大型机上的关系数据库实现,还是用e j b 应用服务器实现,这不是 p i m 关心的内容。在定义p i m 的过程中,我们会不断根据客户的需求和其它因素对p i m 进行 精化,使得它能够更加精确地描述我们的系统。 1 2 2 2 平台相关模型 平台相关模型p s m 是与特定实现技术或平台相关的模型,是为某种特定的实现技术量身定 做的。在p i m 构造完成后,p i m 被变换为一个或多个平台相关模型,为每个特定的技术平台生 成一个单独的p s m 。例如e j bp s m 是用e j b 结构表达的系统模型,它通常会包含e j b 特有的 3 基于m d a 的w e b - m i s 平台研究与实现 术语,比如“h o m ei n t e r f a c e 、“e n t i t y b e a n ”、“s e s s i o nb e a n ”等等。关系数据库p s m 则包含“表”、 “列”、“外键”等术语。显然,p s m 只对了解相应平台的开发者有意义。由于现今的很多系统 都跨越多种技术,所以对于一个p i m 拥有多个p s m 是很正常的,这是m d a 最复杂,也是最 重要的一步。 有时候从p i m 自动生成的p s m 并不能使程序员满意,他们会根据平台的特性加以修改,对 p s m 进行不断的精化,以指导生成器生成质量更高的代码。对p s m 的改变也能够反映到p i m 中去,这是m d a 的高级特性。 1 2 2 3 代码 开发的最后一步是把每个p s m 转换成代码。因为p s m 同相应的技术密切相关,所以这一 变换相对比较直接。 1 2 3 模型转换方法研究现状 模型转换方法目前还没有形成一个统一的规范,国内外学者提出了许多有实用价值的转换 方法。总的说来,模型转换方法主要分为模型到代码的转换和模型到模型的转换两种【9 】。其中, 前者可以视为是后者的一种特例,但考虑到在实际操作中,这样划分可以复用已有的代码编译 器。 1 2 3 1 模型到代码的转换 此种类型的转换方法主要包括如下两种: ( 1 ) 基于观察者的方法:一种非常普遍的方法,其基本思想是提供一个观察者机制以遍历 模型的内在表示,并将代码写为文本流。 ( 2 ) 基于模板的方法:模板通常由读取源模型的接口、代码选择器和迭代器组成。该方法 的基本思想是对于源模型的每一个元素,都有一个模板将它映射为相应的代码。与基于观察者 的转换方法相比,模板的结构更接近于所产生的代码。目前m d a 工具都支持基于模板的代码 生成,例如,a r c s t y l e r 、a n d r o m d a 、o p t i m a u 、r a t i o n a lr o s ex d e 以及p o w e rd e s i g n e r 等b o 。 1 2 3 2 模型到模型的转换 模型到模型转换是指源模型到目标模型之间的转换,这些模型既可以是同一个元模型的实 例,也可以是不同元模型的实例。大多数现有的工具只提供模型到代码的转换。但是,模型到 模型之间的转换对于处理系统不同的方面及其同步很有帮助。该类型的模型转换方法主要包括 以下五种: 4 南京航空航天大学硕士学位论文 ( 1 ) 直接转换方法 这种方法提供一个内部模型和一些a p i 来实现转换,即程序员使用可以访问和操作模型的 a p i 完成源模型到目标模型转换的工作【l 。在面向对象的框架中经常会使用这种方式,一般还 会提供一些小型的低层结构来规范这些转换。然而,用户必须要使用一种或几种具体的编程语 言来实现这些转换规则。 ( 2 ) 基于关系代数的模型转换 这是一种利用关系代数在元模型级别进行模型转换的方法。这种方法的思想来自于数学中 的关系代数,其思想是采用一种简单的模式,将源模型中的元素到目标模型元素之间的一个映 射表达为一个关系对,将模型转换表达为一个二元关系或者一组二元关系。该方法利用关系代 数中的关系来表达模型转换的定义,利用关系代数的性质来表达模型转换中的约束。 ( 3 ) 基于图形的转换方法 这类模型转换方式使用了基于图形转换的理论。一个图转换通过一组产生式规则来定义, 一个产生式规则由左图形模式、右图形模式和一个约束条件组成。模型的其他部分结合起来组 成目标模型【1 2 1 。图形转换模式可以用来描述源语言、目标语言的具体语法,因为开发者一般对 具体语法更为熟悉,可以降低开发者的使用难度。图转换方式容易使用一种声明式的途径来表 达模型转换的过程,但是,其表达方式的多样性同样也带来了不易进行标准化的问题。要在不 同的图形模型转换工具之间互相交换图形化的模型信息是比较困难的,而且用户要熟悉各种工 具自定义的图形表示方式也是很难实现的。 ( 4 ) 结构驱动的转换方法 该方法分为两个阶段:一个是为目标模型创建相关的多层体系结构,一个是设置目标模型 的属性和引用。全局框架确定了调度与应用的策略,用户只需要关注于提供转换规则【”】。 实现结构驱动转换方式的一个例子是o p t i m a l j 提供的模型到模型转换框架。这个框架是使 用j a v a 来实现的,它提供了一个所谓的增量复制器来方便用户定义自己的转换规则。这个复 制器的基本原理是从源模型中复制模型元素到目标模型中,以使其适合期望达到的转换效果。 在这个框架中通过使用反射机制来提

温馨提示

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

评论

0/150

提交评论