上一篇:
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 閱讀(719)
評論(0) 編輯 收藏 所屬分類:
MDA