上一篇:
				BPEL Notes 
				不小心发在了文章里面,才知道首页看不到。。。,请大家注意。
				
						
~~~~~~~~~~~~~~~~~~
1.MDA
				是什么
				
						
				
				模型驱动的框架。简单来说就是由原来编程序改成编模型。看起来好像是
				4GL
				甚至
				5GL
				的样子。不过区别还是很大的,一个是语言,一个是模型。
		
		
				
						
						 
				
		
		
				2.MDA
				和现有的编程语言的关系
		
		
				没关系而又有关系。没关系是因为
				MDA
				不与任何一种编程语言邦定。有关系是因为
				MDA
				最后生成的还是具体编程语言的代码。
		
		
				
						 
				
		
		
				3.MDA
				的流派
		
		
				转自
				
						Steve Cook
				
				:
		
		
				1. The UML PIM camp: MDA involves the use of UML to build Platform Independent Models (PIMs) which are transformed into Platform Specific Models (PSMs) from which code is generated.
		
		
				2. The MOF camp: MDA does not involve the use of UML, but instead the crucial technology is MOF, and the definition of modelling languages and language transformations using MOF.
		
		
				3. The Executable UML camp: MDA involves building a UML compiler, making it a first class programming language.
		
		
				4. MDD
				(
				Model Driven Development
				)
		
		
				个人觉得:
		
		
				最好理解的是第一种,直接用
				UML
				描述
				PIM,
				然后转换为
				PSM
				,然后再转成代码,这当中的每一个转换都会用到很多已有的
				Pattern
				或者说技术细节。
		
		
				从建模方面来讲最灵活和能力最强大的是第二种,同时也是最不好理解的。就像高等代数谁都能用,但是要从代数的基础理论推导出高等代数的体系就不是人人都能干的了。
				MOF
				的抽象层次脱离了实际的世界,不过这也是它能够灵活和强大的基础。
		
		
				最不现实奖颁发给第三种方法,可执行的
				UML
				。
				UML
				在设计之初就没想过要可执行的东西。现在
				UML
				里面最像可执行代码的就是
				OCL
				,不过老早之前
				Rule-based
				系统就已经出现,而且向我们证明了这种系统只适合特定的需求和环境。那么我们能否扩充UML的动作语义来实现执行呢?简单的情况是可以的,比如算法的描述即程序流程的描述,动作图或者状态图可以很好的描述这种情况。但是数据库连接呢?
				UML
				是否要扩展到连关系型数据库连接都要用个
				notation
				的程度?那么
				UML
				就不是建模语言,而是图形化类库了。
		
		
				第四种我不甚了解,不敢妄加评论。
		
		
				
						 
				
		
		
				4.MDA
				的工具
		
		
				基本上现在的
				UML
				建模工具都或多或少支持
				MDA
				的功能。如:
		
		
				Rational Software Architect
		
		
				
				
						
								Enterprise
						
				
				 Architect
		
		
				Together
		
		
				还有很多专门的
				MDA
				工具,如:
		
		
				
						acceleo
				
		
		
				
						GMT
				
		
		
				
						AndroMDA
				
		
		
				
						 
				
		
		
				5.RSA
				里面的
				MDA
		
		
				这两天一直在看红皮书
				Patterns: Model-Driven Development Using IBM Rational Software Architect
				。郁闷的事情是我手上的
				RSA
				是
				6.0.0.0
				,而需要的版本是
				6.0.0.1
				而且升级要
				1G
				多。。。。只能纸上谈兵一下了。
		
		
				个人感觉:最重要的就是
				transformation
				。
				RSA
				里面是采用扩展
				profiling
				的方式来实现
				MDA
				的。因此首先要做的就是建立商务领域内的
				profile
				。之后写一些
				transformation
				插件来将用这些
				profile
				描述的需求转化为
				PIM
				,之后再利用现有的(或者有需要的话自己扩展的)
				UML to XXX
				插件来转化为
				PSM
				和代码。这个方式理解起来比较简单,但是需要大量的领域
				specific
				并且设计良好的
				Profile
				和转换器来支撑整个系统。
		
		
				另一方面,
				transformation
				插件是以
				eclipse
				插件的形式存在的,利用了
				eclipse
				本身良好的插件系统。有点自己开发工具自己用的感觉:)不过在我的机器上真的很慢。。。
		
	posted on 2006-05-16 14:28 
silver.sun 阅读(730) 
评论(0)  编辑  收藏  所属分类: 
MDA