MDA模型驱动架构

合集下载

模型驱动的体系架构MDA

模型驱动的体系架构MDA

模型驱动的体系架构MDA模型驱动的体系架构(Model-Driven Architecture,MDA)是一种软件开发方法论,旨在实现使用模型来驱动软件系统设计和开发的过程。

它提供了一种将系统的关注点从实现细节转移到概念模型层面的方法,从而提高了系统的可维护性、可扩展性和可重用性。

MDA的体系架构包括三个核心层次:计算独立(CIM)、平台独立(PIM)和平台相关(PSM)。

2. 平台独立模型(Platform Independent Model,PIM)是MDA的中间层模型,用于描述系统的业务逻辑和功能。

PIM是通过将CIM转化为与具体平台无关的模型,以便能够在不同平台上进行重用和扩展。

PIM通常使用统一建模语言(UML)或其他领域特定语言(DSL)进行描述,包括类图、时序图等。

PIM的设计重点是在保持系统功能的不变的同时,将业务逻辑和实现细节分离。

3. 平台相关模型(Platform Specific Model,PSM)是MDA的底层模型,用于描述系统在具体平台上的实现细节。

PSM是通过将PIM转化为特定平台的模型,以便具体实现系统。

PSM可以是特定编程语言、框架或平台的规范,如Java、NET、Eclipse等。

PSM的设计重点是在满足系统需求的同时,考虑特定平台的约束和限制。

MDA的核心思想是通过模型的转换和转化过程,实现从业务需求到具体实现的自动化生成。

MDA使用模型转换技术将CIM转化为PIM,然后将PIM转化为PSM,最终生成可执行的代码。

MDA的优势在于提高了系统的可维护性和可重用性。

通过将业务逻辑和实现细节分离,在需求变更或平台切换时可以更快地进行适应和修改。

同时,MDA的模型驱动方法使得可以在不同项目间共享和重用已验证的模型和模型库。

然而,MDA也存在一些挑战。

首先,准确和完整地捕捉业务需求和领域知识是一项复杂的任务,需要专业的分析和建模技能。

其次,模型转换过程可能会引入一些不一致和错误,导致最终系统的质量问题。

什么是MDA

什么是MDA

1
MDA的优势3
0011 0010 1010 1101 0001 0100 1011
• 互操作性 PIM中生成的多个PSM之间可能存在一定的关系,在MDA中, 它们被称为桥接器(bridges)。由于PSM针对一个特定的目标平台 ,所以它们相互之间不能够直接通信。无论如何,我们需要将一 个平台的概念转换到另一个平台的相关概念,这就是我们常说的 互操作性。MDA解决这一问题的方法是,不光从PIM生成PSM,还生 成连接PSM的桥接器。
• 以一中定义良好的符号表示的模型是理解企业级方案 系统的基础。 • 系统的构建能够围绕着一系列模型通过使用在模型之 间的一系列转换被组织的,并且能被组织到一个分层 的和转换的体系架构框架中。 • 以一系列元模型来描述模型的一种正式的支持能够使 在模型中有意义的集成和转换变得容易,并且是通过 工具实现自动化的基础。 • 接受和广泛采纳基于模型的方法需要工业的标准提供 开放性给客户,并鼓励l-driven Architecture
0011 0010 1010 1101 0001 0100 1011
学号:MG0933025 姓名: 沈达宇
1
什么是MDA?
0011 0010 1010 1101 0001 0100 1011
• 模型驱动架构(Model Drive Architecture MDA)是 一个软件开发架构,是由对象管理组织OMG(Object Manage Group)提出的基于模型驱动的新方法学。 • MDA 帮助公司应付软件开发中层出不穷的新标准、新 技术带来的快速变化。MDA是OMG发起的,目的是通过 把系统描述背后的逻辑与它的具体实现相分离,保证 组织机构的信息系统能够适应新的硬件和软件平台。 MDA改进了应用程序的可移植性、互操作性和平台独立 性,提高了开发人员的工作效率。

软件架构师(20)-MDA与可执行UML

软件架构师(20)-MDA与可执行UML

