• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

UML/MDA技术研究

发布: 2008-8-06 17:27 | 作者: 网络转载 | 来源: blogcn | 查看: 252次 | 进入软件测试论坛讨论

领测软件测试网 概念之争:什么是MDA?

日前和IBM大牛谈到什么是MDA,有所感,记录下来吧。

如果说到MDA最正宗的定义,当然是来自www.omg.org/mda(图片贴不上来screen.width/2)this.width=screen.width/2" vspace=2 border=0>)
 
其中说的是,MDA是为应对业务和技术的变化提供的一种开放的、中立的开发方法。
然后说到了MDA的目的:将业务/程序逻辑与底层平台技术分离开来,这是为了保护软件开发投资方的利益。
但如何实现这一点呢?其实说得也有够清楚了,基于OMG提供的各种标准。这些核心标准包括:UML、MOF、XMI、CWM等(其实现在很重要的标准QVT应该纳入其中,QVT正在制定中)。

其它很多地方谈到的MDA的定义,包括说它是一个方法论什么的也有,很多是从MDA的目的去说,包括:
MDA的目标是模型的可执行。
MDA是使模型成为开发的核心工件。
……
这些都没错。

IMHO,我觉得MDA的定义,或者说Model Driven的定义可以分为两种:
1)广义的模型驱动:按目的来看,凡是在模型自动生成代码、模型可执行、以模型为中心的开发方面的工作,都可以说是模型驱动的。
在这个定义下,微软的VSTS是模型驱动的,不论它是否支持UML标准,或者用什么形式来支持OMG的标准。国内的KCOM (http://www.kcomsoft.com)  也是模型驱动的……
2)狭义的模型驱动:从实施的方法来看,狭义的模型驱动是指基于OMG制定的这一系列标准所做的工作。这里,核心的概念有两个:four-layered model architecture和MOF。四层模型结构以MOF为基础以一致的形式管理各种元模型和模型,并且为这些元模型和模型提供了各种模型操作的标准:如XMI、JMI、QVT等。根据统一定义的标准,有专门的厂商或开源组织去开发这些标准的执行引擎。这样MDA应用的开发中需要进行模型存储、数据交换、模型转换的地方都可以直接使用这些引擎,而不用自己去大包大揽。这其实就是标准化带来的好处,也是OMG这样一个标准化组织该干的事情。
从这个意义来说,我认为MDA包括了OMG对模型和元模型的基于MOF的统一管理,以及提供的各方面的模型操作标准。
这个定义下的MDA工具和应用目前也有不少,如Eclipse下的GMT、还有OptimalJ等……,http://www.modelbased.net/列出了不少。

按照这个狭义的定义得到的MDA,并不是一定要用在模型可执行等前面所说的那几个目的上,同样可以用在其它领域、其它目的上。
按前面所说,标准化带来的MDA给模型操作带来的诸多好处,涉及模型操作的很多应用都可以从中收益良多。例如MDA在MIC(Model Integrated Computing)、MDA在过程建模领域(法国Nante大学的Jean教授有好几篇论文)的应用。那么这些算不算MDA?笑……
其实概念之争没有太大意义screen.width/2)this.width=screen.width/2" vspace=2 border=0>,关键是希望从这些辨别中产生更多的想法和加深理解。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: MDA uml UML 技术 研究


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网