




免费预览已结束,剩余48页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学本科毕业论文 I 本科毕业论文本科毕业论文 (科研训练、毕业设计) 题题 目:基于目:基于 RSA 的的 MDA 实现与研究分析实现与研究分析 姓 名: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称:副教授 年 月 日 厦门大学本科毕业论文 II 基于 RSA 的 MDA 实现与研究分析 摘要 2002 年,OMG(国际对象管理组织)提出了 MDA(模型驱动架构) 。MDA 的目标 是把业务和应用逻辑与底层的平台技术分离。基于 MDA 及相关标准的平台独立应用能够在 一些开放或者专有平台上实现。充分细化的 PIM(平台无关模型)能够智能化地转换为实现, 而不必关注与具体实现技术相关的编码,也更好地实现系统的互操作性和适应业务的演化。 为了实现 MDA 的构想,OMG 制定了一系列的标准,国外很多开发工具也应运而生,具有 部分 MDA 特性。MDA 技术总体上尚处于初级发展阶段,但是已经表现出极大改变软件开 发状况的潜力。目前国内研究对 MDA 模型变换、MDA 框架下的标准及各种标准之间的相 互关系关注甚少。MDA 模型的变换和 MDA 框架下主要标准是开发具有 MDA 特性工具和这 些工具下进行应用开发的基础。 本文在对 MDA 的分析和研究上,以 MDA 的基本概念作为切入点,通过用 RSA 实现的 一个基于 MDA 的模型转换框架(Hibernate 框架)插件(从 PIM 到 PSM 的转换) 。并对 MDA 的优点、不足及未来作了深入的探讨和思考。 关键词模型驱动架构、模型转换、RSA、Hibernate 厦门大学本科毕业论文 III The analysis and research of the development of MDA in RSA Abstract In 2002, MDA (Model Driven Architecture) was brought forward by OMG (Object Management Group). MDA aims to separate business or application logic from underlying platform technology. Platform-independent applications built using MDA and associated can be realized on a range of open and proprietary platform. Fully-specified Platform-independent Model (PIM) can enable intellectual property to move away from technology-specific code, helping to insulate business application from technology evolution, and further enable interoperability. In addition, business application, freed from Technology specific, will be more able to evolve at the different pace of business evolution. In order to realize visualization of MDA, OMG established a series of standards. Many accessorial tools have parts of MDA characteristic have published overseas. MDA is a kind of technology that still in seedtime, but it represents deep potation. Domestic research draws little attention to standards under MDA framework and MDA model transformation. Developing accessorial tools have MDA characteristic and developing system using the tools must base on standards under MDA framework and MDA model transformation. About the analysis and research of MDA, this paper base on analyzing the basic concepts deeply, using a case which is implemented by IBM RSA to develop a plug-in unit which is a hibernate architecture which base on MDA model transformation architecture (the transformation is from PIM to PSM). Discusses the advantage and shortage of MDA and prospects the development of MDA in the future. KeywordMDA、Model transformation、RSA 、Hibernate 厦门大学本科毕业论文 IV 目录 第一章第一章 绪论绪论8 1.1.课题研究背景8 1.1.1.MDA背景.8 1.1.2.RSA简介9 1.2.MDA 发展状况以及 RSA 的优点9 1.2.1.MDA发展状况.9 1.2.2.RSA的优点10 1.3.本文的组织结构10 第二章第二章 MDA 与与 RSA 模型转换的基础模型转换的基础 .12 2.1.MDA 的相关概念12 2.1.1.MDA的定义.12 2.1.2.MDA的基本术语.12 2.1.3.MDA的体系结构.15 2.1.4.MDA的核心标准.16 2.1.5.MDA的原则.18 2.2.RSA 模型转换的相关概念.19 2.3.MDA 的工具支持19 第三章第三章 MDA 和传统的软件开发过程和传统的软件开发过程21 3.1.传统的软件开发过程21 3.2.基于 MDA 的软件开发过程.22 3.3.MDA 和传统软件开发过程的比较22 3.4.MDA 的特点23 第四章第四章 在在 RSA 中实现中实现 MDA 的的 PIM 到到 PSM 的模型转换的模型转换.25 4.1.HIBERNATE框架相关介绍 25 4.2.在 RSA 中实现 MDA 的 HIBERNATE框架 25 厦门大学本科毕业论文 V 4.2.1.插件的制作.25 4.2.2.插件的运行测试.33 第五章第五章 总结与展望总结与展望41 致谢致谢43 参考文献参考文献44 附录附录45 厦门大学本科毕业论文 VI CONTENTS CHAPTER 1. INTRODUCTION8 1.1. RESEARCH BACKGROUND8 1.1.1.The background of MDA8 1.1.2.The introduction of RSA.9 1.2.THE STATUS OF MDA AND THE ADVANTAGE OF RSA.9 1.2.1.The status of MDA.9 1.2.2.The advantage of RSA.10 1.3.ORGANIZATIONAL STRUCTURE.10 CHAPTER 2. THE BASIC OF MDA AND MODEL TANSFORMATION12 2.1.THE CONCEPT OF MDA.12 2.1.1.The definition of MDA 12 2.1.2.The basic term of MDA12 2.1.3.The Architecture of MDA15 2.1.4.The core standards of MDA.16 2.1.5.The principle of MDA .18 2.2.THE CONCEPT OF MODEL TRANSFORMATION.19 2.3.THE TOOLS OF MDA.19 CHARPTER 3.THE PROCESS OF TRANDITIONAL SOFTWARE AND MDA.21 3.1.THE PROCESS OF DEVELOPMENT OF TRANDITIONAL SOFTWARE21 3.2.THE PROCESS OF DEVELOPMENT BASED ON MDA.22 3.3.COMPARE WITH MDA AND TRADITIONAL SOFTWARE DEVELOPMENT22 3.4.THE CHARACTERISTIC OF MDA23 CHAPTER 4. A APPLICATION BASED ON MDA BY RSA25 4.1.THE INTRODUTION OF HIBERNATE ARCHITECTURE.25 4.2.DEVELOPMENT THE HIBERNATE ARCHITECTURE OF MDA BY RSA26 厦门大学本科毕业论文 VII 4.2.1.The manufacture of Plug-in unit.26 4.2.2.The testing of Plug-in unit31 CHAPTER 5. CONCLUTION AND PROSPECT41 ACKNOWLEDGEMENT.43 REFERENCE44 APPENDIX .45 厦门大学本科毕业论文 第 8 页 共 53 页 第一章 绪论 2.1. 课题研究背景 2.1.1.MDA 背景 目前,计算机软件业内各种基础平台和工具技术的更迭愈演愈烈,为了提高软件开发效 率,提出了面向对象(OO)、基于组件开发(CBD)、模式、分布式计算基础构架、中间 件等方法。而随着项目的进展,设计阶段产生的UML模型和代码之间的同步变得越来越困难 代码为了应付新增加的需求和新产生的想法而不断变化,模型却一直停留在原地不动, 这使得模型在一段时间之后就失去了它的价值。 中间件技术的出现大大减轻了异构系统的集成负担,但是众多的中间件产品不断发展, 难以形成统一的中间件标准,从而使得新旧系统之间的集成或演化面临不同的实现技术。如 何保证现有投资并驱动整个系统的技术升级成为不可避免但又难以解决的挑战。为此, OMG提出模型驱动体系(Model Driven Architecture, MDA),分离业务功能的分析设计与 实现技术之间紧耦合的关系,从而是技术变化对系统的影响达到最小。从宏观看,MDA使 得应有模型与领域模型在整个软件生命周期中得到了复用。MDA支持整个系统生命周期中 的集成,从业务建模到系统设计、组件的构造、组装、集成、部署、管理和改进。MDA以 UML为基础解决了系统建模问题后使得软件开发过程变得更加自然、简单。MDA的提出标 志着通用软件建模开始走向成熟阶段。 MDA而言,模型不再是一种辅助工具,而是开发过程的产品;把建模语言当成编程语 言来用,而不只是当作设计语言来用。MDA最大的优势就是业务模型的持久价值,但是付 出的代价是增加了抽象层。它适合建模完整的系统,例如三层架构、两层架构的系统、Web Services、而对基于J2EE和.NET 的应用也都是适合的。 构造基于MDA的应用需要良好工具的支持,IBM、Oracle、IONA等等都宣称将在自己 的企业级软件解决方案中融入MDA的思想,两大建模工具厂商Rational和Together也声明自 己的产品开始加入对MDA的支持,因此开发MDA工具本身将是下一阶段的重点。 其中MDA的核心是模型转换(Model Transformation)。在MDA中,人们关注分析胜 过关注编码,关注模型胜过关注实现,关注业务胜过关注平台,关注模型转换胜过关注平台 厦门大学本科毕业论文 第 9 页 共 53 页 迁移。模型允许开发者关注于应用的主要方面而将细节延后考虑,转换则扩展了模型的能力, 使开发者可以替换模型的优化和细分。 2.1.2.RSA 简介 RSA(Rational Software Architect)是IBM的新一代软件开发平台,代号为 Atlantic。RSA基于开放/可扩展的Eclipse 3.0构建,全面支持UML 2.0标准和模型驱动的开发 方法。RSA为开发当今日益复杂的应用系统提供了一个强大的开发环境,整合了UML建模、 J2EE、XML、web services、C+开发工具以及RUP过程指南等诸多功能,是软件架构师/开 发人员的首选工具。 为了支持模型驱动开发过程中各种模型之间的转换,RSA 提供了一个功能强大、易于 扩展的模型转换框架(Model Transformation Framework),该框架是一个基于规则的执行 引擎,基于该框架,可以很方便地定义模型转换规则,实现各种模型之间的转换。RSA 模 型转换框架实现了模型转换的注册和配置管理,提供了统一的运行界面,以及各种开发向导。 其整体框架图如图 1-1 所示。 图图 1-1 RSA 整体框架结构整体框架结构 RSA 预装有一些常用的模型转换,包括 UML2JAVA、UML2CPP、UML2EJB,这三个 转换分别以 UML 模型为输入,生成对应的 Java 程序、CPP 程序和 EJB。 2.2. MDA 发展状况以及 RSA 的优点 厦门大学本科毕业论文 第 10 页 共 53 页 2.2.1.MDA 发展状况 MDA 具有先进的思想,代表着软件开发技术的趋势,但是没有严格明确的规范。由于 MDA 的概念提出了一种全新的软件开发方式(区别于以编码为中心的开发方式) ,为我们展 现了美好的前景,所以有很多软件开发工具商对自己的工具作了改进增加了支持 MDA 的功 能,并且宣称完全支持 MDA。也出现了不少专门的开源 MDA 软件工具。但是需要指出的, 作为一个概念性的软件开发架构,OMG 并没有给出类似 J2EE 技术那样的参考实现 (reference implementation)和兼容性测试工具(Compatibility Test Suite) ,所以各种开 发工具都以自己对模型驱动概念的理解对 MDA 进行支持。最大程度的使映射过程自动化应 该是 MDA IDE 追求的目标,让用户感觉就像在普通 IDE 中编译程序一样简单。但是完全实 现自动化只是一个神话,在大多数情况下还是需要手工的编码的。 目前 MDA 开发有两种方式。一种是使用完全符合 MDA 的开发工具,这种工具支持 MDA 的整个开发过程。另一种是把建模和代码生成分开,先使用一种 UML 建模工具设计模 型,并完成各种模型的转换。然后这一阶段的成果就是 XML 文件。代码生成阶段就充分利 用 XML 中包含的面向对象的信息生成类文件。 2.2.2.RSA 的优点 借助于 Rational Software Architect,我们可以将软件设计和开发的各个方面统一起来: (1). 开发应用程序时比以前更加卓有成效 (2). 利用建模语言技术中的最新成果 (3). 检查和控制 Java 应用程序的结构 (4). 利用开放的可扩展的建模平台 (5). 简化设计和开发工具解决方案 (6). 与生命周期中的其他方面进行整合 2.3. 本文的组织结构 本文共分为五章: 第一章主要介绍了 MDA 的研究背景以及发展状况以及 RSA 的基本介绍。 第二章阐述了 MDA 和 RSA 模型转化的知识和相关概念以及开发工具。 第三章 MDA 与传统的软件开发过程进行比较。 厦门大学本科毕业论文 第 11 页 共 53 页 第四章在 RSA 下利用 MDA 技术实现 Hibernate 插件的制作实现从 PIM 到 PSM 的转化 并利用 RSA transformation 将 PSM 转化成 JAVA 代码。 第五章总结 MDA 技术在 RSA 中的应用,展望 MDA 的前景以及进一步的工作。 厦门大学本科毕业论文 第 12 页 共 53 页 第二章 MDA 与 RSA 模型转换的基础 2.1. MDA 的相关概念 2.1.1.MDA 的定义 MDA(Model Driven Architecture)模型驱动架构是 OMG(国际对象管理集团)组织 在继提出了 UML 后又力推的一中新的软件开发框架,它基于 UML 以及相关工业标准的框 架,支持模型的可视化、存储和交换。以独立于实现标准化方式储存机器可读和高度抽象的 模型,并进行模型数据之间严格变换,最终生成可执行程序。模型驱动的系统开发过程应具 备一下四个特征:开发过程主要是通过利用不同抽象层次的概念模型(concept model)和 利用多视角(viewpoints)来完成;它对平台独立模型(PIM,Platform Independent Model)和平台相关模型(PSM,Platform Specific Model)做出了清楚的区分;模型不仅 在开发初始阶段,而且在维护、复用以及进一步的开发过程中都扮演着基础性的重要角色; 模型记录各种模型间的关系,因而为模型的精化(refinement)和转换(transformation)提 供了精确的基础。 2.1.2.MDA 的基本术语 (1) 模型 模型是对现实存在尸体的抽象和简化,是对系统的功能、结构、行为及其环境的描述和 规约。首先,模型是一种系统规约,这种规约可以是对结构的规约也可以是对系统功能或系 统行为的规约;其次,这种规约必须是正式的,即必须使用一种没有歧义的语言来严格定义, 所以一个模型必须和一中严格定语了语法和语义的建模绑定在一起。在 MDA 中,它要求建 模必须用精确定义没有歧义的语言来描述,以便支持模型间的自动转换。而这种精确定义没 有歧义的语言是具有严格的形式(语法)和含义(语义)的语言,以适合计算机自动解释。 图 2-1 描述了模型和它表述的系统、表述它的语言三者之间的关系。 厦门大学本科毕业论文 第 13 页 共 53 页 图图 2-1 模型和语言模型和语言 (2) 抽象 从冯诺依曼发明了存储程序式计算机以来,抽象是人们解决计算机问题的最重要的方 法,抽象在很多情况下可以理解成透明,即略去无关的细节。通过在软件开发中加强模型的 作用来提升抽象高度,使系统模型在包括理解、设计、构建、部署、运行、维护、修改的整 个软件开发的生命周期中起指导作用。不管 IT 业如何发展,从目前的趋势来看将来不可能 只存在一中编程语言、一种操作系统或一个中间件的理想环境。面对如此复杂的环境,为了 能在变化多端的环境中寻求稳定的解决方案,OMG 给出的答案就是抽象,它认为利用 MDA 可以得到更好的高层抽象设计架构,更好地得到针对今天各种语言的通用化代码。 (3) 视角 视角就是根据不同的抽象层次去观察系统能够,使得到的模型更简单,设计人员的思想 聚焦于他所关注的问题,而屏蔽过滤掉其余他不关心的细节。 MDA 指导的开发过程中最核心的部分就是把软件设计的复杂性分散到不同的层面上, 在每一个层面上只关心一类问题,使从简单性进化来的复杂性重新还原成多哥层次上的简单 性。由于在开发过程的不同时期关心的问题不同,就需要从不同的角度去观察系统,所以这 些层次在 MDA 中被称为视角。 (4) 平台无关模型(PIM)与平台相关模型(PSM) MDA 将软件系统的模型分为平台无关模型(PIM)和平台相关模型(PSM) 。PIM 是对 系统高层次的抽象,它是一个不带有任何特定技术细节并且与实现技术无关的业务模型。其 中包括组织模型、功能模型、信息模型、流程模型等。而包括了特定技术细节并且与具体的 实现技术相关的模型,就是 PSM。 当然,在实际应用中很难为模型的平台无关和平台相关性划分一个明确的界限。也就是 说 PIM 和 PSM 是两个相对的概念。一个模型在特定环境中可以被看作与平台无关,但在另 一特定环境又可以是平台相关的。当说某个模型或建模语言是平台独立的,往往要指明独立 于什么样的平台,否则是没有任何意义。因此在基于 MDA 的开发中,可以说是把一个较为 平台独立的模型转换为一个较为平台相关的模型。 (5) 模型映射 厦门大学本科毕业论文 第 14 页 共 53 页 模型映射简单说就是模型转换,映射是将一个模型转换成另一个模型的组织规约和技术, 它规定了源模型中的元素如何对应到目标模型中的元素。MDA 是由不同层次模型之间的映 射技术所构成的,借助层间影射关系,上层模型经过一定的转换规则可以转换成不同的下层 模型。MDA 模型的映射关系如图 2-2 所示。 图图 2-2 MDA 中模型的映射关系中模型的映射关系 从上图可以看出,在 MDA 中不同的模型之间存在映射关系,PIM 可以通过一定的映射 技术对自身进行完善,PIM 也可以通过转换工具自动转换为 PSM,生成的 PSM 既可以通过 一定的映射进行自身的细化,也可以从 PIM 中生成与具体实现技术无关的模型。具体来说, MDA 中存在着以下四种模型映射关系: PIM 到 PIM 的映射 在软件开发过程中,开发人员会根据用户需求的不断变更或其它因素对 PIM 进行增强、 过滤或细化,以便它能够更加精确地描述系统。例如从分析模型到设计模型的转换。 PIM 到 PSM 的映射 该映射是从业务模型转换到与具体实现技术相关的应用模型。在 MDA 的实际应用中, 根据不同的实现技术或平台通常一个 PIM 会对应多个 PSM。例如从逻辑模型到现实的商业 组件模型。 PSM 到 PSM 的映射 该映射是对 PSM 模型的精化,用来精炼构件实现和部署过程中相关模型间的关系,以 便生成质量更高的代码。比如 EJB 组件中具体服务的选择和属性配置。 PSM 到 PIM 的映射 PSM 到 PIM 的映射过程类似逆向工程操作,主要是从现有的应用模型 PSM 中提取与 平台无关的模型信息,通常难以自动实现。 (6) 体系结构 体系结构是某一个实体的基础结构及其组成成分之间的相互关系。体系结构捕获了实体 的本质特征和主要属性,同时捕获了实体中的主要构件、构件的组织和交互,以及指导这些 构件的设计和演化原则。MDA 指定了系统中要使用的模型以及不同种类模型间的关系。 (7) 软件平台 厦门大学本科毕业论文 第 15 页 共 53 页 软件平台可以描述为在特定的硬件技术下实现某种技术的基础结构(如 UNIX 平台、 CORBA 平台、J2EE 平台) 。平台通过接口和特定的使用模式向搭建在平台上的各种应用提 供功能和服务,而这些平台上的应用不需要关心平台所提供的功能和服务是如何实现的。 2.1.3.MDA 的体系结构 MDA 由许多重要的 OMG 标准共同实现(如图 2-3 所示) ,包括 UML,MOF,XMI,VWM。UML 负责体系结构,对象与对象之间关系、数据、构件结构及 组装关系的建模;XMI 是一种标准的交换机制,用于各种不同工具、仓库和中间件的数据交 换,XMI 也能用于自动地生成 XML DTD,XML Schemas;MOF 是一个标准的基础设施, 用于管理信息库中的对象模型的生命周期;CWM 是 OMG 提供数据仓库的标准,在数据仓 库、电子商务工具、应用程序和 OMG 标准技术规范的各种知识库之间提供互操作性能,它 包括数据源表达、分析、仓库管理,以及典型的数据仓库环境基础组件,为数据建模提供了 基础。 图图 2-3 MDA 的体系结构的体系结构 应用系统的存在必然依赖一系列的服务,具体的服务类型与不同的应用系统有关发,但 一些服务通常是共有的、典型的,如目录服务、事件服务、安全服务等。上面这些服务如果 定义在特定的平台上,那么它必然受到该平台的限制,可见,只有集成了服务的特征和结构 以后,MDA 关于平台无关的定义才能适合所有的中间件平台。为了使服务也具有平台无关 的特征,MDA 定义了平台无关模型层次的普遍性服务,这样,系统所需的服务也可以使用 UML 来描述,然后映射到平台相关服务。 厦门大学本科毕业论文 第 16 页 共 53 页 现在,应用系统之间的集成完成由 MDA 的关键元素来完成,具体的模型和 XML DTD 划分了整个软件开发的声明周期,UML Profiles 提供了不同生命周期阶段模型之间的映射, XMI 通过 XML 完成了模型、元数据(MOF,CWM)和中间件(UML Profiles for Java ,EJB,IDL,EDOC 等)的无缝集成。 2.1.4.MDA 的核心标准 MDA 的核心是建模和模型转换技术,因此了解相关的建模标准是很有必要的。因此 OMG 制定了一系列关于模型精确形式化表示、存储以及交换方面的标准。如统一建模语言 (Unified Modeling Language, UML) 、元对象实施(Meta Object Facility, MOF) 、公共仓 库元模型(Common Warehouse Metamodel, CWM)和 XML 元模型交换机制(XML Metamodel Interchange, XMI)等。 (1)MOF MOF 是一个 OMG 的标准,它定义了建模语言的语言。它作为一种元元模型,不仅提 供了一组建模元素和使用这些元素的规则,同时也为构建元模型定义了一种公共的抽象语言。 为了描述某一特定类型的模型,通常必须描述组成该类型的建模结构集,但对于不同的 功能、需要的建模结构集也会有所不同,如 UML 类建模所许的建模结构集包括类、属性、 操作、关联等,而定义 CORBA 接口的建模结构集却包括接口、值类型等。为了描述某一特 定类型的模型,必须描述组成该类模型的建模结构集,而且希望有一致的方法来描述语言结 构。为此 MOF 成为一种描述任何不同类型建模结构的统一方式。它可以被用来描述关系数 据模型的建模结构,也可以被用来描述 UML 类模型的建模结构,甚至其他种类的建模所用 到的结构。 MOF 提供了一种支持各种元数据的框架。元数据简单说是关于数据的数据,指的是数 据模型。它不仅只有元模型这一种类型,也包括其他类型,如工作流模型和对象模型。当然 也可以根据需要添加新类型的元数据。其实现方法是对元数据分层。MOF 的分层元数据结 构是一种典型的四层建模结构,如图 2-4 所示。 厦门大学本科毕业论文 第 17 页 共 53 页 图图 2-4 MOF 元数据模型元数据模型 从上图可以看出,MOF 位于 M3 层,因为没有更高的层次,所以 MOF 本身是由 MOF 来自描述的,它是 CWM 和 UML 等元模型的公共模型,即 UML 和 CWM 等元模型都是用 MOF 来描述的。一个 UML 模型 m 可以是一个 Customer 类或一个 Account 类,而 m 的一 个实例则可以表示为客户张三或账户 2568。 MOF 不仅用于定义建模语言,还可以创建定义建模语言的工具。MOF 定义包含了一个 MOF 仓库接口的规约。这一接口允许从基于 MOF 的仓库中获取 M1 层模型。这一接口是用 CORBAL IDL 定义的。MOF 的 IDL 映射定义了一系列 MOF 描述的元模型到 CORBA IDL 接口的映射模板,CORBA IDL 接口与语言和平台都无关。生成的借口用于规范化对存储库 中元数据的访问和操作。对于 Java 来说也有同样功能的本地接口 JMI(Java Metadata Interface, Java 元数据接口)。MOF 还被用于为 M1 层模型定义基于流或基于文件的交换格 式。每当用 MOF 描述的元模型定义了一种建模语言时,MOF 就会定义一种生成用该建模 语言表述的模型的标准交换方式,该交换方式是基于 XML 的,被称为 XMI(XML Metadata Interchange, XML 数据交换) MOF 在 MDA 中扮演着举足轻重的角色,由于 MOF 对建模语言的定义,从而使建模语 言之间的转换成为了可能,它统一了元模型的标准语言,从而开发者能正确定义转换,因此, MOF 是让 MDA 成为现实的核心技术,但 MOF 在有些地方也表现出一定的局限性。例如, MOF 没有定义图形符号的语言。还有 MOF 对版本管理也缺乏支持,MOF 与 UML 的抽象 语法难以共享以及由于 MOF 标准不成熟而带来的互操作性等问题。 (2)UML UML(Unified Modeling Language)统一建模是一种可视化的建模语言,包括予以和 表示法,使用不同的工具和实现语言,并对其各建模元素可进行详细说明,并能生成所建模 厦门大学本科毕业论文 第 18 页 共 53 页 型的文档。UML 定义了九种视图,分别从不同的视角对系统进行描述。在 MDA 中,所有的 模型均是以 UML 来描述的。UML 模型比其他描述性模型语言所表示的模型(如基于 IDL 的 对象模型、Java 接口等)具有更加丰富的语义。及至 2003 年 UML2.0 标准将得到最后的完 善。该标准包含了许多新特性,并且增加了 UML 行为语义(Action Semantics) ,它能够以 精确的但与平台无关的方式定义活动和行为,否则,开发者只能借助于特定平台如 Java 或 Visual Basic 等来描述活动和行为。 (3)CWM CWM 是 OMG 的数据仓库标准。它覆盖了数据仓库应用程序的生命周期,包括设计、 构建和管理,并且支持生命周期的管理。CWM 定义了一种元模型,描述了在数据仓库和业 务分析领域内使用最频繁的业务和技术元数据。它是异构的软件系统之间元数据实例互交换 的基础。能够理解 CWM 元模型的系统以一定的格式交换元数据,该格式与元模型保持一致。 CWM 实际上代表了一种基于模型的方法,以便在软件系统之间互相交换元数据。一个系统 可以按照 CWM 规定的格式将内部元数据结构形成一个模型,以这种方式导出元数据,而另 外一个系统则可以通过消费 CWM 兼容的模型并把它映射到自身的内部元数据,从而导入元 数据。 (4)XMI XMI(Extensible Markup Language(xml) Metadata Interchange) ,就是用 XML 的形式 来表现对象,是一种在不同工具、知识库和中间件之间使用的标准的互交换机制。可用于从 UML 和 MOF 模型自动产生 XML DTD,它为这些模型的产物提供了一种 XML 序列化机制。 如,XMI 已用于生成 UML 产物(使用 UML XMI DTD) 、数据仓库和数据库产物(使用 CWM XMI DTD) 、CORBA 接口定义(使用 IDL DTD) 、Java 接口和类(使用 Java DTD) 。 XMI 将建模(UML) ,元数据(MOF 和 XML)以及中间件(针对 Java,EJB,IDL,EDOC 等的 UML Profile)联系在一起。因为有 XMI,PIM 才能灵活地转换成各种 PSM。 2.1.5.MDA 的原则 OMG 组织对于 MDA 的观点有以下四个原则: (1)以一种良好的符号表示的模型是理解企业级方案系统的基础。 (2)系统的构建能够围绕着一系列模型通过使用在模型之间的一系列转换被组织的,并 且能被组织到一个分层和转换的体系架构框架中。 (3)以一系列元模型来描述模型的一种正式的支持能够使在模型中有意义的集成和转换 厦门大学本科毕业论文 第 19 页 共 53 页 变得容易,并且是通过工具实现自动化的基础。 (4)接受和广泛采纳基于模型的方法需要工业的标准提供开发性给客户,并鼓励供应商 之间的竞争。 为了支持这些原则,OMG 已经定义了一系列的层次和转换,他们为 MDA 提供了概念 性的框架和词汇表。特别的,OMG 确定了四种模型类型:计算无关的模型(CIM) 、平台无 关模型(PIM) 、被一个平台模型描述的平台相关的模型(PSM)和一个实现相关的模型。 2.2. RSA 模型转换的相关概念 在 RSA 中缺省提供了 UML 到 Java、UML 到 C+、UML 到 EJB 的模型转化实现。 RSA 模型是以插件的形式存在的,用户利用它可以灵活创建模型转换功能,并且 transformation 提供了向导,可以指导用户完成模型转换框架插件项目的创建过程。我们简 单的介绍一下 RSA 模型转换的一些相关概念。 (1) Transformation(转换):以源模型对象为输入,目标模型对象为输出,实现模型 之间的转换。每个转换由若干条转换规则组成。 (2) Rule(转换规则):以源模型对象中某部分为输入,目标模型对象的对应部分为输 出,实现了功能逻辑上相对独立的一部分转换任务。 (3) Transformation Context(转换上下文):转换上下文是转换过程中转换规则之间 共享数据的容器。在转换的执行过程中,转换上下文会在规则的实现之间传递,每一个规则 可以向上下文中存放需要共享的数据,也可以从中获取所需的数据。 (4) Transformation UI:模型转换框架会为每个转换提供一个默认的配置管理界面,让 用户指定源模型,目标模型,以及所需的一些转换属性。如果需要定制更加复杂的界面元素, 则需要模型转换的开发人员对默认的界面加以扩展。 2.3. MDA 的工具支持 MDA 目前还是一个正在完善之中的构想,MDA 开发的理想情况是,除了第一步的 PIM 构造,后续的工作都是由工具完成的,而且能够一次设计,多平台部署。所以,MDA 的发 展要建立在工具发展的基础上。工具的支持是 MDA 发展的重要环节。 建模工具是 MDA 的基础,但模型转换工具是 MDA 工具集中最核心的部分,主要分为 下面几类: 厦门大学本科毕业论文 第 20 页 共 53 页 (1) PIM 到 PSM 的变换工具 (2) PSM 到代码的变换工具 (3) PIM 到代码的变换工具 (4) 可调的变换工具 (5) 变换定义工具 虽然变换工具处于 MDA 开发工具的核心部分,但其他相关功能的支持还需要其它的工 具,如建模工具、模型编辑和修改工具、模型仓库等。 所有的这些功能可能会以两种形式出现:同语言相关的或独立于语言的,语言相关的工 具可能会为某种语言(例如 UML)提供一个模型编辑器,并且提供向特定编程语言的代码 生成器,而语言独立的模型编辑器则可能允许用户编辑任何模型,当然,工具中必须有该模 型的语言定义。 厦门大学本科毕业论文 第 21 页 共 53 页 第三章 MDA 和传统的软件开发过程 2.1. 传统的软件开发过程 传统的软件开发过程可以包括一下六个阶段: (1)计划:对所要解决的问题进行总体定义,包括了解拥护的要求及现实环境,从技术、 经济和社会因素等三个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解 决问题的方案,并对可供使用的资源成本,可取得的效益和开发进度作出估计。制定完成开 发任务的实施计划。 (2)分析:软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、 去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书) 表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型, 编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、 数据流程图和数据字典等方法。 (3)设计:本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结 构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系 统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或是沪剧结构设计说明 书,组装测试计划。 (4)编码:软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序 设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和变成风格,有助于 开发工具的选择以及保证软件产品的开发质量。 (5)测试:软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关 键在于设计一套出色的测试用例。如何才能设计出一套出色的测试的用例,关键在于理解测 试方法。不同的测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方 法有白盒测试和黑盒测试。 (6)维护:维护是旨在完成对软件的研制工作并交付使用以后,对软件产品进行的一些 软件工程的活动。即根据软件运行的情况,对软件进行适当的修改,以适应新的要求,以及 纠正运行中发现的错误。编写软件问题报告、软件修改报告。 在实际的开发过程中,软件并不是从第一步进行的最后一步的,而是在任何阶段,在进 厦门大学本科毕业论文 第 22 页 共 53 页 入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可 能会提出一些需要来修改需求说明书等。 2.2. 基于 MDA 的软件开发过程 给予 MDA 的开发的第一步是使用 UML 建立 PIM,一个 MDA 模型可以有多哥 PIM,但 是只有一个基本 PIM 包含了平台无关的系统行为,即业务功能。基本 PIM 由建模人员和领 域专家共同完成,以保证模型的完整和正确性,其他的 PIM 包括一些与具体平台无关的技 术细节,MDA 建模工具还允许 PIM 集成普遍性服务和领域设施,通过添加这些信息到第二 层 PIM,可以使 PIM 到 PSM 的影射更加准确。UML 中的对象约束语言已经可以支持 PIM 的这些特征。在 UML 中,使用对象和类图来表示 PIM 的结构:序列和活动图表示行为、类 名和对象名,并包括语义符号。OMG 正在对 UML 进行扩充和裁剪以完全支持 MDA 建模需 要。PIM 建立以后就存入 MOF,作为模型映射的输入。 为了产生 PSM,必须选择一个平台,然后通过对 MDA 规定的映射规则把 PIM 所包含 的信息映射为目标平台所需要的形式。在完成了 PIM 到 PSM 的映射以后,就可以根据具体 的平台选择相应的编程语言了,支持.NET 的 MDA 映射工具将根据选择的编程语言自动产 生源代码以及配置信息、WSDL、UDDI、XML DTD 等内容;如果目标平台为 CORBA,那 么支持 CORBA 的 MDA 映射将产生 CIDL,PSDL 等内容。 最后一步就是在具体的中间件平台编译、组装和部署 MDA 应用。MDA 开发过程的关 键步骤如图 3-1 所示。 转换工具 1 转换工具 2 PIMPSM Code 图图 3-1 MDA 开发过程的三个关键步骤开发过程的三个关键步骤 2.3. MDA 和传统软件开发过程的比较 厦门大学本科毕业论文 第 23 页 共 53 页 基于 MDA 的开发过程可以分为需求、分析、设计、编码、测试、部署几个阶段如图 3- 2 所示,与传统开发过程相比,几个阶段内的活动和产品则有不同。在分析阶段不许要考虑 系统的实现平台,根据需求创建 PIM,分析阶段的产品 PIM;设计阶段将选择某一个实现平 台,然后依靠转换工具得到代码,基本上不需要程序员进行手工编码。 图图 3-2 MDA 的开发生命周期的开发生命周期 2.4. MDA 的特点 从 MDA 整个开发过程以及和传统的软件开发方法进行比较其具有以下的特点: (1) 模型驱动,MDA 认为一切都是模型。 (2) 业务导向无关性。业务导向是指MDA 基于企业工程理论和企业参考模型,为软件 设计和开发提供有效的导向和依据,帮助开发者全面、正确和迅速地实现管理者的管理和业 务要求,大幅度地提升管理软件的开发、发布和维护的效率及质量,并在业务持续完善的过 程中实现快速调整。 (3) MDA 是一个开发的、中立于软件商的架构,能支持异构系统之间的互操作。 它从系 统模型层次上来解决互操作性的问题,互操作性能够实现的一个重要原因就是设立了元模型 的规则,元模型在规范中、建模技术中和元数据中都是主要的活跃因素。互操作性最终都是 通过共享的元数据和理解元数据的策略来实现的。 (4) 独立于程序设计语言和平台。MDA 通过运行平台直接执行企业的业务,实现业务 模型和系统实现技术的分离,使应用系统可以在各类主流和标准的基础平台上运行,并可以 厦门大学本科毕业论文 第 24 页 共 53 页 顺利地迁移到未来的实现技术上。 (5) MDA 意味着更多的“组装”而不是“开发”。 在为一个应用建立PIM 的时候,基 本上没有技术上的周旋空间。 厦门大学本科毕业论文 第 25 页 共 53 页 第四章 在 RSA 中实现 MDA 的 PIM 到 PSM 的模型转换 2.1. Hibernate 框架相关介绍 Hibernate 框架是一个开发源码的 ORM(Object-Relation Mapping)持久层框架其框 架图如图 4-1 所示。ORM 的实质就是将关系数据(库)中的业务数据用对象的形式表示出 来,并通过面向对象(Object-Oriented)的方式将这些对象组织起来,实现系统业务逻辑的 过程。目前我们所使用的基本上是关系型数据库,很难做到把关系表纪录完整的映射到持久 对象的关系上来。Hibernate 将 JDBC 进行了封装并且提供一套面向对象的 Hibernate API。现在 Hibernate 基本上已经能够是 ORM 的通用标准了。 图图 4-1 Hibernate 框架图框架图 2.2. 在 RSA 中实现 MDA 的 Hibernate 框架 2.2.1.插件的制作 接下来我们主要介绍在 RSA 实现 MDA Hibernate 框架的插件的整个制作过程。 . 根据插件工程制作向导制作插件工程 厦门大学本科毕业论文 第 26 页 共 53 页 (1)打开 RSA 这个软件,并选择 Plug-in Development 这个开发平台,然后打开 File 菜 单选择 New 并选择 Plug-in Project,如图 4-2 所示。 图图 4-2 建立插件工程建立插件工程 (2)点击 Plug-in Project 打开对话框,在该对话框中的 Project Name 这一栏里输入整个 项目工程的名字,并点击 Next 进入下一步,如图 4-3 所示。 图图 4-3 输入插件名称输入插件名称 (3)在 Class Name 里输入要保存类的路径,点击 Next 进入下一步,如图 4-4 所示。 厦门大学本科毕业论文 第 27 页 共 53 页 图图 4-4 输入类路径输入类路径 (4)让这个插件基于 transformation 这个模板来建立,所以在这步里选择复选框,并在 Available template
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 总览纺织工程师考试中的软技能考察试题及答案
- 浙江林场考试试题及答案
- 激光技术工程师试题探讨
- 深度理解医学基础知识概念的重要性试题及答案
- 药品研发中的伦理标准研究试题及答案
- 探讨文化产业管理证书考试的试题与答案
- 营养指南更新的背景与公共营养师考试知识的对接试题及答案
- 系统架构设计师考试有效学习方法探讨试题及答案
- 系统管理师笔试中的常见错误试题及答案
- 激光技术工程师重要知识点总结试题及答案
- 坚定理想信念争做时代新人
- 浮与沉潜水艇课件
- 《大学生就业指导》大学生就业权益与保障
- 塔吊与起重机械操作安全培训课程
- 七星瓢虫课件
- 2024年英才计划笔试化学
- 你也走了很远的路吧
- 安全生产月“一把手”讲安全课件
- 初中文言文教学的现状与对策研究
- 全国水利ABC证单选题七
- 曾国藩人生修炼日课
评论
0/150
提交评论