**********************************第1章引论*************************************◆模型驱动架构(Model Driven Architecture, MDA)通过下面二种方式改变了软件的重点:模型比代码更有价值—有关业务本质的知识资产被表示为模型,这些模型使得企业能够在适当的时候使用适当的技术平台来实现它。

模型将更精确,而不是高高在上的—所有业务相关的重要的知识都被获以并表达为模型。

模型不会随意分隔分析和设计。

◆当前的软件技术发展水平来看,它有那些多年的使用和考验的关键原则:根据主题(域)的划分,可以产生大的高内聚低耦合的“实质性的”组件。

将平台无关的行为与平台相关的行为分开,通过将“本质”模型和“实现”模型分开可以在一定程度上做到这一点。

基于模式的映射定义使得人们可以从平台无关模型(Platform Inependent Model, PIM)系统化地创建任意平台的平台相关模型。

这些映射既可以手工实现,也可以自动实现。

使用了抽象但语义严格的表示方法以后,xUML能够使模型可以被完整地精确地表达,从而实现可执行化。

这种可执行化的特点充许建模者客观地评价他们所建立的系统的正确性。

◆什么是可执行UML(xUML)?尽管UML规范在MDA过程中是必要的,但它不足以进行可执行建模。

认识到这一点后,UML中又是加入了动作语义进行增强,解决了UML很多歧义的问题,同时也为适当的UML模型元素增强了可执行为定义。

核心UML加上动作语义就称为xUML,和它就足够建立可执行的平台无关模型(Platform Inependent Model, PIM)了。

xUML=UML-语义较弱的元素+精确定义的动作语义。

◆UML与xUML的差别:UML规定了一个图形语言,使得系统可以通过一组不同类型的图式系统化地定义。

但是UML在这此图形的使用方法上很不正规。

MDA模型驱动介绍

MDA模型驱动介绍

MDA模型驱动介绍模型驱动体系架构(Model Driven Architecture, MDA)是由OMG 提出的新的软件方法学,被面向对象技术界预言为未来几年里最重要的软件方法学。

模型驱动体系架构(MDA)把建模语言用作一种编程语言而不仅仅是设计语言,并以一种全新的方式将IT技术的一系列新的趋势性技术整合到一起。

这些技术包括基于组件的开发、设计模式、中间件、说明性约束、抽象、多层系统、企业应用整合以及契约式设计等。

模型驱动体系架构(MDA)的出现,为如何提高软件开发效率,如何增强软件的可移植性、协同工作能力、可维护性,以及如何提高文档编制的便利性指明了解决之道。

MDA概述MDA是“模型驱动体系架构”(Model Driven Architecture)的缩写。

它是由OMG定义的一个软件开发框架。

其关键之处是,模型在软件开发过程中扮演了非常重要的角色。

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

MDA开发生命周期和传统的生命周期并没有很大的不同。

MDA的工件是形式化模型,也就是可以被计算机理解的模型。

下面列出的3种模型位于MDA的核心:· 平台独立模型(PIM):具有高抽象层次、独立于任何实现技术的模型。

· 平台相关模型(PSM):为某种特定实现技术量身定做,让你用这种技术中可用的实现构造来描述系统的模型。

PIM会被变换成一个或多个PSM。

· 代码:用源代码对系统的描述(规约)。

每个PSM都将被变换成代码。

传统上,从模型到模型的变换,或者从模型到代码的变换,主要是手工完成的。

与此相反,MDA变换总是由工具执行的,许多工具可以把PSM变换成代码,这并不令人惊奇。

MDA的创新之处是把PIM到PSM的变换也自动化了。

软件开发是什么Alistair Cockburn在他的Agile Software Development一书中归纳了业界对软件开发的看法:以C.A.R Hoare为代表的数学观、以Bertrand Meyer为代表的工程观、以很多程序员为代表的手工艺观,还有一些程序员则认为软件开发是神秘的创造行为。

MDA简介

MDA简介

