Model Driven Architecture

模型驱动架构

  自从2001年被OMG(Object Management Group 国际对象管理集团)提出以后,"随风潜入夜,润物细无声",未见轰轰烈烈宣传,各大厂商却惊人一致地争相跟进,关于MDA的话题转眼之间在网络上也如火如荼地繁荣起来了。

  为了实现MDA这一宏大构想,OMG制定了一系列的标准:

  UML:UML被MDA用来描述各种模型。它并不是为MDA而生,但是作为目前最为风行的建模语言,UML已经占据了全球建模语言领域90%的市场份额,成为了建模语言事实上的标准,因此OMG将它作为MDA技术的基础是自然而然的明智选择。它是MDA的基础,也是MDA最有力的武器。

  MOF:MOF(Meta Object Facility 元对象机制)是比UML更高层次的抽象,它的目的是为了描述UML的扩展或者其它未来可能出现的类UML的建模语言。由此我们可以看到OMG的"野心",虽然MOF也不是为MDA而生的,但是我们可以体味到OMG的工程师们良苦的用心和长远的目光。

  XMI:XMI(XML-based metadata Interchange)是基于XML的元数据交换。它通过标准化的XML文档格式和DTDs(Document Type Definitions)为各种模型定义了一种基于XML的数据交换格式。这使得作为最终产品的模型可以在各种不同的工具中传递,这一点是非常重要的,它保证了MDA不会在打破了一种束缚之后再被加上一层新的束缚。

  CWM:CWM(Common Warehouse Metamodel 公共仓库元模型)提供了一种数据格式变换的手段,在任意级别的模型上都可以使用CWM来描述两种数据模型之间的映射规则,比如将数据实体从关系数据库变换为XML格式。在MOF的框架下,CWM使得通用的数据模型变换引擎成为可能。

  在OMG的蓝图中,UML、MOF、XMI、CWM等一系列标准分别解决了MDA的模型建立、模型扩展、模型交换、模型变换这几个方面的问题。OMG试图通过标准化的定义,扩大MDA的应用范围。同时通过这样一个可扩展的建模语言环境,IT厂商可以自由实现自己的建模语言,以及语言到可执行代码的映射,然而不管怎么样,都必须处于OMG的标准化框架之下。

  MDA源自于众所周知的把系统操作的规范从系统利用底层平台能力的方式细节中分离出来的思想,MDA提供了一种途径(通过相关的工具)来规范化一个平台独立的系统、规范化平台、为系统选择一个特定的实现平台,并且把系统规范转换到特定的实现平台。MDA的三个主要目标是:通过架构性的分离来实现轻便性、互操作性和可重用性。

  在MDA中软件开发过程是由软件系统的建模行为驱动的。

  MDA生命周期和传统生命周期没有大的不同,主要的区别在于开发过程创建的工件,包括PIM(Platform Independent Model,平台无关模型)、PSM(Platform specific Model,平台相关模型)和代码。PIM是具有高抽象层次、独立任何实现技术的模型。PIM被转换为一个或多个PSM。PSM是为某种特定实现技术量身定做。例如,EJB PSM是用EJB结构表达的系统模型。开发的最后一步是把每个PSM变化为代码, PSM同应用技术密切相关。传统的开发过程从模型到模型的变换,或者从模型到代码的变换是手工完成的。但是MDA的变换都是由工具自动完成的。从PIM到PSM,再从PSM到代码都可以由工具实现。PIM, PSM,和Code 模型被作为软件开发生命周期中的设计工件,在传统的开发方式中是文档和图表。重要的是,它们代表了对系统不同层次的抽象,从不同的视角来看待我们的系统,将高层次的PIM 转换到PSM 的能力提升了抽象的层次。能够使得开发人员更加清晰地了解系统的整个架构,而不会被具体的实现技术所“污染”,同时对于复杂系统,也减少了开发人员的工作量。

  MDA的出现,为提高软件开发效率,增强软件的可移植性、协同工作能力和可维护性,以及文档编制的便利性指明了解决之道。MDA被面向对象技术界预言为未来两年里最重要的方法学。当今建模的主要问题在于,对于很多企业来说它只是纸面上的练习。这就造成了模型和代码不同步的问题,代码会被不断修改,而模型不会被更新,这样模型就失去了意义。弥补建模和开发之间的鸿沟的关键就在于将建模变为开发的一个必不可少的部分。MDA 是模型驱动开发的框架,MDA 的愿景是定义一种描述和创建系统的新的途径。MDA 使得UML 的用途走得更远,而不仅仅是美丽的图画。很多专家预言MDA 有可能会带领我们进入软件开发的另一个黄金时代。

可执行UML(Executable UML)是一种基于模型驱动架构(Model-Driven Architecture,MDA)的建模方法。MDA是一种软件开发方法论,强调将系统设计和实现的过程建立在模型之上。与传统的编码开发相比,MDA通过使用可执行UML实现了更高层次的自动化。 可执行UML提供了一种更具体和精确的UML语言扩展,可以用于描述系统的行为和交互。这种扩展允许开发人员将UML模型和代码直接关联起来,并通过模型转换和代码生成实现系统的自动生成。通过将模型与代码保持同步,可执行UML提供了一种可追踪性和可验证性的方式,以确保模型和实际代码保持一致。 可执行UML还提供了一个基于模型的执行环境,使开发人员能够在模型级别上进行实时的系统调试和测试。这种模型驱动的调试和测试方法使开发人员能够更早地发现和解决系统中的问题,减少了传统开发方法中的迭代和修复成本。 通过使用可执行UML,开发人员可以更好地理解和控制系统的复杂性。它提供了一个统一的模型化语言,使得不同团队之间的交流更加顺畅。此外,可执行UML还提供了一种将业务流程和系统需求直接转化为可执行代码的方法,从而更加直观地与业务逻辑进行对应和验证。 总而言之,可执行UML作为模型驱动架构的基础,通过提供更具体的模型语言扩展、模型与代码的自动生成以及模型级别的调试和测试环境,提供了一种更高效和可靠的软件开发方法。它使得开发人员能够更好地理解和控制系统的复杂性,并以更精确的方式与业务需求对接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值