已阅读5页,还剩60页未读, 继续免费阅读
(计算机科学与技术专业论文)面向电子商务的平台相关模型到代码模型变换的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 摘要 o m g ( 对象管理组织) 提出的m d a ( 模型驱动架构) 将软件开发过程从代码层面 提升到模型层面,强调了模型在开发过程中的核心作用。在m d a 方式的开发过程中, 首先建立与平台无关的业务模型,然后转换成特定中间件的平台相关模型,最后由代码 生成工具将平台相关模型生成应用程序代码和测试框架。将基于m d a 的电子商务应用 框架运用于电子商务系统的开发过程中,可以解决传统方法存在的开发效率低、管理性 和可维护性差等缺点。 本文首先在分析m d a 技术、代码生成技术以及其它相关技术的基础上,针对j 2 e e 平台的电子商务系统,研究了j 2 e e 架构的三层结构的具体实现方案以及电子商务应用 框架的七层结构,并实现了w e b 框架s t r u t s 与v e l o e i t y 的集成。接着根据电子商务应用 框架的结构建立了基于m d a 的应用框架的工作流程,并对工作流程中的模型变换进行 研究,定义了平台无关模型到j 2 e e 平台相关模型的交换以及平台相关模型到相应的代 码模型的变换规则。最后设计实现了基于v e l o c i t y 模板的代码生成器以完成从平台相关 模型生成代码,详细阐述了应用框架模板库中用户界面模板的设计。 本文的主要任务在于应用框架工作流程中的模型变换、代码生成的实现以及用户界 面模板的设计,本文的重点在于e j b 组件模型到e j b 类模型变换、代码生成器的设计实 现以及用户界面模板的设计。 关键词:平台相关模型,m d a ,代码生成,模板,v e l o c i t y ,电子商务 国防科学技术大学研究生院学位论文 a b s t r a c t m d a ( m o d e ld r i v e na r c h i t e c t u r e ) w h i c hi sp u tf o r w a r db yo m g ( o b j e c tm a n a g e m e n t g r o u p ) u p g r a d e ss o f t w a r ed e v e l o p m e n tf r o mc o d el e v e lt om o d e ll e v e l ,a n de m p h a s i z e st h e c o r ef o rm o d e li nt h ep r o c e s so fd e v e l o p i n gs o f t w a r e i nt h ed e v e l o p i n gp r o c e s so fm d a ,t h e f i r s ts t e pi st ob u i l du pt h ep l a t f o r mi n d e p e n d e n tm o d e l ,a n dt h e nt r a n s f o r mi ti n t ot h ep l a t f o r m s p e c i f i cm o d e lf o rc o n c r e t em i d d l ep l a t f o r m ,f i n a l l yg e n e r a t ea p p l i c a t i o np r o g r a mc o d ea n d t e s tf r a m e w o r kf r o mt h ep l a t f o r mm o d e l b ya c o d eg e n e r a t o r i t sn od o u b tt h a tt h ea p p l i c a t i o n f r a m e w o r ko fe - b u s i n e s sb a s e do nm d at ot h ed e v e l o p m e n to fe - b u s i n e s ss y s t e mc o u l db ea g o o dm e t h o dt oe l i m i n a t et h en e g a t i v ee f f e c to ft r a d i t i o n a lw a yi nt h er e s p e c to fe f f i c i e n c y , m a n a g e a b i l i t ya n dm a i n t a i n a b i l i t y t h i sp a p e ri sa t t e m p t e dt or e s e a r c hac o n c r e t er e a l i z a t i o ns c h e m eo fj 2 e et h r e e l a y e r s t r u c t u r ea sw e l l 嬲s e v e n - l a y e ra p p l i c a t i o nf r a m e w o r ko ne b u s i n e s sb a s e do nt h ea n a l y s i so f t e c h n o l o g yo nm d a ,c o d eg e n e r a t i o na n dt h eo t h e rr e l a t i v ep o i n t s a c c o r d i n gt ot h es t r u c t u r e o fe - b u s i n e s sa p p l i c a t i o nf r a m e w o r k ,t h ea u t h o rt r i e st ob u i l du pt h ew o r kp r o c e s sb a s e do n m d aa n ds t u d yt h em o d e le x c h a n g ei nt h i sp r o c e s s ,s ot h a tw ec o u l dm a k ead e f i n i t i o no nt h e t r a n s f o r m a t i o nn o to n l yf r o mp l a t f o r mi n d e p e n d e n tm o d e lt op l a t f o r ms p e c i f i cm o d e lb a s e do n j 2 e eb u ta l s of r o mp l a t f o r ms p e c i f i cm o d e lt oc o r r e s p o n d i n gc o d em o d e l l a s t l y , i no r d e rt o g e n e r a t et h ec o d ef r o mp l a t f o r ms p e c i f i cm o d e l ,w ed e s i g nac o d eg e n e r a t o rb a s e d0 1 1v e l o c i t y t e m p l a t e ,i nw h i c hw ei l l u s t r a t et h ed e s i g no ft h eu s e ri n t e r f a c et e m p l a t eb a n ki n c l u d e di n a p p l i c a t i o nf r a m e t h em a i nt a s ko ft h i sp a p e ri sm o d e lt r a n s f o r m ,c o d eg e n e r a t i o na n dd e s i g no ft h eu s e r i n t e r f a c et e m p l a t ei nt h ew o r k i n gp r o c e s so fa p p l i c a t i o nf r a m e w o r kh e r ew ef o c u so nt h e t r a n s f o r m a t i o nf r o me i bc o m p o n e n tm o d e lt oe j bc l a s sm o d e la sw e l la st h ed e s i g no fc o d e g e n e r a t o ra n du s e ri n t e r f a c et e m p l a t e k e y w o r d s :p s m ,m d a ,c o d eg e n e r a t i o n ,t e m p l a t e ,v e l o c i t y , e - b u s i n e s s i i 国防科学技术大学研究生院学位论文 图目录 图l 软件开发的过程8 图2 代码驱动软件开发过程9 图3 模型驱动开发途径1 0 图4m d a 软件开发开发生命周期11 图5m d a 开发步骤1 2 图6 e j b 中使用f a c a d e 模式的处理流程1 3 图7 用d a o 对象获取数据1 4 图8 代码生成的处理过程一1 5 图9x m l ) ( $ l t 代码生成的处理流程1 6 图1 0m v c 模式的处理流程2 1 图1 1s t r u t s 框架的结构和处理流程2 1 图1 2 m o d e l2 x 的结构和处理流程2 3 图1 3s t r u t s 与v e l o c i t y 的集成2 4 图1 4 v e l o e i t y v i e w s e r v l e t 的类图一2 5 图1 5 基于m d a 的电子商务应用框架的工作流程2 9 图1 6 标记法实现p i m 到p s m 的变换3 0 图1 7c u s t o m e r 登录界面的s t r u t s 标记3 2 图1 8c u s t o m e r 实体的内部视图3 6 图1 9 业务委托的处理流程3 7 图2 0 代码生成器的工作流程3 9 图2 l 代码生成器的体系结构4 0 图2 2i o m 中类的关系4 1 图2 31 0 m 作为数据模型的处理流程4 2 图2 4i o m 代码生成器中i o m c l a s s 的结构4 3 图2 5p s m 作为数据的处理流程4 4 图2 6p s m 代码尘成器中i o m c l a s s 的结构4 4 图2 7 界面模型中接口的关系4 9 图2 8 页面控件类的结构关系。5 0 图2 9 页面组件类的结构关系5l 图3 0 窗体类的结构关系5 2 图31h t m l 页面类的结构关系5 3 图3 2 系统中模板之间的关系5 4 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献坶巴在论文中作了明确的说明并表示谢意 学位论文题目: 耍崮量量直焘垩垒担送搓型到毡受搓型变挂数珏窀圭塞理 学位论文作者签名:叠塾 日期:2 。年j 月,2 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以呆用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保蚤学位论文在解密后适用本授权书) 学位论文题目: 耍自电王直垒壬垒担羞拦型到氆堡搓型变抵鲤珏窀盏塞理 学位论文作者签名:i 遂运! ! 日期: 】。卒年,月膳日 作梢导教师辫:丕避良慨如乒钏月,2 a 国防科学技术大学研究生院学位论文 第一章绪论 1 1 课题背景及意义 计算技术经历了“以机器为中心一一以应用为中心一一以企业为中心”的变化。对 企业级软件需求的不断增长给以企业为中心的计算施加了很多压力( 例如,对生产成本 的压力、对质量的压力、对全寿命期的压力等) 。这些压力促进了软件开发方法的进步, 因此产生了一系列新的趋势性技术,如,基于组件开发、设计模式、中间件、说明性规 约、企业架构、企业应用集成、契约式设计【3 j 。o m g ( 对象管理组织) 提出的m d a ( 模 型驱动架构) 【1 l 开发方法将这些技术整合在一起,为提高软件开发效率、增强软件的可 移植性、协同工作能力和可维护性以及文档编制的便利性提供了解决之道。 o m g 的构想是将目前的代码层级提高更高的抽象层级一一分析模型级,把针对特 定计算平台的编码工作交由机器自动完成,这样,业务逻辑与实现技术被成功解耦,两 者相对独立变化,因此模型的价值在包容现有技术条件下被最大化。m d a 建立在o m g 核心建模标准的基础上,它对语言、供应商和中间件是中立的。这个架构的核心 2 1 建立 在u m l ( 统一建模语言) 、m o f ( 元对象设施) 和c w m ( 公共仓库元模型) 上。 目前已开发了多个核心模型:一个表示企业计算,包括组件结构和事务交互;一个表 示实时计算,包括资源控制的特殊要求;还将增加更多模型来表示其他专门的环境。每 个核心模型都独立于任何中间件平台。然而,总数不会很大,因为每个核- t k , 模型都表示 所属类别中所有平台的共同特性。无论最终目标是c c m ( c o r b a 组件模型) 、e j b ( e n t e r p r i s ej a v a b e a n s ) 、m i c r o s o f tm t s 还是n e t 体系结构,或者其他基于组件或基 于事务的平台,构造基于m d a 的应用程序,首先,使用u m l 【5 ”】创建一个平台无关 的、与适当核心模型一致的应用程序模型。然后,把这个平台无关的应用程序模型转化 成针对特定中间件的平台相关模型【1 4 3 4 川,如c c m 、e j b 或n e t 。最后就是从平台 相关模型生成应用程序代码 4 1 和测试框架。 互联网和电子货币为电子商务的发展提供了必要条件。电子商务加速了数字化进 程,一个全新的、充满机遇与挑战的数字化世界正逐渐演变为现实越来越清晰,几乎 触手可及。电子商务是采用数字化电子方式进行商务数据交换,开展商务业务活动。由 于电子商务是在i n t e m e t 等网络上进行的,因此。网络是电子商务最基本的构架。从网 络环境来看,电子商务所强调的是在网络计算环境下的商业化应用,不仅仅是硬件和软 件的结合,也不仅仅是电子交易,而是把买家、卖家、厂商和合作伙伴在因特网( i n t e r n e t ) 、 企业内部网( i n t r a n e t ) 和企业外部网( e x t r a n e t ) 结合起来的网络应用体系。电子商务 系统就是商务活动的各方,包括商家、消费者、银行或金融机构、信息公司或证券公司 和政府等,利用计算机网络技术全面实现在线交易电子化的过程。据统计,2 0 0 0 年全球 电子商务交易量达到2 5 0 亿美元,2 0 0 2 年增至3 0 0 0 亿美元以上。2 0 0 4 年估计这个数字 第1 页 国防科学技术大学研究生院学位论文 将达到5 0 0 0 亿美元。电子商务同时也是一场革命,它打破了时空的局限,改变了贸易 形态。 电子商务具有以下特点: 电子商务通过广泛响应者使交易更便利。 包括通信在内的事务处理瞬时完成。 客户被赋予更大的权利。 客户群体的出现。 更强的竞争力。 电子商务为企业的发展创造了机遇。电子商务不但带动传统产业的升级,为企业开 辟了新的成长途径,而且提高了企业核心竞争能力,特别是国际竞争能力。面对电子商 务的迅猛发展,许多企业希望能建立自身的电子商务系统。然而,采用传统方法开发电 子商务系统,需要编写大量的业务逻辑代码和用户界面代码。这种开发过程非常耗时, 容易出错,管理性和维护性差。为了满足不同企业的需求,软件开发人员需要重新为它 们进行系统开发,原来所写的那些代码变成一堆废物,开发人员进行的劳动几乎是简单 而重复的。如果系统需要升级或者业务模式发生变化,不是添加一些代码就能解决问题 的。所以,如何快速、高效、易管理和维护地开发出满足不同企业需求的电子商务系统, 是开发人员迫切需要解决的问题。 为了解决上述问题,首先想到的是建立一个应用框架。框架最大的好处是重用。框 架能重用设计,它提供了可重用的抽象算法及高层设计,能将大系统分解为更小的构件, 而且能描述构件之间的内部接口。这些标准接口使在已有的构件基础上通过组装构建各 种各样的系统成为可能。框架还能重用设计,所有开发人员如果都用框架的思想来分析 事务,就能将它划分为同样的构件,采用相似的解决方法,使采用同一框架的分析人员 之间能进行沟通。应用开发人员利用框架进行应用系统的开发,可以减少许多重复性的 工作,从而提高开发效率。电子商务应用框架为上述问题提供了解决方案。方案的实现 是由丌发平台【1 8 】来完成。 将m d a 方法运用到电子商务应用框架中,可以使开发效率极大提高,而且使系统 具有很好的可维护性和可重用性。基于m d a 的电子商务应用框架是通过建立详细的电 子商务业务模型,接着将业务模型转换成具体的中间件平台( j 2 e e t n 】、c o r b a 、n e t 等) 模型,并运用代码生成工具来生成最终的应用程序代码。 本课题研究的电子商务应用框架是以j 2 e e 平台作为中间件平台的。研究的主要内 容是如何由j 2 e e 平台的模型生成代码( 包括用户界面代码、e j b 代码o ”和数据库代码) 。 1 2 研究现状 o m g 将m d a 思想推出不久,一些i t 巨头们i b m 、o r a c l e 、i o n a 等都急忙声称 在自己的企业级软件解决方案中融入了m d a 思想,两大建模工具厂商r o t i o n a l 和 t o g e t h e r ( 已经分别被i b m 和b o r l a n d 公司收购) 也声明自己的产品开始加入对m d a 第2 页 国防科学技术大学研究生院学位论文 的支持,国内e r p 软件领袖企业之一的金蝶软件在其b o s 基础平台的发布会上说b o s 系统成功实现了m d a 。关于m d a 的话题如火如荼地繁荣起来。 m d a 主要包括两方面的内容: 统一的管理元数据的框架 为了统一分布式异构系统之间元数据的共享问题,m d a 的一个主要目标是建立一 个统的管理元数据的框架。m d a 是通过基于m o f 的四层元模型框架结构来管理元数 据 2 6 , 2 7 ,从而达到元数据的定义、交换、存储和共享,在更高的抽象层次上实现了异构 系统之间元数据的共享和交换,实现了异构系统之间的互操作。 可执行的模型和代码自动生成 力图使模型成为可执行的,必须使建模语言具有精确定义的语义p ”。这里所谓的语 义指的是软件模型在运行时的“解释”。代码自动生成简单说就是从模型自动生成语 义上等价的程序代码,当然m d a 工具也提供手工修改所生成的代码的能力,但这里需要 注意的是:第一,所生成的代码中通常会包含一些与模型结构方面紧密相关的部分“不 可触动”的代码;第二,这种修改有可能意味着模型不能被重新创建。但是出于对生成 的代码效率等诸多方面因素的考虑,手工修改所生成代码的能力还是必需的。 目前,针对m d a 代码自动生成方面的研究,可以总结为两个方面:一方面是针对 应用领域实现m d a 的解决方案,开发各种m d a 的通用工具。一方面是针对特定领域 定义转换规则,将模型自动转换成代码。由各种c a s e 工具来实现。 1 2 1 m d a 工具 主要的m d a 工具有:a r c s t y l e r 2 8 1 、o p t i m a l j 2 9 1 和a n d r o m d a 3 0 1 。 a i c s t y l e r 是德国i n t e r a c t i v eo b j e c t s 公司的产品,遵循m d a 规范,纯j a v a - 丌发, 跨平台。a r c s t y l e r 支持将一种模型映射到其他模型、源代码、脚本( 如测试、编译、部 署脚本) 。同时还能为现在流行的一些i d e 环境生成对应的工程文件。模型转换规则被 捆绑在一起称为m d a c a r t r i d g e s ,它是a r c s t y l e r 的核心特性之一,架构师可以定义自 己的模型转换规则,并分发给项目组成员使用,这给开发人员以极大的灵活性。a r c s t y l e r 支持j 2 e e 和n e t 平台。它支持定义和管理功能强大的模型转换规则,能够为多种平台 技术定义和维护m d a c a r t r i d g e s ,具备完备的开发、部署和测试功能。使用a r c s t y l e r 开发应用程序与传统的以代码为中心的开发模式相比,最大的区别就是它不再把u m l 仅仅当做是“代码表示工具”。a r e s t y l e r 通过使用j m i ( j a v am e t a d a t ai n t e r f a c e ) 使得存储 模型的仓库能够被m d a c a r t r i d g e s 访问并转换为代码。a r c s t y l e r 自定义了一套a e c e s s o r 框架,支持w e b 客户端的建模、检验、自动代码生成、部署与编译、运行与调试。a r c s b r l e t 使用标记法指导模型转换,平台相关的一些信息被输入到m d a c a r t r i d g e s 中。 o p t i m a l j 是c o m p u w a r e 公司的产品。通过整体实旌o m g 制定的m d a ,0 p t i m a l j 能够使用固定的模式将典型的业务模型自动转化成为实用的应用程序,将m d a 延伸成 为应用开发和集成领域的实用解决方案。o p t i m a l j 针对于j 2 e e 平台,设计人员无需深 第3 页 国防科学技术大学研究生院学位论文 入了解j 2 e e 的技术特性就可以充分利用其全部组件,完全根据业务的实际需要来开发 应用程序,而无需再为实施和编程中的琐碎的细节而困扰,简化了原本十分复杂的基于 j 2 e e 的应用程序开发过程,使开发工作紧扣业务中最迫切的需求。从p i m 转换到p s m , 从p s m 转换成代码,作为m d a 设计思想的重要部分。o p t i m a l j 选取了两大类模式来指 导这两次转换。其中t r a n s f o r m a t i o n 模式用于不同抽象层次模型的转换( 这个模式分成 两小类:t e c h n o l o g y 模式,用于业务模型到j 2 e e 平台模型的转换;i m p l e m e n t a t i o n 模式, 用于应用程序代码生成) :f u n c t i o n a l 模式用于在一个模型内部进行转换。f u n c t i o n a l 模 式可以被定义为模板,模板包含预定义的功能特性,开发人员可以拷贝并粘贴到自己的 程序中来加快开发速度、提高重用性、降低出错的几率。f u n c t i o n a l 模式在每个建模的 层次上均存在,包括:d o m a i n 模式,简化复杂的u m l 建模过程;a p p l i c a t i o n 模式的作 用和d o m m n 模式的作用相同,只不过用在j 2 e e 平台模型上;c o d e 模式应用在代码模 型上来描述实现策略,它为j 2 e e 平台模型中没有直接定义的组件生成代码。 a n d m m d a 是一个开源的m d a 生成器。它将u m l 模型输出为x m i 【9 1 ,使用插件 将x m i 转换为e j b 或者其它形式的代码。由多个x m l 文件组成的模型,可以生成多个 模型的代码】,在代码生成时进行模型确认。严格地来说,a n d r o m d a 并不是一个建模 工具,只是在模型和代码之间建立起一道桥梁。 还值得一提的是e m f p “,它是一个开放源代码的框架,直接嵌入到e c l i p s e 编辑器 中,目标是实现m d a 的开发。e m f 生成的代码支持标准的创建、获取、更新和删除 操作,而且还支持元数据约束、复杂关系和继承结构、屏蔽定义以及一套属性描述。生 成的代码还提供通知、参照完整性和可定制的x l 诅i 持久性。 除了上面介绍工具之外,还有一些小的、但很实用的m d a 生成器,例如,i q g e n 、 m d e 。 1 2 。2c a s e 工具 主要的c a s e 工具有:r a t i o n a lr o s e l “j 、a r g o u m l 、t o g e t h e r 。 r a t i o n a lr o s e 是当今业界主导产品,是分析和设计面向对象软件系统的强大的可视 化工具,可以用来先建模系统再编写代码。它把u m l 和谐地集成进面向对象的软件r 丌 发过程中。不论是在系统需求阶段,还是在对象的分析与设计、软件的实现与测试阶段, 它都提供了清晰的u m l 表达方法和完善的工具,方便建立起相应的软件模型。它主要 关注于与多种开发环境无缝集成,能生成各种代码和数据框架等。与其他u m l 工具相 比r o s e 更关注于其产品化。它具有很多特点:方便地制图及纠错:管理模型的信息, 修改具有关联性:在模型元素之间易于导航;支持多用户协同工作;支持代码框架生成: 支持逆向工程,即由代码生成模型。 t i g r i s 公司的a r g o u m l 是一个开源项目。a r g o u m l 是一个强大的、容易使用的、 交互的、图形设计环境,它支持面向对象软件应用中文档、系统结构和业务模型的设计。 a r g o u m l 的使用者可以是系统分析员,系统设计师,软件开发人员,需求分析人员等, 第4 页 国防科学技术大学研究生院学位论文 可以对软件的应用进行分析、设计和丌发。 t o g e t h e r 充分利用u m l 搭建正确的架构,以便满足业务目标,通过集成u m l 能力 的方式扩展了开发框架,简化了构建软件的复杂过程。t o g e t h e r 使用同步的模型与代码, 允许进行更加有效的开发小组沟通与协作。t o g e t h e r 提供了强大的、可以定制的文档生 成能力,其中包括多种文档格式与定制模板的能力。t o g e t h e r 支持标准的模式,同时也 提供了更改现有模式、创建新模式的能力。在t o g e t h e r 技术之中的大量重构特性验证所 有的系统变化都被正确地传送到整个应用。现在t o g e t h e r 能与第三方的产品集成,如 j b u i l d e r 、w e b s p h e r e 、e c l i p s e 。在e c l i p s e 环境中,开发者可以利用t o g e t h e r e d i t i o n f o r e c i i r ,s e 之中的领先的建模、设计与质量保证功能,快速构建高质量的企业应用。通过在 e c l i p s e 本地开发用于t o g e t h e r e d i t i o n f o r e c l i p s e 的用户接口,用户可受益于紧密的集成, 并利用在同一个工具之中两种技术的优势。 运用c a s e 工具建立相应的模型之后,可使用软件直接产生关于此模型的代码框 架,以后的阶段就是往代码框架中添加代码。 1 2 3 分析比较 关于m d a 工具和c a s e 工具的差异,o m g 体系结构委员会成员之一、m d a 的研 发成员之一f r a n k e l 是这样描述的:m d a 的本质不是代码生成,尽管代码生成被认为是 主要成就。m d a 也可以通过构造能直接执行模型的虚拟机来实现。m d a 工具和c a s e 工具主要存在两方面的差异。首先,在c a s e 工具时代,需要为系统实现框架和业务流 程两方面建模,而目前的情况是已有许多成熟的流行实现框架,因此只需要集中精力于 业务流程即可,不必关心系统实现框架。其次,从p i m 到p s m 的转换已有许多相关的 成熟模式可以加以利用,这些模式可以把一些通常的业务模型转化为特定平台上的一些 成熟的实现框架。在c a s e 工具时代模式概念还不成熟并且也没有被广泛理解,使用 c a , s e 工具不仅需要建模阊题域,还必须戗建一些实现模式,这使得整个系统的抽象过 程过于复杂。m d a 工具则是建筑在成熟的实现模式之上的产物,它借助于成功的u m l 技术和成熟的模式技术简化了整个系统的抽象过程,提高了抽象层次。无论c a s e 工具, 还是m d a 工具存在共同的缺陷:创建的模型的互换性,也就是说,某个工具创建的模 型不能运用到其它工具上。原因在于每个工具都有自己的数据库来保存模型信息,这些 存储形式不是标准格式的。尽管m d a 还不是很成熟,但已经在某些领域取得了成功。 随着对m d a 的不断完善,它的应用范围会越来越广。 1 3 课题的主要工作 本课题的研究内容包括四个方面: m d a 技术以及与电子商务应用框架的相关技术的研究 在这方面主要研究内容包括软件丌发生命周期、代码驱动开发过程和模型驱动开发 过程的差别以及m d a 的开发方法,j a v a 企业应用的实例电子商务应用框架的三层结构 第5 页 国防科学技术大学研究生院学位论文 中采用的设计模式,代码生成的原理和方法,用户界面的表现技术以及建立应用框架的 理论依据等。 电子商务应用框架的研究 在进行这方面的研究时,首先,分析了两种典型的w e b 框架的设计模式,决定采 用s t r u t s 框架作为电子商务的w e b 框架,接着对s t r u t s t 7 , 15 , 1 7 1 框架的视图表现技术j s p 进 行分析,指出了它的不足,并对其它解决方案进行尝试,最后决定采用v e l o c i t y 8 】模板 替代j s p ,实现与s t r u t s 框架的集成。接着,为电子商务应用框架三层结构的其它两层 的实现技术提出了选择。最后,充分考虑了设计电子商务应用框架所涉及的几个问题, 分析出基于m v c 模式的电子商务应用框架的七层结构。 基于m d a 的电子商务应用框架中模型映射的设计 这方面的内容为:根据电子商务应用框架的结构,建立了电子商务应用框架的工作 流程。将工作流程划分两个阶段,也就是两次变换过程。业务模型( 平台无关模型) 到 关系模型、e j b 模型、w e b 模型( 这三个模型统称为平台相关模型) ,以及这三个模型 到对应的代码模型的变换规则进行定义。这些规则定义有繁有简,是针对于电子商务这 个特定领域,能满足电子商务应用框架的要求。重点在于平台相关模型到代码模型的变 换。 基于m d a 的电子商务应用框架中平台相关模型到代码模型映射的实现 使用变换规则就能对模型进行标记,其表现形式仍然是可视的u m l 模型,存储形 式为x m i 文件,生成代码要利用代码生成工具获取x m i 文件中的相关信息。所以这方 面的内容包括:设计实现一个基于v e l o c i t y 模板的代码生成器,举例说明了生成过程。 另外,电子商务应用框架作为一个通用框架需要适用于大多数业务领域,设计通用用户 界面模板是构建应用框架的一项重要工作。在这个实现阶段,详细阐述了用户界面模板 的设计。 1 4 论文结构 本文共分六章。各章的内容概述如下: 第一章为绪论。介绍了本课题的研究背景、意义以及研究现状,阐明了本课题的研 究内容和课题研究过程中所作的工作。 第二章为相关技术理论。首先介绍了m d a 的相关技术,主要是传统的软件开发过 程、m d a 基本术语和m d a 开发方法。接着介绍了电子商务应用框架将要运用的其它 技术,如设计模式、代码生成方法以及表现层技术。最后提出了建立电子商务应用框架 的基本思想,即处理模式理论。 第三章为电子商务应用框架。针对基于j 2 e e 技术路线的w e b 应用的三层架构,提 出了各层的实现方案。详细说明了符合m v c 模式的s t r u t s 框架与v e l o c i t y 模板的集成, 解决了j s p 作为s t r u t s 框架视图存在的问题。研究了电子商务应用框架的层次结构。 第四章为平台相关模型到代码模型映射的设计。基于m d a 的电子商务应用框架的 第6 页 国防科学技术大学研究生院学位论文 工作流程中有两次重要的变换:平台无关模型到平台相关模型的变换和平台相关模型到 代码模型的变换。本章首先简要说明了第一次变换,接着对第二次变换的规则进行了详 细定义,这是本课题的重要内容之一,其中e j b 组件模型到e j b 类模型的变换规则定 义是本课题的难点。 第五章为平台相关模型到代码模型映射的实现。实现一个基于v e l o c i t y 的代码生成 器来完成系统代码的生成工作。详细说明了电子商务应用框架中用户界面模板的设计, 使模板作为用户界面的设计得以实现。本章也是本课题的重要内容之一。 第六章为结束语,对目前的工作进行总结,并对今后的工作进行展望。 第7 页 国防科学技术大学研究生院学位论文 2 1 1 软件开发过程 第二章相关技术理论 2 1m d a 技术 软件开发是一个求解问题的过程,其中需求可以被认为是相关领域有待解决的问 题。首先捕获需求、理解所面临的问题,然后提出问题的解决方案,最后实现它。软件 开发的过程如图1 所示: 图1软件开发的过程 软件开发的生命周期如下: 需求捕获:来自客户的需求定义了一个系统需要做什么,最终的结果是一个需 求模型,它描述了面临的问题以及解决方案需要实现的功能。它是对系统的概 念性描述,因为它只关注客户存在的问题。 分析:分析和理解需求,产生分析模型,它抽象地描述解决方案如何实现需求 模型,是对系统的规约性描述,因为它同时关注问题和解决方案。 设计;决定系统如何具体实现分析模型,产生设计模型,它描述对分析模型具 体的、真实的实现,它也是对系统的规约性描述。 实现:真正地实现系统,产生实现模型。它是对系统的实现性描述,因为它关 注解决方案的具体实现。 测试:验证系统是否满足了原始的需求。 部署和发布:使得系统对用户可用。 根据软件过程的驱动方式,软件丌发方法分为两类: 代码驱动 模型驱动 第8 页 国防科学技术大学研究生院学位论文 代码驱动 传统的软件开发过程是代码驱动的。代码驱动的软件开发过程如图2 所示: 厂、nn 、1i 、11 一11 , 、 ,一、 、u 、u , 、u ,、 、j ( 需求捕获 叫需求分析卜叫设计p 叫编码- 叫测试卜叫部署发布) li|o|7 图2代码驱动软件开发过程 在软件开发过程中,无论是采用增量开发还是迭代开发,或者是传统的瀑布式开发 途径,文档和相关的设计图表都是在前三个阶段中产生。需求分析往往使用文本和图的 方式来描述,其中的图经常采用u m l 图,如用例图、类图、交互图、活动图等。当编码 开始的时候,前三个阶段产生的文档和相关图片就迅速失去了它们的价值。随着编码阶 段的继续进行,图片和代码之间的关联逐渐减弱甚至消失,它们不再是对代码的精确描 述,或多或少地成为了无关的图片。随着时间的推移,系统不断地被修改,文档、设计 图表和代码之间的距离就越来越疏远。 极限编程x p ( e x t r e m ep r o g r a m m i n g ) 现在迅速地流行起来,一个主要的原因就是它 承认了代码是真正驱动软件开发的力量这个事实。在开发过程中,真正产出效益的阶段 是编码阶段和测试阶段。极限编程只能够解决软件开发中的部分问题:当一个团队初 始开发一个系统的时候,保存在他们大脑中的设计思想足以使他们理解这个系统。问题 是当第一个版本发布之后,团队发生变化使系统维护变得极其困难。 所以,代码驱动的弊端是显而易见的,开发效率低下。无论是编写文档,还是系统 维护都是相当耗时的。然而这两个阶段并不产生代码,但这两个阶段又是必要的。 模型驱动 在代码驱动的开发过程中,模型是基于书面的一项活动,产生了模型间的同步问题, 即应用系统蓝图和应用系统本身。因为应用系统被更新而模型没有变化,模型仅仅作为 文档是没有用的。建模面i 临的问题是关键是在建模和开发问的鸿沟间搭建桥梁,使建模 构成整体所需要的一部分。m d a 是旨在解决此问题的框架,在此框架中由模型驱动开 发进程。模型在m d a 中居于核心地位,贯穿着软件开发过程的始末。模型驱动开发途 径解决问题的过程如图3 所示: 第9 页 国防科学技术大学研究生院学位论文 ,一磊赢、 表示 图3模型驱动开发途径 m d a 将软件系统的模型分离为平台无关模型( p i m ) 和平台相关模型( p s m ) , 同时又能通过变换规则将它们统一起来,以这样的方式试图去摆脱需求变更所带来的困 境。在m d a 框架中,首先使用平台无关的建模语言来搭建平台无关的模型p i m ,然后 根据特定平台和实现语言的映射规则,将平台无关模型变换成平台相关模型,最终生成 应用程序代码和测试框架。 m d a 是一个开放的,中立于软件供应商的架构,它广阔地支持不同的应用领域和 技术平台,能够成为应用领域和具体技术平台之间的杠杆。在m d a 开发途径中,平台 无关模型代表对需求的建模,平台相关模型代表应用具体技术后的模型,这使得m d a 成为需求和技术之间的杠杆:它们各自的改变都可以是相互独立的,不会造成业务逻辑 和实现技术的紧密藕合,同时m d a 又可以通过变换来弥补它们之间的鸿沟。m d a 开 发途径使得系统能够灵活地被实现、集成、维护和测试,系统的轻便性、互操作性和可 重用性都是可以长期保持的,能够应对未来的变化。m d a 远景定义了一个详细说明和 构建系统的新方法,用u m l 作为基础建模。m d a 扩展了u m l 以前仅仅是漂亮图片的 作用。 2 1 2m d a 基本术语 平台无关模型 平台无关模型( 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 ) 是具有高抽象层次、独立于任何 实现技术的模型。平台无关模型描述支撑某些业务的软件系统。在平台无关模型中,对 系统的建模视角是“系统如何才能最好的支撑业务”。平台无关模型包含应用系统的信 息结构和行为以及不同数据结构间的关系。平台无关模型是一个业务为中心的模型并调 整业务信息的集成,不包含实现和代码细节,例如不包含实现应用系统所必须的技术类。 开发和完善平台无关模型时,设计人员以声明方式定义业务规则,例如初始值的设嚣和 级联删除约束。平台无关模型的所有定义在低层的应用模型和实际的代码中被重用和继 承。设计人员在平台无关模型定义的内容越多,从平台无关模型自动生产的内容越多。 第1 0 夏 国防科学技术大学研究生院学位论文 平台相关模型 平台相关模型( p l a t f o r ms p e c i f i cm o d e l ,p s m ) 是由平台无关模型经过变换得到的、 对应于某种特定平台的模型。平台相关模型也描述了,并包含了最终实现平台的全部知 识。例如,e j bp s m 是用e j b 结构表述的系统模型。它通常会包含e m 特有的术语, 比如“r e m o t ei n t e r f a c e ”、“e n t i t yb e a n ”、“s e s s i o nb e a n ”等。平台无关模型可以被变换成 一个或几个平台相关模型,为每个特定的技术平台生成一个单独的平台相关模型。 模型变换 模型变换是一种模型根据某些规则变化成另一种模型的过程。变换可以是不同抽象 层次的模型变化,也可以是同一层次的模型变化。由一种模型变换成另一种模型后,模 型所包含的信息会变多。m d a 软件开发过程中一般有两次变换:平台无关模型到平台 相关模型的变换和平台相关模型到代码模型的变换。 2 1 3m d a 开发方法 m d a 开发生命周期如图4 所示 t竺鲨:l 图4m d a 软件开发开发生命周期 m d a 丌发周期和传统的生命周期看起来没有太大不同。它们都具有相同的开发阶 段,主要的区别就是: 各个阶段的设计工件是不相l 司的,m d a 的设计工件是正式的精确模型,它们 能够被机器所理解。 传统上,从模型到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 维修工上岗试题B及答案(液压与气动)
- 体育教师教学基本功比赛理论考试试题及答案
- 生物安全法试题题库及答案
- 2026年江苏省考《申论》真题及答案解析(A卷)
- 2026年不动产测绘员试题(附答案)
- 2025年计算机技术与软件专业技术资格(水平)考试高级网络规划设计师真题及答案解析
- 供应链管理部门供应商绩效评价表
- 机械臂维护与技术支持专业服务绩效考核表
- 催促关键项目阶段验收交付的通知函件3篇
- 餐饮连锁账款支付延迟正式催办函(3篇)
- 直播营销与运营 课件 项目八 数据分析
- SEMI S2 半导体制造设备安全指南培训课件
- 肿瘤放疗科普宣传课件
- 红旗汽车介绍教学
- 2026年高校教师资格证之高等教育学考试题库(各地真题)
- TCS-营养健康产品循证研发技术规范
- 无人机在交通设施巡检中的应用技术规范
- 全科医学科高血压患者自我管理培训教程
- 2024年起重吊装作业安全指导手册
- 2024北师大版一年级数学上册《总复习》教案
- 行政检察优化法治化营商环境问题研究
评论
0/150
提交评论