PSM Code
传统软件开发过程
需求 • 文字 分析 • 图表和文字 底层 • 图表和文字 设计
理论上的迭代过程
编码
• 代码
程序员捷径
测试 • 代码
部署
传统开发过程带来的问题
生产效率问题:重视代码、维护软件时有问题 可移植性:技术更新换代快 互操作性问题:前端系统和后端系统 维护与文档问题:后期补文档
构成系统的部件、连接件及其约 束的规约 – MDA的主要目标:
计、构建、部署、维护等各开 发活动
– MDA起源于分离系统规约和 平台实现的思想
Portability(可移植性), interoperability(互通性), Reusability(可重用性)
什么是MDA?
Model Driven Architecture(MDA)是对象管理组织OMG提出的一个 新的程序设计方法学。 它是一种基于Unified Modeling Language(UML)以及其他工业标准 的框架,支持软件设计和模型的可视化、存储和交换。 MDA把建模语言用作一种编程语言而不仅仅是设计语言。 MDA是一种新的用于编写规范(specifications)和开发应用程序的途径, 它基于平台无关的模型(PIM:platform-independent model)。
MDA模型
MDA的核心建立在 UML(Unified Modeling Language,统一建 模语言)、CWM(Common Warehouse Meta-model,公共仓 库元模型)、MOF(Meta-Object Facility,元对象设施) 上。 目前已开发了多个核心模型,如:企业计算(包括组件结构和事务 交互 )、实时计算(包括资源控制的特殊要求 )等。 每个核心模型都独立于任何中间件平台,表示所属类别中所有平台 的共同特性 。

MDA模型驱动架构

MDA模型驱动架构

MDA模型驱动架构MDA(Model-Driven Architecture)是一种软件开发的方法或者框架,它将系统开发的焦点从代码编写转移到了模型的创建和转换上。

MDA的核心思想是将系统的抽象描述转换为具体实现代码的过程自动化,并且强调在不同开发阶段中的模型转换和模型分析。

在MDA中,开发者首先创建CIM,它是对问题域进行抽象,以便更好地理解和定义系统需求。

这个模型与具体实现无关,它只关注问题域的概念和规则。

接下来,开发者使用模型转换器将CIM转换为PIM。

PIM是CIM的具体实现,通常用于描述系统的功能、业务流程等。

PIM与实际的技术和平台无关,因此可以用于多个平台上的开发。

最后,开发者使用另一个模型转换器将PIM转换为PSM,PSM是与特定平台相关的模型,它描述了如何将PIM映射到实际的技术平台上。

PSM通常是使用特定的编程语言、框架或技术进行描述的,因此它是与特定平台的实现相关的。

使用MDA的好处在于解耦开发过程和具体实现。

通过将系统开发分为不同的模型层次,可以实现问题域和技术实现之间的分离,从而降低了系统的复杂性和维护成本。

此外,MDA还提供了模型转换和重用的机制,可以减少重复劳动,并促进在不同平台上的代码重用。

然而,MDA也存在一些挑战和限制。

首先,建立和维护模型需要额外的开发成本和时间。

其次,模型转换可能会引入错误和缺陷,因为在转换过程中可能会丢失一些信息或者忽略一些细节。

此外,MDA一般用于大型系统的开发,对于小规模项目来说,可能过于复杂和冗余。

总的来说,MDA是一种具有潜力的软件开发方法,它通过模型的创建和转换来实现系统的开发。

它可以提高系统的可维护性和复用性,并促进在不同平台上的代码重用。

然而,MDA也面临着一些挑战和限制,需要开发者在实践中权衡其利弊,并根据具体项目的需求来决定是否使用MDA。

mda建库原理

mda建库原理

标题:MDA建库原理引言:MDA(Model Driven Architecture,模型驱动架构)是一种软件开发方法论,它提倡以模型为核心驱动软件系统的开发过程。

在软件开发领域,建库(Code Generation)是MDA的核心概念之一,本文将详细介绍MDA建库原理。

一、MDA概述1.1 MDA的定义MDA是由OMG(Object Management Group)提出的一种软件开发方法论,它将软件开发过程从代码层面抽象到模型层面。

MDA通过使用模型来描述问题域和解决方案,实现了从模型生成代码的自动化过程。

1.2 MDA的核心概念- 平台无关性(Platform Independence):模型应该与特定的技术平台无关,以便可以在不同的平台上重用。

