(管理科学与工程专业论文)模型驱动技术在企业信息系统开发中的应用.pdf_第1页
(管理科学与工程专业论文)模型驱动技术在企业信息系统开发中的应用.pdf_第2页
(管理科学与工程专业论文)模型驱动技术在企业信息系统开发中的应用.pdf_第3页
(管理科学与工程专业论文)模型驱动技术在企业信息系统开发中的应用.pdf_第4页
(管理科学与工程专业论文)模型驱动技术在企业信息系统开发中的应用.pdf_第5页
已阅读5页,还剩56页未读, 继续免费阅读

(管理科学与工程专业论文)模型驱动技术在企业信息系统开发中的应用.pdf.pdf 免费下载

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

文档简介

葵擎驱动技术在企业信息系统开发中的应用 摘要 i t 技术在企业管理信息化建设中所起的作用越来越大,但企业级应用软件开 发的效率并没有质的提高,软件开发效率和质量仍是企业信息化的瓶颈。模型驱 动架构是对象管理组织提出的一种软件开发方法学,它是软件开发领域的一场革 命。在m d a 中,整个软件开发过程是由对系统的建模行为驱动的,它能将模型 变换为可执行代码,加速软件开发的进度。 目前,m d a 的研究是建立在m o f , u m l ,c w m ,o c l 等基础之上,虽然没有 形成实用技术。但模型驱动软件开发的思想对于软件系统的开发还是有指导性 意义的。模型驱动能提高软件开发的效率,提高交互性,提高软件质量。 本文研究如何使用m d a 技术加速企业信息化软件的开发,研究如何利用 m d a 技术为企业信息化建设服务。首先,我们选择j 2 e e 平台为目标平台,研 究j a v aw e b 应用程序的架构,并将j a v aw e b 应用中的各种组件抽象化形式化。 然后,提出了一种纯粹基于x m l 技术的模型驱动工具构建思路,实现了一个开 放、灵活的m d a 工具s i m p l e m d a 。 s i m p l e m d a 的核心是一个变换规则仓库,它定义了一组映射规则,实现了 域模型到各种与j 2 e e 平台相关的模型的变换,并最终使用p s m 模型生成代码。 除了能提高软件开发的效率,开发高质量的软件,s i m p l e m d a 还具有非常强的 可扩展性,使用者可以增加新的p s m 模型,增加新的映射规则,以满足实际开 发的需要。s i m p l e m d a 有非常强的开放性,应用软件开发人员可以查看p s m 模 型的定义,根据需要修改模型变换定义。 最后,我们将s i m p l e m d a 应用到n c 一e r p 系统的开发中,加快了开发的速 度,提高了代码质量,节约了时问和成本。 关键参m d a 、j 2 e e 、e r p 、s i m p l e m d a 凄型驱动技术在企业信息系统开发中的应用 a p p l y i n gm d at ot h ed e v e l o p m e n to f e n t e r p r i s el n f o r m a t i o ns y s t e m a b s t r a c t i n f o r m a t i o nt e c h n o l o g yh a sb e e np l a y i n gam o r ea n dm o r ei m p o ar o l ei nt h e c o m p a n ym a n a g e m e n t ,b u tt h ed e v e l o p m e n to fe n t e r p r i s ei n f o r m a t i o ns y s t e mi ss t i l l b e h i n d 、t h el o ws p e e do fs o f t w a r ed e v e l o p m e n tb o t t l e n e c kt h eu s i n go fi n f o r m a t i o n t e c h n o l o g yi nc o r p o r a t i o n s m d ai san e wm e t h o d o l o g ys p o n s o r e db yo m g i ti sa r e v o l u t i o no fs o f t w a r ed e v e l o p m e n t w i t h i nm d at h es o f t w a r ed e v e l o p m e n tp r o c e s s i sd r i v e nb yt h ea c t i v i t yo fm o d d i n gy o u rs o t t w a r es y s t e m i tc a na u t o m a t i c a l l yt u r n m o d e l si n t oc o d e sa n ds p e e du pt h ed e v e l o p m e n tp r o c e s s b yn o w , t h er e s e a r c ho fm d a i sb a s e do nm o f , u m l , c w m , o c l ,e t c a l t h o u g h t h e r e sn op r a c t i c a lt o o l sb u tt h es p r i t eo fm d a i n f l u e n c et h es o f t w a r ed e v e l o p m e n t g r e a t l y i tc a ni m p r o v et h ep r o d u c t i v i 坝i n t e r o p e r a b i l i t ya n dq u a l i t y w ef o c u st h er e s e a r c ho f a p p l y i n gm d a t oe n t e r p r i s es o f t w a r ed e v e l o p m e n t f i r s t w ec h o o s ej 2 e ea so u ro b j e c t i v ep l a t f o r m ,w es t u d yt h ea r c h i t e c t u r eo faj a v aw e b a p p l i c a t i o n m a k ea b s t r a c t i o na n df o r m a l i z a t i o n t h e nw ei m p l e m e n tam i ) a t o o l n a m e ds i m p l d m d a t o t a l l yb a s e do nx m l s i m p l e m d ai s ac o l l e c t i o no ft r a n s f o r m a t i o nr u l e s i td e f i n eal o to fr u l e st o t r a n s f o r mp i mt oj 2 e ep s ma n dr u l e st ot r a n s f o r mp s mt oj a v a , j s pa n dr m d m s s c h e m a s b e s i d e st h ei m p r o v e m e n ti ne f f i c i e n c y ,s i m p l e m d ai sf l e x i b l ea n do p e n i t i se a s yt oe x t e n da n dm o d i f y s o f t w a r ee n g i n e e rc a na d dm o r ep s mm o d e l sa n d m a k et r a n s f o r m a t i o nm o d e lf o rt h e m f i n a l l yw ea p # i e ds i m p e m d at ot h ed e v e l o p m e n to fn c i - e r ps y s t e m i t h e l p e ds p e e d i n gu pt h ep r o c e s s 。 k e yw o r d s :m d a 、j 2 e e 、e r p ,s i m p l e m d a 2 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 本人为获得浙江工商大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示谢意 签名: 丑堆 吼叫年川7 日 关于论文使用授权的说明 本学位论文作者完全了解浙江工商大学有关保留、使用学位论文 的规定:浙江工商大学有权保留并向国家有关部门或机构送交论文的 复印件和磁盘,允许论文被查回和借阅,可以将学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制 手段保存、汇编学位论文,并且本人电子文档的内容和纸质论文的内 容相一致。 保密的学位论文在解密后也遵守此规定 签名:导师签名: 日期:年月日 模型驱动技术在企业信息系统开发中的戍用 第一章引言 第一节课题背景、研究现状以及选题意义 对象管理组织( o b j e c tm a n a g e m e n tg r o u p ,o m g ) 0j 是一个独立于各厂商的非 盈利性组织,其主要宗旨是要统一不同的商业产品和标准之间的数据交换及相互 操作,从而改善各厂商的软件产品之问不兼容的情况。c o r b a l 2 】是o m g 在中闻 件层次上一个显著的工作成果,然而,这个技术上成功的作品在商业应用上却称 不上成功,数年之间,j 2 e e 和n e t 相继在中间件的层面上异军突起。o m g 的 工程师们开始把眼光放到更远的地方,他们希望在更高的层面上提供一个统一的 标准。因此,基于o m g 另外一个非常成功的作品一u m l ,他们提出了m d a 的 概念。 o m g 的构想是将目前的开发提升到更高的抽象层级一分析模型级,把针对 特定计算平台的编码工作交由机器自动完成,在这种情况下,业务逻辑与实现技 术被成功地分离,二者相对独立变化,因此模型的价值在包容已有技术的条件下 被最大化。这样做的目的根源于软件开发的现状:在传统的软件开发方法中,随 着项目的进展,设计阶段产生的u m l 模型和代码之闻的同步变得越来越困难, 代码为了应付新增加的需求和新产生的想法而不断变化。模型却一直停窝在原地 不动,这是的模型在一段时间之后就失去了它的价值。o m g 提出了一个最根本 的解决方案,在m d a 中,模型不再是一种辅助工具,而是开发过程中的产品。 m d a 在目前技术的基础上,分离出了两个抽象级别的模型:p i m ( p l a t f o r m i n d e p e n d e n tm o d e l 平台无关模型1 和p s m ( p l a t f o r ms p e c i a l i z em o d e 平台相关模 型) 。p i m 是一个纯粹的不考虑实现技术的模型,而p s m 可以视为一个基于特定 实现技术( 比如j 2 e e ) 的设计模型【3 1 工程师们只需要建立表达业务逻辑的p i m , 剩下的工作都可由m d a 引擎( 工具开发商的工作) 自动完成。描述业务逻辑的 p i m 将具有长久的价值,而针对特定平台的p s m 则可能会随着平台技术的进步 而快速地迁移。在m d a 开发过程中,系统的开发工作的最终产品是p i m ,从 p i m 到p s m 及至代码实现都是由第三方的自动化工具来完成的。 为了实现m d a 这一构想,o m g 制定了一系列的标准: 模型驱动技术在企业信息系统开发中的应用 1 u m l l 4 i :u m l 被m d a 用来描述各种模型。它并不是为m d a 而专门设计 的,但是作为目前最为流行的建模语言,u m l 已经占据了全球建模语言领域4 0 的市场份额,成为了建模语言事实上的标准,因此o m g 将它作为m d a 技术的 基础是自然而然的明智选择。它是m d a 的基础,也是m d a 最有力的武器。 2 m o f 5 i :m o f ( m e t ao b j e c tf a c i l i t y 对象机制) 是比u m l 更高层次的抽象, 它的目的是为了描述u m l 的扩展或者其它未来可能出现的类u m l 的建模语言。 m o f 采用的四层结构( m 0 ,m l ,m 2 ,m 3 ) 的元模型体系结构,为m d a 体系内的模 型提供了统一的元模型框架。通过使用m o f 对建模语言的定义( 也即m 2 层的元 模型1 ,我们可以定义这些建模语言描述的模型之间的变换。 3 x m i 6 :x m i ( x m l - b a s e dm e t a d a t ai n t e r c h a n g e ) 是基于x m l 的元数据交换。 它通过标准化的x m l 文档格式和d t d ( d o c u m e n tl “y p ed e f i n i t i o n s ) 为各种模型定 义了一种基于x m l 的数据交换格式,使得作为最终产品的模型可以在各种不同 的工具中传递。 4 c w m t 刀:c w m ( c o m m o nw a r e h o u s em e t a - m o d e l 公共仓库元模型) 提供了一 种数据格式变换的手段,在任意级别的模型上都可以使用c w m 来描述两种数据 模型之间的映射规则,比如将数据实体从关系数据库变换为x m l 格式。在m o f 的框架下,c w m 使得通用的数据模型变换引擎成为可能。 虽然u m l m o f , x m i ,c w m 等一系列标准分别解决了m d a 的模型建立、建 模语言定义及模型扩展、模型交换、数据模型变换这几个方面的问题,但是在模 型变换领域还没有统一的、成熟的标准。m d a 仍然是前沿技术,而且尚处在发 展早期。语言和工具都没有发展到足以支持m d a 所承诺的“生成完整代码”的 程度。目前,我们必须手工修改生成的代码。尽管如此,工具已经提供了很多功 能,这些功能足以对软件的开发过程造成重大的影响哺】。 本文研究m d a 技术在企业信息系统软件开发中的应用问题。虽然m d a 仍 未成熟,尚未达到“可执行模型”的境界,但m d a 的思想对加速开发针对固定 平台、固定架构的应用程序有非常大的指导意义。企业信息系统软件是非常重要 的软件系统,它采用的架构也比较成熟、稳定,但信息系统的开发仍然大量依靠 手工劳动,效率非常低。本文研究面向j 2 e e 平台的模型驱动的软件开发方法, 并将其应用于信息系统开发中,对于提高软件开发的效率和软件质量有非常重要 2 模型驱动技术在企业信息系统开发中的应用 的意义。 第二节研究内容和思路 本文研究m d a 技术在企业信息系统开发中的应用问题,探讨和实践如何使 用m d a 技术加速基于j 2 e e 平台的企业信息系统软件的开发。首先,我们研究 p i m 模型向j 2 e e 平台的模型变换算法,采用x m l 、u m l 等技术实现了模型驱 动工具s i m p l e m d a 。最后把s i m p l e m d a 运用到开发n c i - e r p 系统的实践中。 第三节论文的创新点 本文的主要创新点如下: 1 针对j 2 e e 平台的常见组件,使用x m ls c h e m a 技术定义了一套p s m 模 型。 2 基于x m l 技术开发了一套模型变换规则,能执行从u m l 域模型到p s m 模型和p s m 模型到代码之间的自动变换,加速了j 2 e e 应用的开发。 3 将m d a 技术应用于企业信息系统开发实践中,使用s i m p l e m d a 开发 n c i e r p 系统。 第四节本文的组织结构 本论文共分为四章: 第一章引言简要介绍m d a 产生的背景,本文的主要工作等内容; 第二章模型驱动架构介绍m d a 的基本概念、m d a 的整体框架,以及m d a 为软件开发带来的益处。 第三章基于x m l 技术、面向j 2 e e 平台的m d a 工具s i m p l e m d a 的设计与 实现。 第四章s i m p l e m d a 在n c i - e r p 系统开发中的运用。 第五章对论文的工作进行了总结,并讨论了今后需要进一步研究和完善的 内容。 模型驱动技术在企业信息系统开发中的应用 第二章模型驱动架构 面对软件开发过程中业务需求不断变化,技术曰新月异带来的挑战,模型驱 动架构( m d a ) 提供了一种开放式的、不依赖于任何厂家的解决方案。以对象管理 组织( o b j c c tm a n a g e m e n tg r o u p ,o m g ) 己有的各种标准为基础,m d a 致力于将业 务或者说应用逻辑与底层的平台相分离。用m d a 及相关标准构建的独立于平台 的应用系统,能够在各种平台( 包括c o r b a ,j 2 e e ,n e t ,以及w e bs e r v i c e s 或者 其他基于w e b 的平台) 上实现。详细定义的、独立于平台的系统模型,将应用的 业务逻辑和与技术相关的代码相分离,使得日后的技术革新更加容易,也提高了 系统的互操作性。 本章主要描述了m d a 产生的背景介绍了m d a 的整体框架和一些基本概 念,以及应用m d a 带来的好处。 第一节传统软件开发中的问题 a l i s t a i rc o c k b u r n 在他的a g i l es o f t w a r ed e v e l o p m e n t l 9 】一书中归纳了业界对 软件开发的看法:以c a rh o a r e 为代表的数学观、以b e r t r a n dm e y e r 为代表的工 程观、以很多程序员为代表的手工艺观,还有一些程序员则认为软件开发是神秘 的创造行为。近2 0 年来,也有越来越多的人对软件开发持“建模”观,比如i v a r j a c o b s o n 就曾声称:软件开发就是建模。m d ae x p l a i n e d 一书的作者也指出:代码 就是模型。与硬件的飞速发展( 处理器速度已经连续1 0 年以指数增长) 相比,在 软件开发领域我们仍然面临着巨大的挑战。很多软件项目的结果往往不令人满 意。事实上,在美国,8 5 的r r 部门都不能满足企业的“战略性业务需求”l m 】。 另外一些项目则由于严重超出预算而中途夭折。软件开发仍然是劳动密集型的工 作。每当新技术来临开发人员就不得不一再重复过去的工作。系统从来就不是用 单一技术构建的,需求的变化也从来没有停止过。 作为m d a 产生的背景,我们将分析软件开发中面临的一些关键的问题,并 探讨产生这些问题的原因。 4 模型驱动技术在企业信息系统开发中的应用 一、生产效率问题 传统的软件开发过程常常是由低层的设计和编码驱动的。图2 1 描述了一个 典型的开发过程。不管我们使用这一过程的增量和迭代版本还是使用传统的漂布 过程,文档和图表都是在第l 阶段到第3 阶段之间产生的,包括需求规范说明( 文 字或图表形式的) ,很多的u m l 图表,例如用例图、类图、交互图、活动图等等。 而随着编码阶段的进行,图表和代码之间的联系会逐渐减少。图表常常会与代码 或多或少的脱节,而不再是代码的精确说明。而当系统随着时问逐渐改变,人们 常常只在代码层次做出改变,因为没有时间去更新图表和其他高层次的文档。 曩论上盼避代过曩 控序员的捷挂 图2 1 迭代的软件开发 极限编程( e x t r e m ep r o g r a m m i n g , x p ) 【1 0 】的理念由此而生它认为开发过程中 只有编码和测试阶段才是真正具有生产力的阶段,从而产生了以代码为中心、测 试驱动开发( t e s td r i v e nd e v e l o p m e n t , t d d ) i s j 等一系列原则和方法。x p 在某些应 用中的确有成功的经验,但是它的主要问题在于,只有代码和测试用例会给软件 系统的维护带来很大的困难,尤其是当维护人员和当初的开发人员不是同一批人 的时候。 我们看到,如果把代码作为生产力的衡量标准,无论是在软件开发的初期花 费时间来创建高层次的文档和图表,还是在维护阶段花费时间理解系统的功能, 生产效率都是低效的,开发者也往往把这些任务视为负担。然而,在成熟的软件 项目中,编写模型或文档的任务又是不可缺少的。 二、可移植性问题 软件行业区分于其他行业的一个显著特征就是,每年都有大量的新技术产生 并变得流行,例如x m l , h t m l , s o a p 1 2 1 。u m l , j 2 e e l l 3 1 ,n e t , w e bs e r v i c e t l 铂等等。 5 模型驱动技术在企业信息系统开发中的应用 技术本身也在改变。它们以不同的版本出现,新版本并没有确保向后兼容,工具 厂商一般也只支持最新的2 到3 个版本。于是,现有的软件要么需要被移植到新 的技术上,要么需要被移植到老技术的新版本上。可移植性也就成为了软件开发 过程中需要考虑的重要因素之一 三、互操作性问题 大多数软件系统都需要与其他的、通常是已存在的系统交互。一个典型的例 子就是,现在许多公司建立了新的基于w e b 的系统。用h t m l , a s p , j s p 等技术 实现的面向用户的应用程序,需要与公司原有的后端系统进行交互。此外,在基 于组件的开发日趋流行的今天,组件之间的交互对系统的互操作性提出了更高的 要求。 四、维护与文档问题 前面提到过,文档一直是软件开发过程的薄弱环节。在开发过程中编写文档 需要花时间,会降低开发速度。而且,文档并没有为开发者当前的任务提供支持, 而主要是为以后的维护提供支持。所以,开发人员常常在事后才补写文档这也 是文档质量不高的一个主要原因。虽然有几种编程语言,如e i f f e l 1 5 】和j a v a ,支 持从源代码直接生成文档的机制,高层次的文档( 文字和图表) 仍需要手工维护。 第二节m d a 中的基本概念 一、模型驱动架构( m o d e ld r i v e na r c h i t e c t u r e ) m d a 实际上是一种系统开发的方法,它强调了模型在开发过程中的作用。 “模型是用精确定义的语言”对系统或者系统的一部分做出的描述。“精确定义 的语言”是具有精确定义的形式( 语法) 和含义( 语义) 的语言,这样的语言适合计 算机自动解释i l q 。“模型驱动”的意思是,用模型来引导对系统的理解、设计、 构造、配置、维护、改进的整个过程。“架构”定义了一个系统的各个组成部分, 各部分之间的连接器( e o n n e c t o r ) ,以及各部分通过连接器进行交互的规则。m d a 6 模型驱动技术在企业信息系统开发中的应用 规定了使用的模型的种类,这些模型需要具备哪些条件,以及不同种类模型之间 的关系【。 二、计算独立模型( c o m p u t a t i o ni n d e p e n d e n tm o d e l ,c i m ) 计算独立模型是从“计算独立”的视角对系统建模的结果。它侧重于系 统的需求和系统应用的环境,对系统结构的细节不予考虑。有时候我们也称 这种模型为业务模型或领域模型。c i m 的构建者,即领域分析专家,并不知 道c i m 中描述的系统需求是如何用模型或者其他制品( a r t i f a c t s ) 实现的。c 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 i 呻 平台独立模型是一类具有高抽象层次、独立于任何实现技术的模型。p i m 对系统建模的角度是“平台独立”的,即侧重于系统的功能而忽略了特定平 台所需的细节。p i m 通常使用一种通用的建模语言,定义了系统不随平台而 改变的那部分特征。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 i m 中 的关于系统的定义与该系统如何在一个特定平台上实现的细节结合起来。 p s m 是为某种特定平台量身定做的,在p s m 中用该平台的相应技术和构造 来描述系统。例如,e j bp s m 是用e j b 结构描述的系统模型,它常常包括 e i b 特有的术语,如“h o m 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 ”等等 而与关系数据库的p s m 则包括“表”、“列”、“外键”等术语。 六、模型变换( m o d e lt r a n s f o r m a t i o n ) 模型变换是按照一组变换规则从源模型生成目标模型的过程。变换规则 7 模型驱动技术在企业信息系统开发中的应用 是对源语言( 用来描述源模型的语言) 中一个或多个构造如何变换为目标语言 ( 用来描述目标模型的语言) 中的一个或多构造的描述图2 - 2 是p i m 到p s m 变换的一个简单示例。模型变换的输入是某类模型a 和其他一些辅助信息, 输出是另一类模型b 模型变换有多种类型和实现方法,在下一章我们会有详 细论述。 图2 - 2 p i m 到p s m 的变换 常见的模型变换有两种: 1 、“水平变换”是指变换在同一个元模型的上下文中进行的,即源模 型和目标模型是用相同的元模型定义的。这样的变换常常发生在对p i m 或 p s m 的细化中。 2 、“垂直变换”是指变换发生在至少两个不同的元模型上下文中,即 源模型和目标模型是用不同的元模型定义的。这样的变换通常发生在从 p i m 到p s m ,或者从p s m 到代码的变换中。 第三节应用m d a 这一节我们主要介绍m d a 的开发生命周期,如何使用m d a 中的各种模型 以及它们之间的关系,以及m d a 的其他一些应用。我们会看到模型变换在m d a 中起了至关重要的作用 一、m d a 的开发生命周期 图2 3 描述了m d a 的开发生命周期。它和传统的开发生命周期的主要不同 在于开发各个阶段创建的制品( a r t i f a c t ) 的性质不同。这些都是形式化的模型,即 8 模型驱动技术在企业信息系统开发中的应用 可被计算机理解的模型;模型到模型之间变换可以借助工具自动完成。 i m 吐l f f i 图2 3m d a 的软件开发过程 下面给出了m d a 开发步骤,如图4 所示: 图2 - 4 m d a 开发步骤 首先,对系统需求进行分析,领域专家建模得到c i m 。它描述了系统应用的 环境,侧重于展示一个系统是如何在应用领域中运作的,有助于理解系统到底要 做什么。对c i m 建模的语言包含了用来定义业务过程、参与者、相关部门、过 程间依赖等方面的术语。 接着,根据c i m 描述的系统需求,设计人员从如何以最好的方式支持商业 逻辑的角度来对系统进行建模。p i m 是对系统的一种高层次的抽象,与具体的实 现技术无关在此过程中,设计人员会不断根据客户需求和其它因素对p i m 进行 精化,使它能够更加准确地描述系统。 然后,设计人员结合系统构架、性能等多方面的考虑,选择某种特定的平台, 将p i m 变换成与这种平台相关的p s m 。这种变换可以手工实现,也可以借助开 发工具自动完成 有时候,设计人员会对生成的p s m 进行修改。或者是增加一些与平台相关 的特性,或者是性能方面的优化。这些改变都会通过模型变换映射到p i m 中。 对p s m 不断细化,添加实现方面的细节。 最后,把p s m 模型变换成代码。由于这时候的p s m 跟具体的系统实现技术 9 模型驱动技术在企业信息系统开发中的应用 已经很接近了,因此这种转换来得比较直接。也有工具直接将p i m 变换成代码。 c i m ,p i m ,p s m 和代码是开发生命周期中不同阶段的制品。它们是不同抽象层次 上的系统模型。定义和实现高抽象层次模型到低抽象层次模型之间的变换,可以 帮助开发人员提高工作的抽象层次,使得对复杂系统的建模变得更加容易。 二、m d a 的其他应用 除了在开发生命周期中发挥作用,m d a 还被应用在以下方面。 ( 一)多平台模型 今天许多系统跨越了好几种技术和平台。m d a 变换可以将一个p i m 的 不同部分变换为相应平台上的p s m 例如:一个交易系统可能被变换为前端是 w e bs c a v i c c s ,后端是办公系统。再比如,一个系统需要与多个己有系统交互, 交互方式有i i o p , r m i 或者s o a p 。通过m d a 变换,系统的通信子系统就可 以适应不同的通信方式。 ( 二)系统集成 p i m 定义的系统可能由若干部分组成,各个部分是相互独立的。从p i m 到p s m 的变换必须考虑到各部分的集成问题。另外,选取p i m 的不同部分 变换得到的p s m 也会不同例如,几家有贸易来往的公司想共享一个软件的 设计方案。但由于他们各自的平台不同,对应部分的具体实现也就不一样, 不过他们还是希望实现后的系统能满足互操作性要求。要做到这一点,必须 定义不同平台之间通用的映射关系,或者是为某个特定系统定义映射关系。 目前,这一方面还没有标准的解决方案。这也是m d a 标准化工作下一步要 关注的方向之一。 ( 三)反复应用m d a 模式 m d a 模式由p i m ,某一类平台以及与平台相关的p s m 组成。我们说p i m 是独立于平台的,是指它不依赖于这类平台中任何特定的一种平台。什么是 p i m 取决于m d a 用户所关注的“那一类平台”。例如,o m g 的一个领域任 务组可能要求提交与某一特定领域相关的技术提案,即一个p i m 和一个 p s m ,该p s m 是针对一个通用的组件技术平台的。另外一个o m g 的平台任 务组要求提交关于改进了的组件模型( 向后兼容c o r b a 组件模型,c c m ) 的 提案。该提案包括一个关于组件技术的p i m 和一个或多个关于该技术的p s m 1 0 模型驱动技术在企业信息系统开发中的应用 我们看到,第一提案中的p s m 在第二个提案中就变成了p i m ,因此,m d a 模式可以多次应用。第一次应用产生的p s m 可以作为下一次应用中的p i m ( 四) 模型和模型之间的一般变换 p i m 到p s m 的变换方法同样可用于将任一模型变换为与之相关的其他 模型例如,一个通用的金融交易模型被变换为某一类特定的交易模型,或者 是某一次特定交易的模型:某个应用的国际化模型被变换为针对某一特定区 域内客户的模型等等。 第四节m d a 带来的好处 应用m d a 为软件开发带来了一系列的好处:模型间的自动变换提高了生产 效率:业务逻辑与具体实现技术的分离增强了可移植性和互操作性:在模型变换中 重用已有的经验和模式可以提高软件开发的质量:模型和代码的一致性使得维护 工作变得更加容易。 一、提高生产效率 在m d a 中,开发的焦点转移到了p i m 的开发。所需的p s m 是通过变换自 动从p i m 生成的。这样的变换只需要定义一次,然后就可以在开发过程中多次 应用。大多数的开发人员将集中精力于p i m 的开发。一方面,因为不用关注目 标平台的细节,开发人员将摆脱很多技术细节的困扰。在p s m 和代码层次,需 要写的代码少了很多,很多都由p i m 自动生成了,开发周期会有所缩短。另一 方面,开发人员可以将更多的注意力放在业务问题上,系统能更好的满足用户的 需求。因此生成效率得到了提高。当然,前提是有成熟的模型变换工具:或者, 更具体一点,有开发工具支持p i m 到p s m ,p s m 到代码的自动变换。 二、增强可移植性 m d a 中,可移植性是通过把开发焦点转移到p i m 而获得的。因为p i m 是独 立与平台的,同一个p i m 可以被变换为多个不同的平台的p s m 。在p i m 中定义 的东西都是可移植的。 模型驱动技术在企业信息系统开发中的应用 三、增强互操作性 如图2 5 所示,m d a 把由一个p i m 生成的多个p s m 之间的对应关系称为桥 接器( b r i d g e ) 。不同目标平台的p s m 之间没有直接的对应关系,我们需要找出办 法把一种平台的概念变换为另一种平台的对应概念,这就是互操作性问题。m d a 解决这个问题的方案是:不仅生成p s m ,还生成p s m 之间的桥接器如果我们能够 把一个p 1 m 变换成为两个不同平台上的p s m ,那么我们也就有了桥接两个p s m 的全部信息。我们知道一个p s m 中的每个模型元素是从p i m 中的哪个元素变换 而来的,还知道p i m 中这个元素对应于另一个p s m 中的哪个元素。因此,我们 可以推断出两个p i m 中元素的对应关系此外,我们还知道两个p s m 平台的相关 技术细节对p i m 到p s m 变换所必须的) 。因此我们就具备了生成两个p s m 间桥 接器的全部信息。桥接器使我们可以在两个p s m 之间进行变换:也可以定义一种 新的模型变换,使生成的p s m 跨越两个平台,为不同平台上的子系统提供互操 作性。 第一田冼燃 图2 - 5 桥接器 例如,我们由一个u m l 描述的p i m ,通过相应的变换得到了一个e j b 的 p s m 。同时,我们还通过另外一个变换得到了一个c o r b a 的p s m 通过分析, 我们可以建立起e j bp s m 与c o r a bp s m 之间的桥接器,由此定义一个新的模 型变换,使生成的e j bp s m 可以集成c o r b a 请求。 四、便于维护 在m d a 开发周期中,模型是代码的精确表现,p i m 起到了系统的高抽象层 1 2 模型驱动技术在企业信息系统开发中的应用 次文档的作用。如果系统需要修改,只需要修改p i m 并重新生成p s m 和代码来 实现不像在传统开发方法中,还要时刻注意文档和设计之间的一致性。目前的 实践中,常常修改p s m ,再重新生成代码。以后的工具应该能够支持p i m 和p s m 之间的映射关系,使得p s m 的改动也能反映到p i m 保证高层次文档与代码之间 的一致性。 一、c w m 第五节o m g 制订的相关标准 c w m 是用来对数据仓库( 包括关系型,非关系型,多层次系统等) 中的元数 据进行建模的规范,它为数据仓库,数据挖掘领域内的元数据定义了对应的元模 型,它同时也是多层系统,异构系统间元数据交换的基础【 l 。理解c w i v l 元模 型的系统可以使用与其元模型对应的格式进行元数据的交换。c w m 包含一系列 的元模型,他们分别代表d a t af c s o l l g c , e s ,a n a l y s i s ,w a r e h o u s em e t as o u r c e 元模型支 持对遗产( 1 e g a c y ) 和非遗产( n o n l e g a c y ) 的数据元的建模,包括关系型数据库,面向 记录的数据库,基于x m l 和基于对象的数据源。a n a l y s i s 层定义了d a t a t r a n s f o r m a t i o n s ,0 l a p ,i n f o r m a t i o nv i s u a l i z a t i o n r e p o r t i n g , b u s i n e s sn o m e n c l a t u r e 和 数据挖掘( d a t am i n i n g ) 。仓库管理层( w a r e h o u s em a n a g e m e n t ) 定义了标准的 w a r e h o u s ep r o c e s s e s ,a c t i v i t yt r a c k i n g 和s c h e d u l i n g f o u n d a t i o n 元模型支持不同的 通用元素和服务,例如数据类型( d a t at y p e s ) ,类型系统映射( t y p es y s t e m m a p p i n g s ) ,抽象关键字和索弓l ( a b s t r a c tk e y ) ,表达式( e x p r e s s i o n s ) ,商业信息 ( b u s i n e s si n f o r m a t i o n ) 和基于组件的部署( c o m p o n e n t - b a s e ds o f t w a r ed e p l o y m e n t ) 。 每种产品表示元数据的方式不尽相同,它们都有自己的内部格式,因此它们 之间元数据的共享就必然存在障碍。现在设计者可以使用c w m 来解决这个问题 了,c w m 代表了基于模型的在软件系统间交换元数据的一种新途径。在多种产 品间共享的元数据将会使用数据模型来表示,而这些数据模型则使用c w m 元模 型来精确描述。某种产品将自己的元数据( 使用内部格式表示) 导出为使用并映射 到自己的内部格式,这样就达到了元数据共享的目的。现在c w m 提供的元模型 集合已经足以来对整个数据仓库模型中直接创建数据库实例。不同的工具组件将 模型驱动技术在企业信息系统开发中的应用 会处理模型的不同部分,比如,关系数据库服务器将会处理模型中的关系型部分 以创建它的分类( c a t a l o g ) ;o l a p 服务器将会在模型中搜索o l a p 元数据,用它来 定义它的多层模式( m u l t i d i m e n s i o n a ls c h e m a ) ;e t l ( e x t r a c tt r a n s f o r m l o a d ) i 具处 理的部分可能会跨越多个c w m 元模型,例如关系型,o l a 卫t r a n s f o r m a t i o n ,d a t a t y p e , t y p em a p p i n g 和e x p r e s s i o n 元模型。c w m 模型主要是用来定义高度通用的, 用于外部表示和共享元数据的模型。对于那些不适合c w m 格式的元数据,例如: 和工具高度耦合的元数据,可以通过c w m 的扩展机制来处理它,也可以通过扩 展核心的c w m 元模型来处理它,或者通过其他工具相关的方法来处理 二、u m l u ml 是定义c w m 的符号基础,但是c w m 同时也扩展了核心的u m l 元 模型的自己来支持数据仓库等【1 8 】。使用c w l v i 来构建数据仓库模型的时候,可 视化的建模工具是设计者的第一选择。一方面包含复杂的元模型结构的可视化模 型对于人来说易于管理和理解。另一方面,由于u m i 语言被精确的定义,可视 化的u m l 模型能够自动的转换到其他的格式。这就给交换于平台,工具无关的 c w m 模型,以及从c w m 模型中构造工具相关的元数据都带来的便利行。 三、m o f 不同的功能需要不同的建模结构集:关系数据建模所需要的建模结构包括表, 列,键等等。工作流建模所需的建模结构集包括活动,执行者,变化,分割,连 接等等。u m l 类建模所需的建模结构集包括类,属性,操作,关联等等。定义 c o r b a 接口的建模结构集包接口,值类型等等。 所以,为了描述某以特定类型的模型,设计者必须描述组成该型模型的建模 结构集。能有一种一致的方法来描述语言结构是必要的。业界正在使用全然不同 的方法来描述不同类型建模结构的本质。m o f 放弃了把这些不同的建模结构集 都合并成一个集合的想法,因为这意味着要把所有语言合并为一种,而采用统一 方式来描述组成类模型的建模结构属性结构间的关系。 m o f 被用来描述关系数据模型的建模结构,也被用来描述u m l 类模型的建 模结构:它还被用来描述其他种类的建模所用到的结构。m o f 是通用的,抽象的, 1 4 模型驱动技术在企业信息系统开发中的应用 用于定义元模型的语言,它可以被成为m e t a m e t a m o d e l 或者定义元模型的模型。 m o f 天生就是面向对象的,它定义了基本的元素,语法,元模型的结构。m o f 可以作为定义c w m 和u m l 元模型的更通用的模型引。 m o f 标准提供了: l 、抽象模型:定义m o f 对象和他们之间的关联 2 、规则的集合:将基于m o f 的元模型映射到语言无关的接口( 使用 c o r b a i d l 来定义) 对这些接口的实现可以被用来访问和修改任何基 于这个元模型的模型 3 、定义元模型元素的生命周期、复合、和关闭语义的规则。 4 、层级的反射接1 2 1 ( r e f l e c t i v ei n t e r f a c e s ) :定义了通用的操作,用于发现 ( d i s c o v e r ) 和操纵基于m o f 元模型的模型,但是对于映射后的接口的属主是 未知的。 m o f 的强大在于它使得不同的元模型可以互操作,能够理解m o f 的应用程 序可以在不了解特定领域模型实例接口的情况下,仍然能够使用反射接口提供的 通用操作来读取和更新模型。m o f 语义还定义了元数据仓库服务( m e t a d a t a r e p o s i t o r ys e r v i c e s ) ,它支持模型构建( c o n s t r u c t i o n ) 、发现( d i s c o v e r y ) 、移动 ( t r a v e r s a l ) 、更新( u p d a t e ) 。前提条件是此模型必须是可被理解的某种元模型的实 例。m o f 支持模型生命周期语义,意味着m o f 的实现提供了一种有效的元数据 授权和分发工具。例如,新开发的元模型可以保存

温馨提示

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

评论

0/150

提交评论