`
touchmm
  • 浏览: 1037822 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

概念之争:什么是MDA?

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


* Key standards that make up the MDA-omg suite of standards include Unified Modeling Language (UML); Meta-Object Facility (MOF); XML Meta-Data Interchange (XMI); and Common Warehouse Meta-model (CWM).

如果说到MDA最正宗的定义,当然是来自www.omg.org/mda

其中说的是,MDA是为应对业务和技术的变化提供的一种开放的、中立的开发方法。
然后说到了MDA的目的:将业务/程序逻辑与底层平台技术分离开来,这是为了保护软件开发投资方的利益。
但如何实现这一点呢?其实说得也有够清楚了,基于OMG提供的各种标准。这些核心标准包括:UML、MOF、XMI、CWM等(其实现在很重要的标准QVT应该纳入其中,QVT正在制定中)。

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

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

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

Ps:原来写过一篇《模型驱动架构MDA综述》,其实只写了一半,见“模型驱动架构MDA综述,《非程序员》第32期,www.umlchina.com”。
分享到:
评论

相关推荐

    MDA模型驱动架构教程

    1. MDA概述:解释MDA的概念、目标和主要原则,以及为什么它对于现代软件开发来说是重要的。 2. 模型层次:详细介绍PIM和PSM,它们的结构、语法和语义,以及如何在它们之间进行转换。 3. MDA工具:讨论支持MDA的工具...

    什么是MDA

    什么是MDA 什么是MDA 什么是MDA

    模型驱动MDA学习论文精华

    1. **MDA概念**:MDA的核心思想是将业务逻辑与技术实现分离,通过统一建模语言(UML)创建独立于具体技术的平台无关模型(PIM),然后通过转换规则转化为平台相关的模型(PSM)。 2. **UML模型**:UML作为MDA的主要建模...

    demonstration_mda:这是MDA课程的资料库

    1. **模型层次**:MDA定义了三个主要的模型层次——概念模型(Platform Independent Model, PIM)、平台相关模型(Platform Specific Model, PSM)和代码生成。PIM描述了与特定平台无关的业务逻辑,而PSM则将PIM转换...

    模型驱动开发体系MDA(Borland2003大会演讲)

    在Borland大会上,演讲者王寒松分享了MDA的概念以及Borland的MDA实现——ECO(Enterprise Class Objects)。ECO是Borland公司推出的一款用于支持MDA的工具,它为开发人员提供了一种高效、灵活的方式来构建企业级应用...

    sybase ASE mda关系

    **标题:“Sybase ASE MDA关系”** 在Sybase Adaptive Server Enterprise (ASE)数据库管理系统中,MDA(Metadata Data Access)是一种强大的工具,用于监控和分析数据库的性能问题。MDA提供了一种方法来深入了解ASE...

    MDA develop

    随着信息技术的发展,多智能体系统(Multi-Agent Systems, MAS)已成为构建复杂、大规模系统的关键技术之一。MAS的应用范围广泛,包括数字图书馆、虚拟市场及各类信息系统等。为了帮助开发者更好地构建这些系统,...

    INCA标定软件中的MDA

    首先,MDA是INCA软件的核心部分之一,它提供了丰富的测量和诊断功能。在汽车工程中,标定涉及到调整ECU内的控制算法参数,以确保车辆在各种工况下的性能最佳。MDA允许用户创建自定义的测量任务,监测车辆的各种...

    PCA和MDA进行人脸识别_PCA_MDA_matlab

    资源名:PCA和MDA进行人脸识别_PCA_MDA_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有...

    MDA Dms转换方法

    #### MDA与DSL:概念上的桥梁 MDA是由OMG组织提出的一种软件开发方法,其核心是通过使用统一建模语言(UML)和其他建模工具来促进软件的可重用性和可维护性。相比之下,DSL则是一种专注于解决特定领域问题的语言,...

    外接程序(MDA)实例.rar

    1. "一般外接程序(MDA)实例讲解.doc":这可能是一个详细文档,涵盖了MDA的基本概念、开发步骤、使用的技术以及如何创建和测试一个简单的MDA实例。文档可能包含代码示例,指导开发者如何使用Visual Studio创建项目...

    MDA.rar_mda_模型驱动

    MDA(Model Driven Architecture,模型驱动架构)是一种软件开发方法论,旨在通过将软件开发过程中的核心元素——模型——提升到主导地位,提高软件工程的效率和质量。MDA由OMG(Object Management Group)制定,其...

    OMG Model Driven Architecture (MDA) MDA Guide rev. 2.0 (ormsc-14-06-01)

    模型驱动体系架构(Model-Driven Architecture,简称MDA)是由对象管理组织(Object Management Group,简称OMG)定义的一种系统开发方法。MDA提供了一种通过模型和架构来驱动整个系统(包括物理系统、组织系统和IT...

    MDA.rar_mda

    MDA的关键概念包括: 1. **平台独立模型(PIM,Platform Independent Model)**:这是最高级别的模型,不依赖于任何特定的技术或平台,如操作系统、数据库或编程语言。PIM描述了业务逻辑和系统行为,关注的是功能...

    MDA Explained: The Practice and Promise of the Model Driven Architecture

    ### 模型驱动架构(MDA):实践与承诺 #### 概述 《MDA Explained: The Practice and Promise of the Model Driven Architecture》是一本深入探讨模型驱动架构(Model Driven Architecture,简称MDA)及其应用的...

Global site tag (gtag.js) - Google Analytics