- 可追溯性(Traceability):模型应该能够和源代码之间建立起双向的关联,从而可以跟踪模型和代码之间的变化。

- 自动化构建(Automation):通过模型生成代码的自动化过程,减少了手工编写代码的工作量,提高了开发效率。

二、MDA建库的基本原理2.1 建库的概念建库是将模型转换为可执行代码的过程,也称为模型到代码的转换。

它是MDA的核心环节之一,通过自动化的方式将抽象的模型转化为具体的代码。

2.2 建库的基本过程- 模型定义(Model Definition):首先需要定义模型,包括问题域模型和解决方案模型。

问题域模型描述了实际问题的概念和关系,解决方案模型描述了如何解决这些问题。

- 模型转换(Model Transformation):将模型转换为中间表示形式,通常是一种称为PIM(Platform Independent Model)的模型。

- 平台特定模型转换(Platform Specific Model Transformation):根据目标平台的要求,将PIM模型转换为PSM(Platform Specific Model)模型。

MDA白皮书-模型驱动开发和UML+2.0

MDA白皮书-模型驱动开发和UML+2.0

白皮书模型驱动开发和UML 2.0传统编程方式的终结?本文档包含Telelogic AB专有信息。

未经Telelogic AB书面许可,不得使用本文档内的任何信息,不得复印、影印本文档的任何部分。

前言“模型驱动开发”——体会一下这几个词。

它们说出了这个不断变化的工业中一个新的改变。

这里不是说一种革命,而是一种缓慢的变化,但是肯定会渗透到我们开发系统的方式中。

这种推动将降低代码的重要性,并且专注于一些开发中的真正事情:最终的应用程序被期望怎样工作,并确保你能够根据客户的需求可靠地建立起它来。

模型驱动开发是更伟大视景MDA中的一部分。

MDA是模型驱动体系架构(Model-Dri ven Architecture)的简称,由对象管理组织OMG(Object Management Group)所驱动。

M DA表示了一种模型驱动开发方法的概念框架。

然而,尽管完整的MDA还没有成为现实,模型驱动开发现在已成为可能。

实际上,它已以较低级的形式存在了较长一段时间,所以我们并不是在做某种新的东西(当然,除非你在听某些市场人员的宣传)。

没有魔法如果模型驱动开发这么好的话,为什么不是每个人立刻加入到这个潮流中来呢?首先,模型驱动开发不是一个银子弹,能神奇地解决你所有的问题。

总有某人需要去实现系统的功能,并且还找不到任何工具来完成这一点。

所有你能发现的工具只是使这项工作更容易和直接一些。

第二,采用模型驱动开发,并不只是在开发项目的过程中更换一种工具。

它还必须和已根深蒂固的开发过程结合起来(如果没有的话,你就可以开始使用模型驱动开发了;否则你就只能改善当前的情况),但实际上更重要的是,你还会担心它对现有应用程序的影响。

决定改用基于模型的方法前确实需要有一些仔细的考虑,并且,一般说来,为了不影响当前的工作,你只会在新项目中改变开发方法。

第三,你还需要获得那些使用工具的人们的支持(你需要一些工具来应用模型驱动开发)。

开发人员常会认为“模型驱动开发不是编程”而回避它,并且当心他们的工作难于被接受。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MDA百科内容来自于:中科永联高级技术培训中心()MDA(Model Driven Architecture)是模型驱动架构,它是由OMG定义的一个软件开发框架。

它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。

和UML相比,MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。

MDA把建模语言用作一种编程语言而不仅仅是设计语言。

MDA的关键之处是模型在软件开发中扮演了非常重要的角色。

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

MDA的三个主要目标是:通过架构性的分离来实现轻便性、互操作性和可重用性。

模型驱动架构(MDA)是OMG组织近年来一直热炒的一个新的技术体系,同时也是众多搞软件模型研究人员的一个新热点。

MDA(模型驱动)核心的思路是希望通过对商业模型(比如企业信息化或建筑领域的解决方案)的领域研究。

进而提炼出一个相对核心的领域模型,同时抽象出一个PIM(平台无关模型)。

