首页 > 代码库 > atitit.提升开发效率---mda 软件开发方式的革命--(2)
atitit.提升开发效率---mda 软件开发方式的革命--(2)
atitit.提升开发效率---mda 软件开发方式的革命--(2)
1. 一个完整的MDA规范包括: 1
2. 一个完整的MDA应用程序包括: 1
3. MDA可以带来的最大的三个优点是什么? 2
4. 三大MDA工具 2
5. 代码补充 3
6. Mda的问题 3
7. EMF与MDA 4
8. MDA跟代码自己主动生成的差别 4
9. openMDX-开源MDA平台 5
10. openMDX 的开发过程 5
11. MDA的两种实现 5
12. 參考 6
1. 一个完整的MDA规范包括:
1、一个权威的基于UML的平台无关模型PIM;
2、一个或者多个与特定平台相关的模型PSM;
3、接口定义集合- 每一个集合描写叙述了基础模型再不同中间件平台上的实现。
2. 一个完整的MDA应用程序包括:
1、一个权威的PIM;
2、一个或者多个PSM;
3、一个或者多个完整的实现- 开发者决定支持的全部平台上的应用程序实现。
将PIM映射到某个特定平台的PSM的工作是由工具自己主动完毕的,当我们须要支持新的技术的时候,这就简化了我们的工作。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
3. MDA可以带来的最大的三个优点是什么?
使用MDA方式可以带来非常多的优点,最重要的三个是:基于MDA的架构总是可以随时应付昨天的、今天的和未来的下一 个主流技术。MDA将会使得应用程序和工具可以跨越中间件的边界,从而变得更easy集成。OMG Domain Task Forces小组负责在MDA中定义领域相关的工具,它将会提供更广阔的互操作性。由于这些工具将会在特定领域的首选平台上可以使用,并且假设须要,也可 以在多种平台上被使用。
4. 三大MDA工具
ArcStyler简单介绍
ArcStyler是德国Interactive Objects Software GmbH公司开发的MDA开发软件,它遵循OMG的MDA 规范,纯JAVA 开发,跨平台。是当前最流行的三大MDA工具之中的一个,支持J2EE和.NET平台,支持桥接器的动态载入。
4.3 建立PIM模型
如同使用一些通用的UML工具一样,能够在UML工具区建立系统的PIM模型,包含下面工作:
? 创建一个名为iBank的包;
? 在iBank包中创建一个名为iBankDiagram的类图;
? 在iBankDiagram图中创建Account,Bank,Transfer三个组件;
? 为上面三个组件加入对应的方法和属性;
完毕之后得到的模型例如以下图:
建立PSM模型
事实上在ArcStyler中并没有区分PIM和PSM,由于ArcStyler并没有提供从PIM到PSM的自己主动转换工具,它是选择了通过标注的方式来体现PSM的思想。
为了清晰起见,笔者将建模环节区分为建立PIM和建立PSM两个部分,那么建立PSM事实上仅仅是给上面的PIM作出一些技术相关的标注,包含下面内容:
? 将Bank和Account组件标注为Entity Bean;
? 将Bank和Account组件的永久存储管理模式标注为容器管理;
? 将Transfer组件标注为Session Bean;
5. 代码补充
代码生成之后,我们须要进行代码的补充工作,这是使用ArcStyler的唯一的代码工作,补充的代码主要是Bean方法实现以及測试类中的方法,须要进行代码补充的源码文件例如以下:
? AccountBean.java
? TransferBean.java
? BankBean.java
? iBankTestClient.java
补充的内容參看说明文档Tutorial.pdf第47页Component Code Customization这一节。
ArcStyler能够自己主动生成Jbuilderproject,当我们进行代码的补充工作的时候,能够直接打开生成的JBuilderproject,当中包括全部生成的源码,也能够直接使用其它代码编辑工具改动。注意:代码的加入和改动都在安全区中,进行重复的代码生成工作并不会被覆盖。
6. Mda的问题
因为眼下流行的建模语言(比如UML)在语义方面的功能还非常弱,所以眼下的MDA工具差点儿仅仅支持结构型的系统,可是我相信随着建模语言的进一步强化,MDA技术会越来越丰富,工具也将越来越好。
7. EMF与MDA
EMF这个名字,EMF是Eclipse Modeling Framework的缩写,它是Eclipse的一个重要的子项目,假设翻译成中文就是“Eclipse建模框架”。事实上仅仅从这个名字还真是难以确定它的作用是什么,我觉得要全然掌握EMF应该对模型驱动开发(MDA)有一定的了解,而EMF可以看作是Eclipse上的MDA一个实现(代码生成是MDA 的重要组成部分之中的一个),它可以生成在Eclipse上运行的代码。
MDA讲究的是把模型和应用系统实现分开,模型是最重要的部分,能够说有了清楚的模型,就完毕了一半的工作
用EMF构造一个应用的步骤非常easy:1、构造模型,2、生成代码,前者能够通过UML类图、Java接口、 XML Schema等多种方式定义,后者能够选择仅仅生成模型部分的代码,也能够同一时候生成编辑器部分的代码,对这个编辑器做一些定制就能够得到符合需求的应用程序。
8. MDA跟代码自己主动生成的差别
1) MDA不是代码自己主动生成的规范,相反它的目标是尽量降低自己主动生成的代码。
2) MDA不是取代RUP,XP等软件project的传统开发过程,而是对这些开发过程一个故意的补充,特别是直接将分析设计阶段所产生的模型应用于编敲代码,并终于影响部署后的系统行为方式。
3) 你所说的这样的MDA实现还没有达到开发企业级应用的阶段,换句话说,根本不实际。事实上,如今不唯独商业化的实现,也有非常优秀的开源MDA平台,比如,openMDX
9. openMDX-开源MDA平台
基于openMDX的应用能够非常轻松的移植到多个不同平台,採用了MOF,JMI,XRI,XML等标准和协议,不用过多考虑会被绑定于某一平台。
高速开发、部署和弹性配置
建立了成熟模型之后,开发測试的工作量减少到了难以想象的地步,举例来说,openCRX总共两百天的开发过程中,建模占了100天,界面设计定制用了70天,10天用于实现,20天用于測试部署。
极强的系统互操作性
openMDX平台上公布的功能模块,对于数据的导入导出都是基于Schema-XML,并且能够方便的公布为Webservice,跟其它异种系统的交互达到了轻松自如的地步。
缺点
penMDX也没有提供一个IDE来支持整个开发測试和配置应用。
10. openMDX 的开发过程
不象大多数商业工具,openMDX 没有实现PIM到PSM映射的方法。 而是提供了一个普通的,分布式的对象引擎(作为PIM 平台)。商业逻辑(模型的导出属性和方法)是作为插件加入进去的
自己主动生成代码和手工编写的代码是分放在两个不同的文件夹中,而对于导出属性和操作则是通过delegate(托付)的方式去运行手工编写代码的
11. MDA的两种实现
I)使用模型驱动应用开发过程;II)直接利用模型驱动执行时应用系统的行为方式。前一种实现,大部分支持从UML模型转换的代码生成工具都能够归入此类,比如AndroMDA,而后一种实现就比較少,比如openMDX。
这两种方式没有优劣之分,仅仅是取决于你的应用目的而有不同的側重。
12. 參考
ArcStyler实战-网上银行系统 - MDA之路 - BlogJava.htm
eclipse EMF介绍系列(EMF与MDA) - Linyda工作室 - 爱好者博墅 《电脑爱好者》杂志官方站点 - 计算机世界旗下站点! - powered by X-Space.txt
openMDX-开源MDA平台(1).htm
atitit.提升开发效率---mda 软件开发方式的革命--(2)