(计算机软件与理论专业论文)基于web应用的一种模型转换实现.pdf_第1页
(计算机软件与理论专业论文)基于web应用的一种模型转换实现.pdf_第2页
(计算机软件与理论专业论文)基于web应用的一种模型转换实现.pdf_第3页
(计算机软件与理论专业论文)基于web应用的一种模型转换实现.pdf_第4页
(计算机软件与理论专业论文)基于web应用的一种模型转换实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

山东大学硕士学位论文 摘要 随着w 曲应用程序的日益复杂化,出现了很多系统化、工程化的w e b 应用 开发方法。然而传统的w e b 系统开发方法存在着各种方面的不足。它们或是只 面向简单的w e b 应用结构,或是在分析过程中采用过于简单的信息元索作为分 析对象,或是只支持规定的活动以及与用户界面同等重要的应用功能的交互,而 更高抽象层次的导航、展示、用户界面等的处理能力受到限制。 2 0 0 1 年对象管理组织( o m g ) 提出了一种全新的软件开发框架一模型驱动架 构( m d a ) ,它不仅解决了传统软件开发所存在的问题,而且与其他新方法相辅相 成,为软件开发业揭开了一个新的篇章。m d a 通过提高抽象层次来应对软件开 发的复杂性,将业务逻辑设计与不同的软件平台分离,先建立与具体技术无关的 平台无关模型( p l a f 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 o d e l ,p s i v d ,最后由代码生成 器根据p s m 生成可执行的代码。 鉴于m d a 的上述特点和已有w e b 应用程序开发方法的不足,有人提出了 基于m d a 的支持代码自动生成的w e b 应用程序开发方法:从模型转换的角度 建立w e b 应用模型,将平台无关的w e b 应用模型转换为平台相关的w e b 应用模 型,再根据平台相关模型生成最终代码,实现基于特定平台的w e b 应用。这种 w e b 开发方法提高了w e b 应用的抽象层次,使开发过程更加系统化。 a s l p ( a r c h i t e c t u r e ,s t a t i c ,l o g i c ,p r e s e n t a t i o n ) 模型是一种面向软件工程 的用户界面设计和自动生成的平台无关的w e b 应用模型,它由体系结构模型 ( a r c h i t e c t u r e ) 、静态视图( s t 撕c ) 、逻辑视图( l o g i c ) 和界面展示视图 ( p r e s e n t a t i o n ) 组成,通过几种模型的配合实现界面的自动生成。a s l p 模型的 逻辑视图和界面展示视图提供了对w e b 软件特性的支持,比如组合式页面的表 达,导航的描述等,因此它可以实现w e b 界面自动生成。 o m g 的m d a 的主要挑战是定义和执行模型转换,其中,平台无关模型到 平台相关模型的自动转换是一个关键技术。本文从软件工程的实施出发,通过 对n e t 平台的体系架构的分析和研究,提出了一种基于n e t 平台框架的p c f 模 型,通过目标结构驱动的方法建立了a s l p 模型( 平台无关模型) 到p c f 模型 山东大学硕士学位论文 ( 平台相关模型) 的映射关系,并使用l 订l r a n s d s l 描述了两者之间的转换规则。 上述转换实现的过程已在工作中得到实现。这个过程体现了模型驱动开发的特 点,提升了转换规则的抽象层次。 关键词:模型驱动体系架构;模型转换:平台无关模型:平台相关模型 i i 山东大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fw e ba p p l i c a t i o n ,w e ba p p l i c a t i o np r o g r a m m i n gb e c o m e s m o r ea n dm o r ec o m p l i c a t e d al o to fs y s t e m a t i ca n de n g i n e e r i n gm e t h o d so fw e b a p p l i c a t i o nh a v ea p p e a r e d t h e s em e t h o d sc o m b i n et h et r a d i t i o n a l s o f t w a r e e n g i n e e r i n gt e c h n o l o g ya n dt h eh y p e r m e d i ac h a r a c t e r i s t i co fw e ba p p l i c a t i o n a l t h o u g ht l l 锣h a v eg o ts u c c e s st os o m ed e g r e e ,f o re x a m p l e ,t i l 锣p r o v i d eg o o d m e t h o df o rn a v i g a t i o nm o d e l i n g ;l e ys t i l lh a v ed r a w b a c k st h a tc a n tb ei g n o m d t h e y a r el i m i t e do nd e a l i n g 、i mt h ec o m p l i c a t e dp r o b l e m s ,t h ei n t e r a c t i o n 谢mu s e r si n d e v e l o p i n gp r o c e s sa n dt h ec o d ea u t o m a t i cg e n e r a t i o n i nt h ey e a ro f2 0 0 1 ,t h eo b je c tm a n a g e m e n to r g a n i z a t i o n ( o m g ) i n t r o d u c e da n e ws o f t w a r ed e v e l o p m e n tf r a m e w o r k - m o d e ld r i v e na r c h i t e c t u r e ( m d a ) ,w h i c h n o to n l ys o l v e st h ep r o b l e m so ft r a d i t i o n a ls o f t w a r ed e v e l o p m e n t ,b u ta l s o c o m p l e m e n t s 谢t ho t h e rn e wa p p r o a c h e s ,a n dt h u so p e n san e wc h a p t e rf o rt h e s o f t w a r ed e v e l o p m e n t m d ad e a l sw i mt h ec o m p l e x i t yo fs o f t w a r ed e v e l o p m e n tb y r a i s i n gt h el e v e lo fa b s t r a c t i o n ,i nw h i c ht h eb u s i n e s sl o g i cd e s i g n sa r es e p a r a t e df r o m t h ec o n c r e t ep l a t f o r m p l a t f o r mi n d e p e n d e n tm o d e l s w h i c hi su n r e l a t e dt o s p e c i f i ci m p l e m e n t a t i o nt e c h n i q u e ss h o u l db eb u i l tf i r s t l y , a n dt h e n ,p l a t f o r ms p e c i f i c m o d e l s ( p s m ) c a nb e a c h i e v e dt h r o u g hm o d e lt r a n s f o r m a t i o n ,i l lw h i c hm o r e i m p l e m e n t a t i o nd e t a i l sa r ei n t r o d u c e d f i n a l l y , a c c o r d i n gt ot h ep s m , t h ee x e c u t a b l e t a r g e tc o d ew i l lb eg e n e r a t e da u t o m a t i c a l l yb yc o d eg e n e r a t o r i nv i e wo ft h ea b o v e m e n t i o n e dc h a r a c t e r i s t i c so fm d aa n dw e ba p p l i c a t i o n d e v e l o p m e n th a sb e e nt h ei n a d e q u a c yo fm e t h o d s ,i tw a ss u g g e s t e dt h a tt h es u p p o r to f m d a b a s e dc o d ea u t o m a t i c a l l yg e n e r a t e dw e ba p p l i c a t i o nd e v e l o p m e n tm e t h o d s :t h e c o n v e r s i o nf r o mt h ep e r s p e c t i v eo fm o d e ls e tu pw e ba p p l i c a t i o nm o d e l ,w i l lb e p l a t f o r m i n d e p e n d e n tw e ba p p l i c a t i o nm o d e lc o n v e r t e dt op l a t f o r m - r e l a t e dw e b a p p l i c a t i o nm o d e l ,a n dt h e ni na c c o r d a n c e 谢mt h er e l e v a n tm o d e lg e n e r a t i o n p l a t f o r me v e n t u a l l yc o d e ,p l a t f o r m s p e c i f i ci m p l e m e n t a t i o n o fw e b b a s e d i i i 山东大学硕士学位论文 a p p l i c a t i o n s t h e s ew e bd e v e l o p m e n tm e t h o d si m p r o v et h ew e ba p p l i c a t i o nl e v e lo f a b s t r a c t i o n ,s ot h a tt h ed e v e l o p m e n tp r o c e s sm o r es y s t e m a t i c a s l pm o d e li sas o f t w a r ee n g i n e e r i n g - o r i e n t e du s e ri n t e r f a c e d e s i g na n d a u t o m a t i cg e n e r a t i o no fp l a t f o r m - i n d e p e n d e n tw e ba p p l i c a t i o nm o d e l ,w h i c hb yt h e a r c h i t e c t u r em o d e l ( a r c h i t e c t u r e ) ,as t a t i cv i e w ( s t a t i c ) ,l o g i c a lv i e w ( l o g i c ) a n d i n t e r f a c et od i s p l a yt h ev i e w ( p r e s e n t a t i o n ) c o m p o s e do fs e v e r a lm o d e l s 谢mt h e a u t o m a t i cg e n e r a t i o no fi n t e r f a c ei m p l e m e n t a t i o n a s l pm o d e la n di n t e r f a c et o d i s p l a yl o g i c a lv i e wp r o v i d e sav i e wo ft h ec h a r a c t e r i s t i c so fw e bs o f t w a r es u p p o r t , s u c ha st h em o d u l a re x p r e s s i o no fp a g e ,n a v i g a t i o na n dd e s c r i p t i o n ,s oi tc a l lb e a c h i e v e da u t o m a t i c a l l yg e n e r a t e dw e bi n t e r f a c e a m a j o rc h a l l e n g eo ft h eo m g m o d e l - d r i v e na r c h i t e c t u r e ( m o a ) i n i t i a t i v ei st o b ea b l et od e f i n ea n de x e c u t et r a n s f o r m a t i o n so fm o d e l s ,i nw h i c ht h ea u t o m a t i c t r a n s f o r m a t i o no fp i mt op s mi sak e yt e c h n o l o g y f r o mt h ev i e w p o i n to fs o f t w a r e e n g i n e e r i n gi m p l e m e n t a t i o n ,t h i sp a p e rp r o p o s e d ap c f - m o d e lb a s e d0 1 1t h e f r a m e w o r ka p p l i c a t e do n n e tp l a t f o r m , s e tu pt h e m a p p i n gr e l a t i o n s h i pf r o m a s l p m o d e lt op c s - m o d e l 、析ms t r u c t u r e d r i v e n a p p r o a c ha n dd e s c r i b e dt h e t r a n s f o r m a t i o nr u l e sb e t w e e nt h e mu s i n gm t r a n s d s l t h i sa p p r o a c hr e p r e s e n t st h e a d v a n t a g e si nm d a ,a n du p g r a d e st h ea b s t r a c t i o no f t r a n s f o r m a t i o nl e v e l 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 lt r a n s f o r m a t i o n ;p l a t f o r m 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 i v 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均己在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名: 盎主叠生煎 日期:3 鲤! :竺: 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:i 銎翌盔豇导师签名:论文作者签名:) l 垒翌刍丑导师签名: 山东大学硕士学位论文 1 1 课题背景及意义 第1 章引言 平台无关模型( p i m ,p l a t f o r mi n d e p e n d e n tm o d e l ) 到平台相关模型( p s m , p l a t f o r ms p e c i f i cm o d e l ) 的转换是o m g 提出的m d a ( m o d e ld r i v e n a r c h i t e c t u r e ) 【1 】中的关键技术,它是同一系统不同抽象层次模型间的转换1 ,引, 通过抽象分析并形式化的建立源模型系统和目标应用系统的元模型,对比它 们的建模元素及其语义,定义它们之间映射规则,再通过辅助工具自动完成 转换【8 】。国内外的科研人员已提出了一些方法用于构建p i m 到p s m 的转换, 但目前还没有一种有效的解决方案阱,5 ”l 。 已经提出的模型转换方法大都侧重于依赖语法结构而不是建模元素的语 义特征来实现,只能提供一些有限且很特殊的转换能力 1 , 2 , 3 1 ,主要包括:( 1 ) 目标结构驱动的方法。首先建立目标模型的框架结构,为每一个目标元素类 型定义一条转换规则。由目标框架决定转换的进度和规则应用策略,依据映 射规则按照源模型的信息设置目标元素的属性。这种方法适合开发特定的应 用( 如从u m l 模型生成e j b 和数据模式) 。( 2 ) 基于图转换的方法。采用图 转换的理论,在类似u m l 模型的图上操作,类、对象等建模元素映射为一个 图顶点,它们之间的关系映射为边。这种方法有很强的理论基础,但由于转 换进度安排和规则应用策略的不确定性,转换过程是最复杂的。( 3 ) 关系方 法。基本思想是在一个关系中陈述源模型和目标模型元素的类型,并用约束 机制加以描述。该方法便于简单转换的实现,但对复杂的转换不能表达抽象 信息的丢失。( 4 ) 使用x s l t 实现的转换。用x m l 文件表示模型,采用x s l t 来实现模型转换。该方法缺乏精确的数学基础,由于x m i 和x s l t 的冗长和 缺乏可读性,对模型转换的维护很困难,当模型不是树状而是复杂的图结构 时,其效率很低。 由于j 2 e e 平台架构的开放性,很多模型转换的目标平台选择了j 2 e e , 山东大学硕士学位论文 而向n e t 平台模型的转换实现并不是很多。微软n e t 平台是一个建立和开发 各种w e b 应用的主流平台,在m i c r o s o f t n e t 框架下,建立网络应用程序和 网络服务变得更加容易,并能很好地满足了i n t e m e t 和i n t r a n e t 环境的分布式 应用,为企业提供了一个全新的平台。 本文从软件工程的实施出发,提出了一种基于n e t 平台框架的p c f 模型, 通过改进目标结构驱动的方法建立了a s l p 模型到p c f 模型的映射关系。这 个过程体现了模型驱动开发的特点,提升了转换规则的抽象层次。 本课题的实现环境a u i 代码自动生成系统是通过a s l p 模型对w 曲应用 建立平台无关模型,然后针对不同的目标平台建立平台相关模型体系结构, 最终目标是完成w e b 应用模型到目标代码的转换工作,生成w e b 应用的各种 目标代码文件,包括各种程序源代码,部署文件等。 本文的研究意义在于通过a s l p 模型对w e b 应用的描述,利用a s l p 模 型的平台无关性,探讨从a s l p 模型到a s p n e t 框架的转换,最终实现了 v s n e t 2 0 0 5 环境下w e b 应用程序的代码自动生成。减少w e b 应用开发工作 量,同时便于新技术的应用。 1 2 本文的主要工作和创新点 本文所做的主要工作及创新点为: 1 成功引入a s l p 这个平台无关的w e b 应用模型,并通过分析和研究提 出了n e t 平台下的p c f 模型,为下一步的转换提供了条件。 2 建立了a s l p 模型到p c f 模型之间的映射规则,并成功找到一种合适的 语言加以描述。 3 在软件工程工具a u i ( a u t o m a t i cu s e ri n t e r f a c e ) 环境中实现了上 述转换,并最终实现了a s p n e t 代码的自动生成。 1 3 本文的组织结构 本文主要阐述了基于w e b 应用的一种模型转换实现,并通过实际工作加 2 山东大学硕士学位论文 以验证。 本文分为七个部分:第一部分引言,介绍课题研究背景、课题的研究意义、 本文的主要工作以及本文的组织结构:第二部分相关研究,对涉及到的相关 课题的国内外研究现状进行了研究与分析:第三部分源模型一a s l p 模型,主 要对平台无关的a s l p 源模型的整体结构进行了细致的分析;第四部分目标模 型一p c f 模型,通过对n e t 平台的体系架构的深入研究,提出了与该平台相 关的p c f 目标模型,并对该模型的组成进行了详细的阐述:第五部分a s l p 模型到p c f 模型的映射方案,提出了a s l p 模型到p c f 模型的映射规则,并 通过合适的语言对其进行了描述;第六部分模型转换的代码实现,详细介绍 了上述模型及其转换转换过程在a u i 系统中的实现思想,并通过实例加以说 明;第七部分总结,对已经完成的工作做了总结,并提出了下一步需要完善 的工作。 山东大学硕士学位论文 2 1w e b 应用开发 第2 章相关研究 随着i n t e m e t 和i n t r a n e t 、e x t r a n e t 的快速增长,w 曲已经对商业、工业、银 行、财政、教育、政府、娱乐及我们的工作和生活产生了深远的影响,许多传统 的信息和数据库系统正在被移植到互联网上。 但w | e b 系统开发缺乏严格和系统的方法,很少有人注意开发方法、度量和 评估技术、系统质量和项目管理,当前的大多数w e b 应用开发和管理实践在很 大程度上依赖于开发人员个人的知识和经验,造成的后果是所开发的w e b 系统 大多是低质量的产品。而随着基于w e b 的系统变得越来越复杂和重要,个项 目的失败将可能导致很多问题,当这种情况发生时,人们对w r e b 和i n t e m e t 的信 心可能会无法挽救地产生动摇,从而引起w e b 危机。 基于w e b 的应用系统开发方法倍受关注,主要体现在w e b 应用系统的开发 和传统软件开发的显著区别上,传统软件工程方法和技术应用到基于w e b 的系 统开发中,显得力不从心问。在开发复杂的基于w e b 的系统中,为了避免w e b 危机的发生,达到更大的成功,迫切需要一个严格的步骤和新方法、新工具来开 发、发布和评估基于w r e b 的系统。 由于在w e b 应用的开始阶段,只是将w e b 作为信息中介和信息发布的平台 ( 简单的网站) ,因此,所提供的工具只是集中于网页的创建和编辑,如微软的 f r o n t p a g e 等。它们都限于被动的超文本表示、网页布局和部分的导航模型,缺 乏系统的、结构化的方法以及抽象、重用的支持。随着w e b 应用的规模和复杂 度日益增加,w e b 已经成为各种应用的主要平台。和传统的w e b 站点相比,w 曲 应用程序不但支持导航和浏览,而且操作还会影响内容和导航状态。这使得w | e b 应用的开发变得更加复杂。目前w 曲应用的工程化方法已经成为w 曲应用开发 研究的热点【1 2 】,这些研究旨在提供能全面支持w e b 应用开发生命周期的模型和 方法。 4 山东大学硕士学位论文 2 1 1 开发方法应具备的特性 w e b 开发方法的目标是系统化w e b 应用的开发全过程,提高开发效率和开 发质量。为达到此目标,一个成熟的w - e b 开发方法应该具备以下的主要特征或 功能: 易于掌握:开发方法的一个目的是为了减轻开发人员的工作量,所以应该具 有易于掌握的特点,但这不应以牺牲表达能力为代价,即w e b 开发方法应该能 对w e b 程序的各个方面进行全面详细的描述。 对复杂系统建模的能力:w e b 应用的范围涵盖从简单的静态站点到动态交互 的w 曲应用。近年来,w e b 应用发展迅速,特别地,当大量传统信息和数据库 系统被移植到w e b 环境下,一种新型的w | e b 应用程序出现了,这些程序利用 w e b 平台支持和执行商业过程以及工作流。成熟的w e b 开发方法应该能适用这 种需求,这就需要有对商业过程、工作流进行建模的能力,并和w 曲系统设计 的其他部分有机结合。 表现层建模的能力:传统的设计方法一般不很重视界面设计,而和传统的软 件系统相比,w e b 系统表现设计有自己的特点:( 1 ) 系统的很多高级功能体现在 表现层,这需要提高界面的设计质量;( 2 ) 界面中包含着大量的多媒体信息; ( 3 ) w e b 设计方法一般不仅给设计人员使用,而且需要给美工、编辑等使用,他 们更关心系统的表现设计。所以w e b 开发方法需要能针对这些特点对表现层建 模。 系统定制的支持:w e b 系统成功与否主要依赖于用户的满意程度。成功的 w - e b 系统应该具有丰富的功能,易于使用的界面和定义良好的导航结构。而为了 达到更高的用户满意度,一个主要的技术是通过个性化定制把合适的内容在合适 的时间分发给合适的人。开发方法需要提供系统定制能力,这主要通过对用户的 定义和描述来完成,其中包括对用户分组以及用户之间联系的处理。 模型集成和连通的能力:能够在较高的抽象层次上表达系统和资源是怎样集 成的。 自动生成能力:能否提供自动生成能力以及能力的大小是w e b 开发方法成 熟度的一个重要衡量标准,理想的开发方法应能提供从模型描述到运行、配置代 码的自动生成。 山东大学硕士学位论文 工具和文档支持:理想的工具应能支持在用户参与下,完成从需求确定到实 现维护的整个开发过程。丰富的文档支持是设计者能否掌握开发方法的重要方 面。 2 1 2w e b 应用开发方法研究现状 目前w e b 应用的开发建模方法主要有以下几种:o o h d m 、u w e 、w e b s a e l l 】 以及h d m 、w m m 等等。w e b 应用开发方法的共同点在于一般将w e b 系统模型 分为领域模型、导航模型和展示模型,经过概念建模、逻辑建模、物理建模和实 现四个过程完成w 曲系统开发。其中领域、导航、展示模型分别描述系统的不 同侧面,可以看成是w e b 模型的不同视图。领域模型描述w 曲应用中的领域对 象及其关系,是导航模型的基础;展示模型描述w 曲页面的展示形式,是对导 航对象和导航行为的最终体现;而导航模型是w 曲模型区别于传统系统模型的 重要部分,描述了w e b 应用的导航特性,起着衔接领域模型和展示模型的作用。 目前现有的w e b 应用开发方法将传统的软件工程技术和w 曲应用程序的超 媒体特性较好的结合起来,取得了一定的成功。然而这些开发方法更多的是从规 范化设计的角度,而没有从工程化应用的角度出发,也具有一些不可忽视的缺陷 1 7 1 ,主要表现在: ( 1 ) 不能对复杂功能建模。 ( 2 ) 模式支持和利用不够。 ( 3 ) 模型之间缺少清楚和自动的映射。 ( 4 ) 领域层、导航层和展示层三个层次之间的关系不密切,模型间容易出现 不统一。 ( 5 ) 界面设计大多比较简略。 ( 6 ) 缺少开发工具的支持。 ( 7 ) 缺少对非功能需求的支持,对软件体系结构重视不够。 这些缺陷妨碍了上述开发方法在复杂的w e b 应用程序开发中的广泛应用。 2 2 模型体系架构 模型驱动架构( m d a ) 是一个软件开发框架,它是由o m g 定义的。m d a 的 6 山东大学硕士学位论文 关键之处是,模型在软件开发过程之中扮演了非常重要的角色。在m d a 中,软 件开发过程是由对软件系统的建模行为驱动的。m d a 是一种基于u m l 以及其 他工业标准的框架。和u m l 相比,m d a 能够创建出机器可读和高度抽象的模 型,这些模型以独立于实现的技术开发,以标准化方式存储。因此这些模型可以 被重复访问,并被自动转化为纲要,代码框架,测试工具,集成化代码以及各种 平台的部署描述。 m d a 把建模语言用作一种编程语言而不仅仅是设计语言。m d a 以一种全 新的方式将1 1 技术的一系列新的趋势性技术整合到一起。这些技术包括基于组 件的开发,设计模式,中间件,说明性规约,抽象,多层系统,企业应用整合以 及契约式设计。m d a 的出现,为提高软件开发效率,增强软件的可移植性,协 同工作能力和可维护性,以及文档编制的便利性指明了解决之道。 ( 1 ) 模型驱动开发的基本框架 传统上,从模型到模型的转换,或者从模型到代码的变换,主要是手工完成 图2 - 1 模型驱动开发主要步骤 的。许多工具可以直接从模型生成一部分代码,但是往往只是生成一些模板代码, 大部分工作还是需要手工完成。模型驱动开发的主要步骤,包含了三个模型,两 个变换工具之间的协作关系。变换工具以p i m 为输入,并把它变换成p s m 。另 一个变换工具再把p s m 变换成代码。 从图2 1 中看出,模型驱动开发实现的两个关键转换是由工具支持自动完成 的。目前有不少工具,可以将p s m 转化成代码,因为p s m 与代码已经相当接近。 模型驱动开发的难点是实现p i m 到p s m 转化的自动化。现有的工具还没有完全 将p i m 成功转换为p s m ,在许多情况下仍需要用户干预或强化p s m 描述。但是 总可以从p i m 生成一个基本可运行的应用程序。 模型总是以某种语言表述的。可以是u m l ,也可以是自然语言,或者某种 编程语言。为了支持模型的自动转换,需要对模型或模型描述施加一定的限制或 7 山东大学硕士学位论文 约束。 ( 2 ) o m g 的四个建模层次 m d a 技术的相关概念均是o m g 的一系列标准:统一建模语言i m ,( u n i f i e d m o d e l i n gl a n g u a g e ) b 3 1 、元对象设施m o f 1 4 1 ( m e t ao b j e c tf a c i l i t y ) 、x m l 元数 据交换x m i ”1 ( 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 6 1 ( c o m m o nw a r e h o u s em e t a m o d e l ) 。m d a 的核心标准组成了创建模式驱动的一 致性系统纲要的基础,这个系统纲要完成授权、发布和管理模型的功能。 其中m o f 为m d a 的核心,它包含四个模型层次:m o , m 1 ,m 2 ,m 3 ,m o f 可 以被用来描述关系数据模型的建模结构,也被用来描述u m l 类模型的建模结构: 它还被用来描述其他种类的建模所用到的结构。m o f 是通用的、抽象的,用于 定义元模型的语言,它可以被称为m e t a m o d e l 或者定义元模型的模型。 m o 层:实例。运行的系统位于m o 层,这是实f f r j ( i n s t a n c e ) 所存在的层次。 m 1 层:系统的模型。m 1 层包含模型,比如软件系统的u i v i l 模型。m 0 层和 m 1 层之间有确定的关系。m 1 层的概念都是m 0 层实例的归类,换句话说,m 0 层的元素都是m 1 层的元素的实例。 m 2 层:模型的模型。位于m 2 层的模型。位于m 1 层的元素( 类、属性以及其 余模型元素) 本身就是m 2 层的实例,m 2 层的元素规定了m 1 层的元素。 m 3 层:m 2 的模型。m 2 层元素可以看成是更高层m 3 层( 元一元层) 的元素。 ( 3 ) m d a 工具对模型变换的支持 工具对m d a 的支持是多种多样的,很多年前就有工具能支持从模型生成简 单的代码,这也包含在m d a 的范畴中。但是,在理想的情况下,m d a 对模型 和模型变换提出了很高的要求。工具对模型变换所提供的支持主要表现在以下几 方面: p i m 到p s m 的变换:这类工具把高层次p i m 变换成一个或多个p s m 。目前 这类工具还很少见,虽然有一些,但是只提供了这方面的最基本功能。本文研究 的即是这种形式的转换。 p s m 到代码的变换:这些工具有内置的变换定义,把符合某种预定义类型 的模型作为输入,并输出符合另一种预定义类型的模型。源模型是p s m ,目标 模型则是代码模型。事实上,传统c a s e 工具就是按照这个模式生成代码的。 山东大学硕士学位论文 p i m 到代码变换:同时支持从p i m 到p s m 和从p s m 到代码的变换。有时 候,用户看到的只是从p i m 到代码的直接变换,p s m 则是隐含的。这种类型的 工具把源语言、目标语言以及变换定义都内置其中了,它们的行为就像黑盒一样。 2 3 基于m d a 的w e b 应用开发 o m g 提出的m d a 恰恰可以很好地解决上文提到的w e b 应用开发方法的一 些缺陷。 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 i m 和特定平台模型p s m ,同时又能通过映射规则将它们统一起来,以这样的 方式试图去摆脱需求变更所带来的困境。u m l 作为m d a 的基础技术之一用统 一的形式描述面向对象的建模结构,而m d a 的另一个基础m o f ( m e t ao b j e c t f a c i l i t y ) 为模型驱动的元数据管理提供了有力的支持。m o f 可以支持对不同领域 的不同建模结构的定义,而这些由遵从m o f 规范的元模型定义的元数据可以由 m d a 工具统一管理并按照一定的映射规则进行转换。 模型驱动开发具有的优点【1 8 】: 提高生产效率:模型驱动开发使开发者的焦点转移到了p 1 m 的设计和开发 上。所需的p s m 是通过变换自动从p i m 生成的。变换只需要被定义一次,然后 就可以在开发中多次应用这个变换。不必关注目标平台的细节,技术细节会通过 从p i m 的变换自动加入p s m 。因此提高了生产效率。 增强可移植性:可移植性是通过把开发焦点转移到p i m 而获得的。因为p i m 是跨平台的、与平台无关的。同一个p i m 可以被自动变换成多个不同平台上的 p s m 。因此在这个意义上,p i m 层次上定义的所有东西都是完全可移植的。 支持互操作性:从一个p i m 生成的多个p s m 之间可能会有联系。这种联系 被称为桥接器。不同平台间的p s m 不能直接联系。需要把一个平台的概念转换 到另个平台,这称为互操作性。因此还需要生成p s m 之间的桥接器。 便于维护:在模型驱动开发工程中,开发者可以把注意力放在p i m 上。p i m 抽象层次比代码高,而模型是代码的精确表现,因此p i m 起到了软件系统所需 要的高层次文档的作用,便于系统的维护。 鉴于m d a 的上述特点和已有w e b 应用程序开发方法的不足,有人提出了 9 山东大学硕士学位论文 一种基于m d a 的w 曲应用程序开发方法m d h i ) m 1 9 ( m o d e l d r i v e nh y p e r m e d i a d e s i g nm e t h o d ) 。m d h d m 具有不同的p i m s 和p s m s 以及不同模型间的映射规 则来支持w | e b 应用程序的开发。 m d h d m 以o o h d m i s t 2 川为基础,针对w e b 应用程序提出了一种迭代式设 计开发过程。它共由三个步骤组成,分别是概念设计、导航设计和展示设计。对 应的产品分别是:概念模型、导航模型和展示模型。这些模型构成了m d h d m 的 p i m s 。在设计结束后,利用基于m d h d m 的工具可以自动化生成p s m s 和系统 的实现代码。 m d h d m 在吸收了现有开发方法的有点的同时,利用m d a 的特性很好的解 决了他们所具有的缺陷。本文将在m d h d m 的思想方法的基础上,着重研究模 型转换的实现,即p i m s 到p s m s 的转换实现。 2 4 n e t 平台概述 现今,w e b 应用开发所采用的平台主要是微软的n e t 平台和以s u n 、m m 为首的一些厂商所倡导的j 2 e e 平台。经过若干年的发展,这两个平台已经积累 了很多设计经验,一些模式、框架也相继出现。特别是j 2 e e 在这方面做出了巨 大贡献2 1 】【2 2 1 ,w e b 框架( s 仉l t s 嘲,s p r i n g t 2 4 1 2 5 1 ,j s f 【2 6 】,t a p e s t r y 2 7 1 ) 和持久层框 架( j - d 0 1 2 8 1 、h i b e r n a t e 2 9 ,i b a t i s t 3 0 1 等) 的广泛使用大大促成了w 曲应用程序的 分层开发、对象化。传统的静态页面应用、基于页面的应用已经演化为基于组件 的分布式的应用。 2 4 1 n e t 框架 本章给出了博弈论的综述,介绍了博弈论的概念和发展状况,并对典型的博 弈模型进行了分析,介绍了博弈模型的分类。对纳什均衡的概念做了简单介绍, 且对纳什均衡的存在性和多重性问题做了分析。 n e t 框架【3 1 】主要包括:通用语言运行环境c l r ( c o m m o nl a n g u a g er u n t i m e ) 和n e t 框架类库f c l ( f r a m e w o r kc l a s sl i b r a r y ) 以及其它的部分。n e t 框架是一 种全新的开发框架,其核心是通用语言运行环境c l r 这个框架基础。w i n d o w s 下的v i s u a lc + + 、v i s u a lb a s i c 等运行环境、j a v a 虚拟机它们统一的运行支持和 1 0 山东大学硕士学位论文 环境就是c l r 。 n e t 框架类库包含以下内容: ( 1 ) 基础类库( b a s ec l a s sl i b r a r y ) 。提供了一个统一的、面向对象的、层次化 的、可扩展的基础类和程序接口。包括从输入、输出到数据访问等各个方面。 ( 2 ) a d o n e t 和x m l a d o n e t 提供了一组用来连接到数据库、运行命令、返回记录集的类库。 与一般的a d o ( a c t i v e xd a t ao b j e c t ) 相比,a d o n e t 提供了对x m l 的强大支持。 在a d o n e t 中,可以方便地创建和使用x m l 数据,并且支持w 3 cx m l 的 x s l t 、d t d 、x d r 等标准。a d o n e t 对x m l 的支持也为x m l 成为n e t 中 数据交换的统一格式提供了基础。a d o n e t 还引入了d a t a s e t 的概念。利用驻 于内存的数据缓冲区,用统一的程序模型来创建和使用来源于关系型的数据库或 x m l 文档的数据关系视图。它提高了程序的交互性和扩展性,尤其适合于分布 式计算的应用场合。另外,a d o n e t 中还引入了一些新的对象。简而言之, a d o n e t 通过一系列新的对象和程序模型,并与x m l 紧密结合,使得在n e t 中的数据操作十分方便和高效。 ( 3 ) a s r n e t a s r n e t t 3 2 1 是一个用于w e b 开发的全新框架,提供了一个统一的w e b 开 发模型,其中包括开发人员生成企业级w e b 应用程序所需的各种服务;提供了 一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好 的安全保护。 a s r n e t 是一个已编译的、基于n e t 的环境,可以用任何与n e t 兼容的语 言开发应用程序。任何a s r n e t 应用程序都可以使用整个n e tf r a m e w o r k 技术, 其中包括托管的公共语言运行库环境、类型安全、继承等等。 ( 4 ) 窗体表单( w i n d o w sf o r m s ) 传统的基于w i n d o w s 的表单( w i nf o r m s ) 仍然是n e t 中不可缺少的部分。 在n e t 中开发传统的基于w m d o w s 应用软件时,除了可利用的现有技术,还可

温馨提示

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

评论

0/150

提交评论