之后根据不同的开发平台(例如.net或J2EE),应用平台(windows或unix)形成相应的PSM(平台相关模型)。

依照相应的工具,例如ArcStyler可以完整地生成相应的代码和软件系统。

当然这里只是罗列出一个大致的思路和方法。

1 MDA理论还处在一个探索期,很多理论和方法并不成熟,当然无从谈起有成熟的工具,从目前的趋势而言,从理论到实际的工具都离OMG组织所提出的预想有较大距离,至少还需要数年的努力才能成型。

2目前无论是国外的开源组织还是国内的一些组织对MDA都只是处在一个草创阶段,很多人所谓的应用MDA 其实都只是在MDA的体系中作一个最初的探索和尝试。

例如ORM就是在一定层次上实现MDA 在数据库应用方面的探索,但也只是解决了一个实体模型映射的问题。

前几天一个面试人员用ArcStyler4.X 做了一个银行POS系统的应用模型,生成了一点还需要修改的框架代码。

就告诉我说他已经掌握了MDA,斯等水准真是让我汗颜!佩服!3 MDA的第一个热点可能是桥接器,而在MDA领域中,映射是个很重要的点,而转换和交互都只是在这个点上的延伸。

4 目前而言,最有可能在MDA体系中得以实现的语言是JAVA。

5 MDA的核心是PIM,因为他是最抽象和协同性最高的。

同时就当前形势而言,PIM 也是一个瓶颈!同时就目前的UML2.0(从OMG那里得到最新的)而言,还不足以作为建立整个MDA体系的语言。

同时对于MOF中的一些定义似乎还有提升的必要。

因为对于整个体系而言,MOF应该更多的作为一个标准,只有在标准成熟的前提下,才有可能产生正确的映射规则。

6 等到MDA风光无限的那天,会使一部分程序员失业,但不会是全部,起码MDA工具要有人做,因为一个MDA工具不足以应付所有的领域。

这就好比没有一个财务系统能适应所有的企业一样。

因为各个领域的标准化不同。

一、MDA(模型驱动架构)背景MDA目前在以下领域得到了应用:*银行业*保险业*公共企业(特别在金融管理领域)*嵌入式系统*后勤保障系统您将会看到,MDA确在其中起到了作用。

MDA的流程MDA的实现主要集中在以下3个步骤:1 首先,您用UML对您的应用领域进行高度抽象的建模,这个模型和实现它的技术(或者底层技术)完全没有关系。

这个模型我们称之为平台无关模型(PIM)。

2 然后,PIM将被转换为一个或多个平台相关模型(PSM)。

这个翻译的过程一般是自动实现的。

PSM将用一个特定的实现技术来描述您的系统。

它将用到这种技术所提供的种种架构,比如EJB, 数据库模型,COM组件等等。

3 最后,PSM将被翻译成源代码。

因为每个PSM已经完全依靠某种特定的技术,这个步骤一般是比较简单的。

MDA流程中最难的一步,是从PIM生成一个PSM。

它要求您对您要应用的基础技术具有丰富且巩固的知识,另一方面,源模型(PIM)必须具备自动生成PSM所要求的足够信息量。

通过模板生成:MDA-light?!在MDA的实际应用当中,一个较容易的实现是通过模板(我们称之为MDA-light)。

这样,平台相关模型这一步可以说是被跳过了,您可以直接从高度抽象的PIM生成源代码。

您将继续在MDA-light的基础上进行真正意义的编程:您必须在源代码,而不是UML,编写细致的应用逻辑。

使用MDA的前提* 业界(甚至是整个世界)一个被广泛接受的事实是:只有变化是永恒的。

技术永远在革新。

这在中间件领域尤其明显,当然还有数据库技术,操作系统,甚至是编程语言都经常变化。

这些技术明显比应用领域的基本概念要变化的快。

* 如果您在某一特定的应用领域工作,在这个领域中的项目都具有一定的相似性。

整个应用程序族或者不同的项目都属于同一个应用领域,那么,MDA或者生成流程将特别适合于您。

MDA的优点* 您对建模的投资将更加持久的有效--远长于您目前实现它所应用的技术。

这将更有利于保护您的投资。

