(计算机软件与理论专业论文)基于web应用框架的平台相关模型及其映射规则.pdf_第1页
(计算机软件与理论专业论文)基于web应用框架的平台相关模型及其映射规则.pdf_第2页
(计算机软件与理论专业论文)基于web应用框架的平台相关模型及其映射规则.pdf_第3页
(计算机软件与理论专业论文)基于web应用框架的平台相关模型及其映射规则.pdf_第4页
(计算机软件与理论专业论文)基于web应用框架的平台相关模型及其映射规则.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机软件与理论专业论文)基于web应用框架的平台相关模型及其映射规则.pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 基于w e b 应用框架的平台相关模型及其映射规则 摘要 随着对w e b 应用开发效率及质量要求的不断提高,开发工作的 难度不断增加在w e b 应用开发过程中存在很多直接影响开发的 因素,主要包括开发平台及技术灵活多样,导航关系复杂,而且需 求的多变性要求应用系统具有良好的可扩充性及可维护性目前针 对以上问题已经提出了若干w e b 应用开发方法,在一定程度上提 高了系统的质量同时模型驱动架构( m d a ) 所倡导的提升应用 开发层次、代码自动生成的方法提高了开发效率并且增加了应用模 型复用程度 本文根据模型驱动架构的基本思想和理论,参考目前广泛使用 的各种开发方法及w e b 应用框架,抽取这些框架的公共特征,提 出了一种以系统任务为核心的平台相关模型框架( t o p s m 框架) 此框架包含静态模型、行为模型和界面模型的集合,并且具有良好 结构性与可扩充性同时本文提出了a u i p i m 平台无关模型到此 平台相关模型的映射规则。在t o p s m 框架的基础上按照此模型映 射规则,由平台无关模型得到平台相关模型该模型的建立为代码 自动生成提供平台相关信息支持并且使目标应用具有较高的可扩 充性及可维护性另外该模型支持w e b 应用界面模型信息的描述。 在完整表达应用信息的同时使w e b 应用的静态模型、行为模型、 界面模型分离,体现了应用的良好体系结构结构各种模型之间的 低耦合简化了模型到代码的转化算法,进而简化代码生成器的构 造 本文还提出了从平台无关模型到平台相关模型的转换方法本 方法采用了与本课题前期工作中以界面模型元素为线索不同的模 山东大学硕士学位论文 型转换方法,而是根据不同的层次按照静态模型、行为模型、界面 模型分别进行转换。使用平台无关模型信息填充平天相关模型框 架,使平台相关模型信息更适合特定运行框架下w e b 应用的自动 生成 本文同时给出了模型映射规则的形式化表达方式根据映射规 则将平台无关模型作为模型映射器的输入,将平台相关模型作为输 出,为应用代码的自动生成提供平台相关信息支持通过此形式化 表达方式,为使模型映射器与映射规则相分离、映射规则的可编辑 提供了基础。 本文为实现平台无关模型到平台相关模型的映射提供了一种方 法,改进了原有工作直接由平台无关模型到代码的映射方法。为今 后向更多不同平台下的目标转化提供了一种解决方案在开发过程 中体现了平台无关模型的可复用性特点,提高了应用开发的抽象层 次因此在一定程度上简化了w e b 应用的开发过程,减少了w e b 应用的开发成本同时保证目标应用具有良好的可维护性及可扩充 性 关键词:平台相关模型框架、基于w e b 应用框架的平台相关模型、 任务为核心的平台相关模型、模型映射规则、模型映射方法、代码 生成 山东大学硕士学位论文 w e ba p p l i c a t i o nf r a m e w o r kb a s e d p l a t f o r ms p e c i f i cm o d e la n di t sm a p p i n g r u l e s a b s t r a c t b e c a u s et h ew e ba p p l i c a t i o ni s r e q u e s t e dm o r ed e v e l o p m e n t e f f i c i e n c ya n dh i g h e rq u a l i t y ,t h ed e v e l o p m e n ti sh a r d e r t h e r ea r e m a n yc h a l l e n g e s i n d e v e l o p m e n tm e t h o d s u c h a s d e v e l o p m e n t p l a t f o r m a n dt e c h n o l o g ya r e v a r i a b l e ,n a v i g a t i o n a lr e l a t i o n s a r e c o m p l e xi nw e ba p p l i c a t i o n ,a n dt h ev a r i a b l er e q u i r e m e n t sr e s u l ti n t h es t r u c t u r eo fs y s t e mh a sm o r ee x t e n s i b i l i t ya n dm a i n t a i n a b i l i t y t h e r ea r em a n yw e b a p p l i c a t i o nd e v e l o p m e n tm c t h o d o l o g i e st oc o p e w i t hs u c hq u e s t i o n s a n dt h em a i ni d e a o fm d at h a ti m p r o v et h e l e v e lo fd e v e l o p m e n ta n dc o d eg e n e r a t i o nm e t h o di m p r o v et h e d e v e l o p m e n te f f i c i e n c ya n dm o d e lr e u s a b i l i t y t h i sp a p e ri sb a s e do nt h em e t h o d o l o g yo fm d a ,a n di tr e f e r st o t h e w e l lu s e dw e ba p p l i c a t i o nf r a m e w o r k sa n dd e v e l o p m e n tm e t h o d i ta b s t r a c t st h ec o m m o np r o p e r t i e so ft h ef r a m e w o r k s ,t h e np r o v i d e d at a s ko r i e n t e dp s m ( p l a t f o r ms p e c i f i cm o d e l ) f r a m e w o r k ( t o - p s m f r a m e w o r k ) t h i sf r a m e w o r kh a sb e t t e rs t r u c t u r ea n de x t e n s i b i l i t y b a s e do ut h i sf r a m e w o r kt h i sp a p e rp r o v i d e st h em a p p i n gr u l e st o s u p p o r tm a p p i n gf r o ma u i p i mt ot o p s m t h et o - p s mp r o v i d e p l a t f o r ms p e c i f i ci n f o r m a t i o nt ot h ec o d eg e n e r a t i o na n dt h ew e b a p p l i c a t i o nw i l lh a v em o r ee x t e n s i 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 s t o - p s ma l s oh a st h ea b i l i t yt oe x p r e s st h ei n t e r f a c ei n f o r m a t i o no f w e ba p p l i c a t i o n b e c a u s eo ft h es e p a r a t i o no fs t a t i cm o d e l ,b e h a v i o r h i 山东大学硕士学位论文 m o d e la n di n t e r f a c em o d e ii nt h et o - p s m t h ea r c h i t e c t u r eo ft h e w e ba p p l i c a t i o ni sw e l lf o r m e d b e c a u s et h el o o s ec o u p l eo ft h e d i f f e r e n tm o d e l si np s m ,i tw i l ls i m p l i f yt h em e t h o do fm a p p i n gf r o m t o - p s mt oc o d e ,a n ds os i m p l i f yt h es t r u c t u r eo fc o d eg e n e r a t o r t h i sp a p e ra l s o p r o v i d e s t h em e t h o do ft h e m a p p i n gf r o m a u i - p i mt ot o - p s m t h i sm e t h o di sb a s e do nt h r e el e v e l si n c l u d i n g s t a t i cm o d e l b e h a v i o rm o d e la n di n t e r f a c em o d e l i ti sd i f f e r e n tf r o m p a s tw o r k st h a tt a k e si n t e r f a c em o d e le l e m e n ta sc l u e i tu s e st h e a u i p i mi n f o r m a t i o nt of i l li nt h et o p s mf r a m e w o r k a n dt h e t o - p s mi n f o r m a t i o ni sb e t t e rf i tw i t hc o d eg e n e r a t i o no fw e b a p p l i c a t i o ni nc e r t a i nr u n t i m ef r a m e w o r k a n dt h i s p a p e rp r o v i d e sf o r m a l i z e dd e s c r i p t i o n o ft h em o d e l m a p p i n gr u l e s a c c o r d i n gt ot h er u l e si tt a k e st h ea u i p i ma si n p u t a n dt a k e st h et o - p s ma s o u t p u t ,a n dp r o v i d e sp l a t f o r ms p e c i f i c i n f o r m a t i o nt ot h ec o d eg e n e r a t o r t h i sf o r m a l i z e dd e s c r i p t i o nc o u l d m a k eh e l pt ot h es e p a r a t i o no fm o d e lm a p p i n gf r o mm a p p i n gr u l e s , a n dp r o v i d et h ea b i l i t yo fe d i t i n gt h ep r i n c i p l e t h i sp a p e rp r o v i d e sam e t h o dt h a tc a nm a pf r o mp i mt op s m i t i m p r o v e st h em e t h o dt h a tm a p sf r o mp i mt oc o d ed i r e c t l yi np a s t w o r k s a n di tt a k e sf o n tar e s o l u t i o no fm a p p i n gf r o mo n ep i mt o s e v e r a lp s m s t h i sr e s o l u t i o ni n c a r n a t e st h er e u s a b i l i t yo fp i ma n d a b s t r a c tt h ed e v e l o p m e n tl e v e l s oi tw i l ls i m p l i f yt h ed e v e l o p m e n t p r o g r e s s o fw e ba p p l i c a t i o ni ns o m e w a y a n dc u to f ft h e d e v e l o p m e n t c o s t i t a l s ow i l l p r o v i d em a i n t a i n a b j l j t y a n d e x t e n s i b i l i t yo ft h ew e ba p p l i c a t i o n k e y w o r d s :p l a t f o r ms p e c i f i cm o d e lf r a m e w o r k ,w e ba p p l i c a t i o n f r a m e w o r kb a s e dp s m ,t a s ko r i e n t e dp s m ,m o d e lm a p p i n gr u l e s , m o d e lm a p p i n gm e t h o d ,c o d eg e n e r a t i o n 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:j 鞋日 期:墨! ! 兰:生, 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索。可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:鞋导师签名: 日期;! :! 山东大学硕士学位论文 1 引言 1 1问题提出的背景 随着网络技术的飞速发展,w e b 应用逐渐成为企业信息系统 重要组成部分建立w e b 应用的过程中主要存在以下几个难点: 第一,运行平台和开发平台多样、技术复杂多变,给开发和维护工 作造成困难第二,w e b 应用需求的多变性要求开发中充分考虑 应用的可扩充性第三,界面之间的导航关系复杂第四,代码书 写量大,难以保证正确性和开发效率由于以上等原因,造成开发 w e b 应用工作量大、复杂而琐碎针对以上问题目前提出了模型 驱动开发( m d a ) 【l j 理论支持的代码自动生成的方法该方法在一 定程度上解决了上述部分问题,但是如何保证基于模型自动生成的 w e b 应用的正确性,并使其具有良好的可靠性和可维护性,则提 出了更高的要求 模型驱动开发过程中不仅应当实现模型到应用代码转换的自 动化,而且还应使目标应用满足较高的非功能性需求,因此必然要 求有良好的模型支持目前提出的具有代表性的w e b 应用设计模 型和方法有o o h d m1 2 j f 射、r m m1 4 1 、w w m 5 1 等其主要思想是将 w e b 应用模型分为概念模型、导航模型以及表示模型三个部分, 使应用逻辑与具体界面形式分离这在一定程度上保证了w e b 应 用模型良好的体系结构,但是这些模型大都属于概念层次上的,其 方法也缺乏必要的形式化约束,难以实施操作因此不适子工程化 的代码自动生成 模型驱动开发的基本思想在于提高软件开发的抽象层次,实现 模型层面上的重用,以及软件工程的自动化。基于这一思想,开发 人员可根据模型自动生成不同平台下应用系统,而不必关心平台相 关的技术细节目前代码自动生成方面的研究也取得一定的进展, 山东大学硕士学位论文 提出了各种模型向代码转换的方法。但是大部分方法是单纯以减少 手工编写工作量为目的的,没有从系统体系结构考虑闯题,因此生 成的目标是简单的、局部性代码片段。 针对以上提出的问题,本文借鉴o m g ( o b j e c tm a n a g e m e n t g r o u p ) 制定的模型驱动体系结构m d a 的基本思想和理论,提出 了基于j 2 e e1 6 】平台w e b 应用框架的平台相关模型t o p s m ( t a s k o r i e n t e dp l a t f o r ms p e c i f i cm o d e l ) 框架。同时提出了平台无关模型 a u i p i m ( p l a t f o r mi u d e p e n d e n tm o d e l ) 到t o p s m 的转换规则。 为模型驱动的w e b 应用代码自动生成提供支持 1 2 本文的研究内容 针对目前w e b 应用开发方法以及应用代码自动生成的研究, 本文重点关注于模型驱动开发中平台相关模型的建立以及平台无 关模型到平台相关模型转换的研究本文的研究内容主要分为三个 部分 第一,建立基予j 2 e e 的w e b 应用框架的p s m 框架根据目 前广泛使用的j 2 e e 平台下w e b 应用框架,归纳、总结并抽取其共 同特征,建立t o p s m 框架作为模型转换的基础。同时在该框架的 支持下建立t o p s m 目标模型 第二,建立a u i ( a b s t r a c tu s e ri n t e r f a c e ) 1 7 1 平台无关模型到 t o p s m 的转换规则即如何从a u i p i m 中抽取特定信息填充 t o p s m 框架,并转换为t o p s m ,为代码生成提供平台相关支持 第三,给出a u i p i m 到t o p s m 转换规则的形式化描述同 时完成模型问转换的自动化实现,即完成模型映射器的构造。 1 3 本文的研究基础 本文是整个模型驱动的w e b 应用代码自动生成课题的一部 分,其它部分研究工作为本文提供了a u i 模型,作为p i m 到t o p s m 映射的源端同时a u i w e b 系统运行框架则提供了从t o - p s m 到 山东大学硕士学位论文 代码映射的目标端。 1 4 本文的意义和创新 本文的意义和创新性在于: ( 1 ) 总结了目前广泛使用的j 2 e e 平台下w e b 应用框架共同 特性,提出了基于这些特征的w e b 应用平台相关模型框架该框 架由静态模型、行为模型和界面模型三部分组成充分体现了w e b 应用控制、模型及视图相分离的原则,保证了生成目标应用代码架 构的可靠性与可维护性 ( 2 ) 采用以任务为核心的组织模型结构,针对w e b 应用所 特有的导航关系复杂的问题,清晰定义了系统的任务处理及导航关 联。 ( 3 ) 将用户界面信息融入到所建立的平台相关模型框架中, 为界面代码的自动生成提供了支持,进一步减少了w e b 应用开发 工作量同时这也是与其他平台相关模型的重要区别之一 ( 4 ) 提出a u i p i m 到t o p s m 的映射规则,同时给出了形式 化表示方法映射规则反映的是两种模型之间的对应关系,为模型 问的映射提供依据和约束条件而形式化表示则为实现规则与映射 器相分离、规则可编辑奠定了基础。 。 ( 5 ) 在模型映射转换过程中,采用一种基于平台无关模型信 息抽取的转换方法即在目标p s m 框架确定的情况下,使用平台 无关模型信息填充该框架,生成平台相关模型,使得模型转换目的 性明确,并且在一定程度上消除了p i m 中信息冗余同时在实现 代码生成的过程中,为代码生成器的构造提供了平台相关信息支 持,提高了代码生成的自动化程度以及目标应用的可扩充性 1 5 本文的组织结构 本文整体分为八部分,第一部分引言,介绍问题的背景、主要 研究内容以及创新点;第二部分就本文研究的内容进行文献综述; 3 山东大学硕士学位论文 第三部分介绍本文使用的平台无关模型a u i p 1 m ;第四部分分析并 研究了当前目标w e b 应用框架的相似特点,简要介绍了a u i w e b 目标应用框架;第五部分提出并阐述t o - p s m 框架,并详细介绍其 模型构成;第六部分提出a u i p i m 到t o - p s m 的映射规则,并且 给出其形式化定义;第七部分列举实例说明模型映射的过程第八 部分为全文的总结 2 国内外相关研究现状 2 1 代码自动生成的研究 2 1 1 代码自动生成概况 代码自动生成的研究已经经历了一段时间起初,这一思想提 出的主要原因是应用系统的规模越来越大,其中存在大量的重复性 代码模块,使得编写与维护的工作量很大但是随着软件体系结构 与设计模式1 8 l 的研究与发展,以及它们在应用系统开发中所发挥的 作用,在一定程度上减少了设计开发中重复代码过多这一问题的影 响 随着软件工程的进一步发展,对软件开发提出了更高的要求 目前软件开发平台多样,应用软件系统需求变化性强因此,近年 来出现了对模型驱动架构( m d a ) 的研究,提出了模型化系统设计, 以提高软件开发抽象层次以及代码自动生成的工程实现。 传统意义上的代码生成,首先识别应用源代码中经常出现的重 复性代码,然后自动生成这些重复部分来代替手工编写的目标代码 p 】。所谓目标代码,是指应用相关的一系列产品,例如文档,脚本, 定义文件等如果没有代码生成工具,开发者将手工书写所有代码, 虽然这样可以得到灵活性较高的产品,但是使用代码自动生成可以 更加降低成本,减少出错率,使可靠性更强。 山东大学硕士学位论文 代码自动生成过程主要包 括以下三个部分,如图2 1 所 示: 模板特定系统代码片段, 组成系统的相对稳定的部分, 它可以被灵活组织成不同的表 现形式 实例模型系统中的模型 实例信息,可以认为是系统模 型的形式化描述 生成文本输出结果文件, 图2 1 :代码生成过程 可以包括系统的源代码、文档等 2 1 2 代码自动生成的发展过程 随着代码自动生成思想的提出,相应的代码生成器也在其结 构、构造方法方面得到了不断改进和发展,其发展过程可以分为三 个时期或三代1 9 l 第一代代码生成器( g l c g ) 通常是由开发者构造,他们检查并 抽出源代码中重复的部分,并且借助代码生成器代替手工编码 第一代代码生成器主要有以下特点: , ( 1 ) 它只产生一种类型的生成文本 ( 2 ) 模板文本和代码生成器被硬编码在一起,通常使用”p r i n t ” 指令。 第一代代码生成器的主要问题是修改模板代价高,生成的代码 类型单一,在大规模的系统开发中,对于每一个不同的需求都要产 生相应的g l c g : 第- - 代代码生成器( 9 2 c g ) ,设计者将模板转移到外部文件中 9 2 c g 成为这个文件的解析器9 2 c g 主要有以下特性: ( 1 ) 仍然产生特定情况下的代码。 ( 2 ) 模板成为外部文件 5 山东大学硕士学位论文 ( 3 ) 工具使用者可以修改模板 由于模板便于修改,因此生成代码的质量相对较高第二代生 成方法的缺点是每种代码生成器都要定义自己的模板语言由于只 有很少开发者擅长书写解析器,因此特殊的模板语言对于工具使用 者比较模糊,难以掌握。所以模板的更改和维护成为问题。 第三代代码生成器 ( 9 3 c g ) ,代码生成器成为一个 能够解释通用目的模板语言的 解析器。如图2 2 所示。9 3 c g 有以下性质: ( 1 ) 它能够产生适合解决 各种问题的代码 ( 2 ) 模板看上去开始像一 段程序或脚本 在9 3 e g 中特定于问题的处 宴惘教髁用彤 式化描建 犊板为婷与 奉龠语言的提 含 图2 2 :第三代代码生成器 理从代码生成器中转移到模板中,即模板中含有负责解释实例模型 的脚本代码生成器被精简为快速、通用目的的引擎,完成混合模 板和实例数据的基本任务 2 1 3 目前对代码自动生成的研究 针对代码自动生成研究的不断发展,目前在代码生成方面国内 外研究者提出了不少方法和思路 【1 0 】中提出了一种基于模型的j a v a 代码自动生成方法【1 1 】 中提出了一种基于x m l 的半自动化的w e b 应用代码自动生成方 法。【1 2 】中总结了当前代码生成器并将其分为三类,指出目前主要 是基于模板的代码生成器它使得模板与生成器分离,增加了代码 生成的灵活性,同时设计模式也被考虑加入到代码生成中【a 3 提 出了设计模式的建模及用于自动生成的描述方式,在一定程度上增 强了生成系统的可维护性,但是其组织模式的方法复杂,模式不易 6 山东大学硕士学位论文 于维护【1 4 】中提出了一种基于模板与代码模式的w e b 应用自动 生成方法以上方法,在一定程度上实现了部分代码的自动生成, 但基本上不是针对整体应用系统,并且缺乏目标系统框架的支持 根据代码生成器的一般性定义可以看出,代码生成器工作的不 可缺少的前提之一是必须有目标系统的信息描述,即系统的形式化 描述。改进对系统的描述对于改进代码生成器的组织结构以及代码 生成效率非常重要。同时映射规则是代码生成的原则与标准。为此, 本文对目标系统的平台相关描述、模型映射规则的确立进行了研 究在一定程度上有助于改善代码生成器的结构,提高代码生成效 率同时也为使代码自动生成成为工程化方法提供一定支持 2 2w e b 应用开发方法的研究 w e b 应用的开发除了具有普通应用开发的复杂性以外,还具 有自身的特点对于w e b 应用我们需要考虑的一个重要方面就是 超文本形式,另外w e b 应用是基于请求应答方式处理任务 超文本应用开发的成功关键在于开发者对于复杂数据的捕获 和组织能力。为了控制潜在的连接增长,需要用更加自然方法将任 务处理与结果展示进行连接在一个合理的设计方法中,超文本应 用开发者至少要面对两类问题:总体任务,例如定义所有元素的类 和应用的导航结构;局部任务,例如填充导航节点内容 超文本设计逐渐引起人们的关注由于复杂的信息空间中存在 非结构化和动态特性的数据,同时必须考虑导航问题,因此提出复 杂的问题必须通过系统的和模块化的方法进行解决 目前w e b 应用的开发建模方法主要有以下几种,这里给出其 主要特点及它们之间的相互比较 2 2 1 开发方法以及模型的研究 对于开发方法研究其典型代表有: h d m ( h y p e r t e x td e s i g nm o d e l ) t 1 5 1 的主要思想是首先定义一 7 山东大学硕士学位论文 个通用的模型h d m 给出了一个应用框架的定义,它描述了信息 元素的所有类以及它们的表现特性、内部组织结构和它们之间的交 互类型因此,该框架重点反映的是应用中任何给定类的结构和语 义信息。h d m 的主要特点是从不同的视点出发根据不同的表示角 色,将链接分类( 结构链接,应用链接和视点链接) o o h d m(o b j e c t - o r i e n t e d h y p e r m e d i ad e s i g n m e t h o d o l o g y ) 【2 l 【3 1 的主要贡献是 它创建了一种设计 过程,利用面向对 象的概念,设计一 系列模型主要有 以下阶段:( 1 ) 概 念设计这一阶段 的主要目的是中立 的获取领域的语意 而尽量不去关注任图2 3o o h d m 中的概念模型导航模型 务和用户的类型( 2 ) 导航设计根据特定用户的需要。确定需要 展示的概念模型中的信息( 3 ) 抽象界面设计j 需要定义用户观 察到的界面对象,即导航对象的展示形式,以及如何触发导航等 最后是系统实现,是将导航对象和抽象界面对象映射为实际环境下 的应用过程如图2 3 所示 r m m ( r e l a t i o n s h i pm a n a g e m e n tm e t h o d o l o g y ) 1 受e r 模型 和h d m 的影响,在r m m 中内容层次是单独建模的,而表示层次 是结合超文本层次定义的它提出了r m d m ( r e l a t i o n s h i p m a n a g e m e n td a t am o d e l ) ,使用e r 模型作为内容层次模型,受到 h d m 方法的影响提出自己的超文本层次和表示层次模型建模方 法。在导航模式中提供了索引和向导实体之间的关系用来获取导 航中的内容信息r m m 提出了一种开发过程,包括需求分析和以 8 山东大学硕士学位论文 e r 图形式的内容建模。 w w m(w e b f o r m - b a s e dw e b a p p l l c a t i o n m o d e l i n g m e t h o d o l o g y ) 1 5 1w w m 提出了基于u m l 和u c m 面向对象的w e b 应用建模方法。u c m ( u s ec a s em a p s ) ! ”1 给出了一个基于情景的系 统它填充了高层次体系结构和设计阶段细节的差距,已经广泛应 用到许多系统中在文献【1 6 】中,作者描述了从u c m 模型得到消 息顺序图的技术和方法 w w m 使用用例作为开发过程的驱动在w w m 中使用用例图、 类图、顺序图,并且使用u c m 注释的子集 但是大多数设计方法关注于w e b 应用怎样开发可以达到更好 的设计质量、更加广泛的代码生成、更完善的设计文档,并且易于 维护等方面很少关注w e b 应用的体系结构,即系统是怎么样构 成的,是由哪些部件或连接器进行交互以完成系统功能【1 7 】特别 是目前大多数方法没有支持w e b 应用的非功能性需求软件体系 结构和w e b 应用设计之间的差距使得很多w e b 应用开发方法失 去了优势,增加了开发时间,并且容易造成需求和设计之间的不一 致 w e b s a ( w e bs o f t w a r ea r c h i t e c t u r e ) ! 1 方法在w e b 应用说明 中增加了体系结构的说明,对其他方法做了补充并且使用m d a 标准【o m g2 0 0 1 来规范描述模型 w e b s a 将w e b 应用结构分为需求视图、功能视图、体系结构 视图进行描述需求视图又分为功能性需求和非功能性需求;功能 视图分为概念、表现、处理、导航等子视图;体系结构视图分为逻 辑和物理体系结构子视图。 使用m d a 定义w e b 应用体系结构,为w e b s a 提供了三个重 要的特性:( 1 ) 提高了w e b 应用的开发速度;( 2 ) 使得w e b 接 口与已存在模块的集成更加容易;( 3 ) 减少w e b 应用开发成本 9 山东大学硕士学位论文 2 2 2 目标框架研究 目前在j 2 e e 平台下开发w e b 应用一般要基于特定的框架,如 s t r u t s 1 8 l f l 9 】框架、s p r i n g 2 0 l 框架等。在框架的支持下开发应用程序, 可以直接使用框架提供的各种基础设施,使得应用具有良好的体系 结构、较高的稳定性及可维护性目前较为广泛使用的几种框架有 如下几种。 i m o d e l l 框架【2 1 i m o d e l l 体系结构中( 以j 2 e e 平台为例说明) ,j s p 页面处理所 有的请求并且负责向客户显示结果客户请求被直接发送到j s p 页 面,j s p 页面可以与j a v a b e a n s 或者其他服务进行通信但是最终 j s p 页面为用户选择下一个展示界面下一个展示的界面或者取决 于j s p 的选择或者取决于用户的请求参数。 2 m o d e l 2 框架| 2 1 1 m o d e l 2 框架中用户请求首先被一个s e r v l e t 解释分析,通常称 它为c o n t r o l l e rs e r v l e t 它负责处理请求的初始化,并且决定下一个 显示界面在m o d e l 2 框架中用户从不向j s p 页面发送请求 c o n t r o l l e rs e r v l e t 充当一个交通枢纽,这样它可以完成一系列通用 操作,例如授权、身份验证和国际化等一旦请求处理完成,它将 根据处理结果的不同选择不同的展示界面 可以看出m o d e l 2 框架与m o d e l l 框架的主要区别是它引入了一 个c o n t r o l l e rs e r v l e t 作为唯一的入口,并且提供了比m o d e l l 框架 更高的灵活性和可复用性在m o d e l 2 框架中业务逻辑、展示输出 以及请求处理被清晰的分离,这一点被m o d e l v i e w c o n t r o l l e r ( m v c ) 模式充分体现 虽然m o d e l 2 框架总的看来比较复杂,它实际上大大简化了应 用。它的使用使得应用具有更高的可维护性和可扩展性但是并不 意味着使用m o d e l l 框架是错误的设计。对于相对简单的应用以及 应用导航关系不太复杂,同时不需要很多集中的任务处理,并且应 用需求相对稳定的情况下,m o d e l l 框架也许更加适合但是对于 山东大学硕士学位论文 大多数企业级的w e b 应用来讲,m o d e l 2 框架更能适应要求。 3 s t r u t s 框架| 1 8 1 1 ”i s t r u t s 框架目前在w e b 应用开发中已经得到广泛应用。它基 于m v c 模式,较好的将模型、视图和控制进行分离,充分体现了 业务逻辑与表现形式分离的原则它采用控制器集中控制客户请 求 s t r u t s 框架分为控制层、业务服务层、数据实体层和表示层等 四部分如图2 4 所示 图2 4 :s t r u t s 框架的体系结构 控制层主要完成请求的响应,分发和请求处理结果的导航工 作本层主要由任务分发器、任务处理前端、任务映射器等组成 任务分发器是系统响应外部请求,并将请求转发到相应处理部件的 集中控制器。s t r u t s 框架使用a c t i o n s e r v l e t 作为任务分发器 业务服务层主要完成实际系统任务的处理工作以及为系统服 务提供必要的公共支持本层次主要由领域对象和公共服务对象组 成 数据实体层主要为应用系统提供数据对象,一方面为任务处理 1 1 山东大学硕士学位论文 提供数据、另一方面为处理结果提供暂时的存储。 表示层主要完成应用系统对用户的展示工作,例如为用户提供 操作界面、展示处理结果等 2 3 模型驱动开发体系结构( m d a ) 的研究 随着应用系统的不断发展,其规模不断扩大,并且构建软件系 统使用的平台多样,同时在开发应用系统过程中,用户的需求也在 不断改变如何在这种情况下,开发出具有较高可靠性及可维护性 的系统,为软件研究人员提出了更高层次的要求而理想的软件开 发方法是,开发人员不必关心应用实现的具体平台,只需关注于应 用系统的业务逻辑即提高软件开发人员的开发层次,使用模型驱 动软件开发过程 因此,最近很多组织已经开始对模型驱动的体系架构( m d a ) 进行研究,并且提供解决方案m d a 是一种应用系统设计和实现 的方法m d a 鼓励在软件的开发过程中有效的使用系统的模型, 并且它支持创建类似系统的最佳实践的重用根据对象管理组织 ( o m g ) 定义的标准,m d a 是一种组织和管理被自动化工具支持 的企业体系架构、用于定义模型和推动不同模型类型之间的转换的 服务、标准和方法 m d a 技术的相关概念均是o m g 的一系列标准:如统一建模语 言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 2 1 、元对象设施m o f 2 3 l ( m e t a o b j e c tf a c i l i t y ) 、x m l 元数据交换x m i l 2 4 i ( x m lm e t a d a t a i n t e r c h a n g e ) 、公共数据仓库元模型c w m1 2 5 】( c o m m o nw a r e h o u s e m e t a m o d c l ) 。 其中m o f 为m d a 的核心,它包含四个模型层次,如表2 i 所 示m o f 可以被用来描述关系数据模型的建模结构,也被用来描 述u m l 类模型的建模结构;它还被用来描述其他种类的建模所用 到的结构m o f 是通用的、抽象的,用于定义元模型的语言,它 可以被称为m e t a m e t a m o d e l 或者定义元模型的模型 山东大学硕士学位论文 元层次描述 元素 m 3 m o f ,即定义元模型m o f 类、m o f 属性、m o f 关联等 的构造集合 m 2 元模型,由m o f 构u m l 类、u m l 属性、u m l 状态、 造的实例组成u m l 活动等;c w m 表、c w m 列 等 m l 模型,由m 2 元模型“c u s t o m e r ”类、“a c c o u n t ”类; 构造的实例组成。e m p l o y e e ”表、“v e n d o r ”表等 m 0 对象和数据,也即客户j a n es m i t h 、客户j o cj o n e s 、 m 1 模型构造的实例账户2 9 8 9 、账户2 3 4 4 、员工 a 3 9 4 9 、商家7 8 9 8 8 等 表2 1m o f 元层次 本文所提出的t o p s m 框架相当于m o f 层次中m 2 层的模型 通过对a u i p i m 进行模型映射后得到的t o p s m 就是使用t o p s m 框架定义的m 2 层元素的实例只是本文没有使用表2 1 所示的m 2 层中的u m l 元素,而是t o p s m 框架元素 2 3 1 模型驱动开发中的各种模型及相互关系 在模型驱动开发过程中, 根据开发的不同阶段、以及开 发参与者担任的角色不同,需 要使用不同的模型这些模型 处于不同的层次,为系统开发 提供不同抽象层次的系统描 述由于软件开发方法及过程 的不同,所用到的模型会存在 山东大学硕士学位论文 逻辑模型和物理模型逻辑模型通过类和行为模型描述了系统 的逻辑物理模型描述了在开发时和运行时用到的物理工件和资 源,包含模型文件,源代码文件、可执行文件、档案文件、处理器 等等 需求模型和计算模型。需求模型描述了逻辑系统,而不是业务, 但是它是用独立于计算的方式来描述的,这意味着,需求模型尽可 能不考虑技术因素。计算模型也描述了逻辑系统,但是它考虑了技 术因素计算模型为生成器提供了更完整的信息 平台独立模型( p i m ) 和平台相关模型( p s m ) p i m 是使用与 系统实现平台无关的概念描述系统,而p s m 则是使用与实现平台 相关的概念描述应用系统。p i m 和p s m 之间的差异取决于对平台 技术参考集合的规定,p i m 独立于这些平台p i m 和p s m 是计算 模型p i m 考虑了一些技术因素,从p i m 派生的p s m 则考虑了更 多的同特定平台相关的技术因素 誓莩;嚣鬻回日卧回日卧囤 包含了三个模型,两个交 一i 士il :l一 1 4 山东大学硕士学位论文 p s m ,在许多情况下仍需要用户干预或强化p s m 描述但是总可 以从p i m 生成一个基本可运行的应用程序。 本文主要研究的就是p i m 到p s m 的转换如图2 7 所示 模型总是以某种语言表述 的可以是u m l ,也可以是自然 语言。或者某种编程语言为了 支持模型的自动转换,需要对模 型或模型描述施加一定的限制或 约束本文采用了a u i p i m 模型 作为p i m ,该模型已经具有一套 完整的定义语言 ( 2 ) 模型驱动开发的优点1 2 6 1 日 如书 图2 7 :p i m 到p s m 的转换 提高生产效率:模型驱动开发使开发者的焦点转移到了p i m 的设计和开发上所需的p s m 是通过变换自动从p i m 生成的变 换只需要被定义一次,然后就可以在开发中多次应用这个变换不 必关注目标平台的细节。技术细节会通过从p i m 的变换自动加入 p s m 因此提高了生产效率 增强可移植性t 可移植性是通过把开发焦点转移到 p i m 而获得的因为p i m 是跨平台的、与平台无关的同 一个p i m 可以被自动变换成多个不同平台上的p s m 。因此 在这个意义上,p i m 层次上定义的所有东西都是完全可移 植的 支持互操作性:如图2 8 所示, ,p i m 、 从一个p i m 生成

温馨提示

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

评论

0/150

提交评论