* 您具有了技术上的灵活性。

* 您将不再受技术或应用所具有的不同变化周期的影响--在MDA的帮助下,您可以中立的保持两方面的多样性。

MDA的缺点* MDA意味着更多的"组装"而不是"开发"--在为一个应用建立PIM的时候,您基本上没有技术上的周旋空间。

这对于今天的很多开发人员来说,还是难以想象的。

* 软件开发的创造性在一定程度上减弱了。

开发人员常常觉得,就一种新技术展开争论,在技术的前沿工作,是十分吸引人的。

可是在MDA流程下,大量的工作是建立模型,这和具体的技术相距甚远,但符合OMG的建议。

* 潜在的不成熟性。

UML2.0还在幼年时代。

MDA工具出现的时间也相对很短。

这里还隐藏了很多风险。

MDA流程和生成开发中有待解决的问题* 数据和应用程序的移植:目前在商业领域经常需要面对的问题是,大量的数据和应用程序如何向新的,MDA为基础的系统中移植。

纯粹的MDA流程将把数据模型和数据库表结构看成是技术细节。

它们不应该对平台无关模型(PIM)层产生任何影响--那么,您的MDA工具或生成器也负责生成数据库脚本吗?* 软件维护:编制不同的发行版本,补丁或者升级,是对目前正在运行的程序进行维护的重要组成部分。

MDA怎么处理这些问题呢?每次进行一次全新的安装?* 投资报酬率(Return-on-Investment):从什么样的环境和系统开始计算?从应用MDA的第二个项目?还是从第五个开始?* 购买软件架构还是自主开发?* 生成器和相关工具造成了对其生产商的依赖--这种对生产商的依赖是我们以往一直极力避免的。

* 企业应用整合(EAI):高度的抽象,听起来不错--但是对于已经在运转的应用系统,怎么得到这种抽象呢?您可以看到--潜在很多实际问题(其回答都具有重要的意义)。

这些问题正是我们创立openMDA的原因:在很多项目当中,某些以上的问题已经得到了实验性的回答,您(和我们)都将从中获益!二、MDA的软件开发周期在MDA中软件开发过程是由软件系统的建模行为驱动的。

下面是MDA的软件开发周期:(图)MDAMDA生命周期和传统生命周期没有大的不同,主要的区别在于开发过程创建的工件,包括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 有可能会带领我们进入软件开发的另一个黄金时代。

三、MDA框架MDA 将软件系统的模型分离为平台无关模型PIM 和特定平台模型PSM,同时又能通过转换规则将它们统一起来,以这样的方式试图去摆脱需求变更所带来的困境。

平台无关模型PIM 是对系统高层次的抽象,其中不包括任何与实现技术相关的信息;特定平台模型PSM是特定平台相关的模型。

在MDA 框架中,首先使用平台无关的建模语言来搭建平台无关的模型PIM,然后根据特定平台和实现语言的映射规则,将PIM 转换以生成平台相关的模型PSM,最终生成应用程序代码和测试框架。

MDA框架的“建筑材料”包括:高层次模型;一种或多种标准、精确定义的语言,用来编写高层次模型;如何把PIM变换到PSM的定义;编写这些定义的语言,这种语言能够被变换工具执行;能够执行变换定义的工具;能够执行PSM到代码的变换工具。

上图是MDA的框架,它的主要元素有模型、PIM、PSM、语言、变换、变换定义、以及变换工具。

MDA 是一个开放的,中立于软件供应商的架构,它广阔地支持不同的应用领域和技术平台,能够成为应用领域和具体技术平台之间的杠杆。

在MDA 开发途径中,PIM 代表对需求的建模,PSM 代表应用具体技术后的模型,这使得MDA 成为需求和技术之间的杠杆;它们各自的改变都可以是相互独立的,不会造成商业逻辑和实现技术的紧密藕合,同时MDA 又可以通过转换来弥补它们之间的鸿沟,从而保护我们的投资。

MDA 开发途径使得我们的系统能够灵活地被实现、集成、维护和测试,系统的轻便性、互操作性和可重用性都是可以长期保持的,能够应对未来的变化。

相关文档
最新文档