没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记127(2005)59-74www.elsevier.com/locate/entcs通过转换让-马里·法弗尔 谭元法国格勒诺布尔大学http://www-adele.imag.fr/www.example.com摘要模型驱动工程是一种有前途的方法,它可能导致一种新的软件演化范式的出现,即模型驱动软件演化。 模型、元模型和转换是这种方法的基石。结合这些概念会导致非常复杂的结构,这些结构非常难以理解,特别是当考虑不同的技术空间时,例如XMLWare(基于XML的技术),Grammarware和BNF,Modelware和UML,Dataware和SQL等。模型,元模型和转换的概念通常在MDA或XML等工业标准中定义不清。本文提供了一个概念框架,称为大模型,旨在模拟大规模的软件演化过程。这些过程被建模为与定义良好的关系集相关联的系统图,关系集包括R epresentationO f(μ)、Conform sTo(x)和IsTransform dIn(τ)。关键词:模型驱动工程,元模型,软件演化,mda,megamodel1介绍模型驱动工程是一种很有前途的软件开发和演化方法模型、元模型和转换是MDE的基本概念。这些概念远非新概念。他们已经在古埃及使用,虽然没有正式的这样[3]。最近,这些概念已经在计算机科学的许多领域进行了研究,可能是在不同的角度和使用其他术语。由OMG于2001年推出的模型驱动架构(MDA)标准[14],*jmfavre@imag.fr1571-0661 © 2005 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2004.08.03460J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59推广了模型、元模型和转换可以在软件工程中发挥核心作用的观点。OMG将MDA作为软件工程的下一个范例的观点[14]引起了激烈的争论。MDA定义不明确,过于复杂,限制性强,强制使用MOF标准[14]。更重要的是,以前类似的方法,如语法驱动的方法,未能在行业中找到自己的道路。事实上,我们相信MDA中没有什么新的东西,但这就是为什么这一次可能会起作用(第一集[6],)。MDA可能比以前更成功,因为软件工程社区更成熟,概念更好地理解,工具已经存在。1.1MDE和技术空间MDE不是MDA。事实上,MDA只是应用于软件系统的模型驱动工程方法MDE绝不限于MDA标准。事实上,MDE方法可能并不局限于软件系统的开发和演化,尽管这是我们关注的问题。MDA是一套复杂的技术,由MOF之神主导(第二集[7])。相反,MDE是一种开放和综合的方法,以统一的方式包含许多其他技术空间(TS)[13]。在本文中,重点是软件技术空间,即那些用于生产软件。MDE的重点是技术空间之间的桥梁,以及不同研究团体开发的知识体系的整合。TS的示例不仅包括MDA和MOF,还包括Grammarware[12] 和 BNF 、 Documentware 和 XML 、 Dataware 和 SQL 、 Modelware 和UML等。在每个空间中,模型、元模型和转换的概念都有不同的体现。例如,Modelware中所谓的事实上,模型、元模型和转换的概念在MDA中定义得很差,这在其他标准(如XML)中也是一样的。这些概念的真正本质深埋在复杂的技术中。1.2软件演化更好地理解这些概念是很重要的,特别是对软件演化建模。本文的重点不是小型软件。这些软件产品可以毫无问题地在J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)5961ad-hoc方式。相反,我们对大规模的进化感兴趣,也就是大规模工业软件系统的进化。这些系统的演变往往涉及不同的技术空间,并且通常同时使用不同的TS。无论使用什么技术,在这种情况下,识别模型和元模型的概念都很重要[5]。特别是这些概念解释了元模型/模型协同进化现象。理解模型/代码协同进化也需要模型本身的概念,这些问题不是理论上的。它们对应于对软件行业开发过程具有强烈影响的实际问题。1.3面向MDE的巨型模型继“从古埃及到模型驱动工程”系列文章[ 3 ]之后,本文的目标是提供一个“足够好”的简单地说,这个转换模型、模型转换、模型的模型、转换的Meta模型以及这些术语的任意组合megamodel应该使我们能够在不涉及技术空间细节的情况下,对复杂的软件工程过程进行推理显然,在巨模型上进行推理所得到的结果必须与直接从现实中得到的结果一致。从技术上讲,这个megamodel是一个元模型,因此也是一个模型[3]。但是,由于这些术语是由megamodel定义的,称之为元模型会令人困惑。本文的目的决不是发明新概念。相反,我们只想模仿已经存在的东西。仅此而已本文没有定义新词,而是依赖于现有的MDE研究[17][2][11][10][1]。在[17]中,Seidewitz非正式地,但经过深思熟虑地描述 了 modes 和 meta-modes 。B'ezivin 定 义 了 两 个 基 础 关 系 , 即RepresentationOf和ConformsTo [2]。Atkinson和Kuhne研究了MDA和本体之间的关系[1]。几乎所有定义MDE概念的工作都是非常具体的,并限于特定的TS,或者用简单的英语表达。相比之下,本文提出的大模型是用UML表示的OCL约束。本文介绍了目前版本的megamodel,我们已经建成。这个大模型经过精心设计,更重要的是,它已经通过来自不同技术空间的大量例子得到了验证在[3]中,MDE的研究是从历史的角度进行的,它显示了从古埃及到现代软件技术的人工制品如何以平滑的方式符合megamodel62J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59本文末尾的图10总结了该巨模型。它由5个核心关联组成,即δ、µ、、χ和τ。 它描述了模型、语言、元模型和转换的概念。 请读者参考“从古埃及到模型驱动工程”系列,其中每个关联都在不同的情节中描述了大量具体的例子。例如,第一章[6]集中于模型和μ。第二章[7]集中于语言和元模型,即X和X。其他剧集正在建设中。1.4本文结构本 文 其 余 部 分 的 结 构 如 下 。 megamodel 的 基 础 在 第 2 节 中 介 绍 。Transformations和IsTransformedIn(τ)将在第3节中介绍。最后,第4节展示了建模演化的第一个结果,第5节总结了本文。2模型、语言和元模型如下一个UML类图所示,MDE megamodel的核心围绕着四个关系:δ、µ、和χ(图2)。每种关系在下面的单独章节中简要讨论关于模型和μ的更多信息,请参见第一章[6];关于语言、元模型、和χ,请参见第二章[7]。分解复合材料 *部分 **sus* 模型RepresentationOf快捷键:分类:分解联系人:RepresentationOf元素元素 *设置 *设置系统* 元模型/符合* cmodel标签:ElementOf标签:符合sus:systemUnderStudy物理系统cmodel:conformantModelcModel.systemUnderStudy->notEmpty()metamodel = cmodel.set.model->asSet()图1.一、MegaModel:δ,µ,G,χ2.1系统、部件与分解In(δ)当谈论MDE时,系统是话语的主要元素这个非常抽象的定义只是为了确保广泛的应用关于megamodel简而言之,一切都是一个系统,但使用“系统”一词系统可以非常简单。例如J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)5963三角函数π是一个系统。货币对(0000011, 0001101)也是一个系统。复杂系统可以分解为子系统或部分,从而定义了DecomposedIn关系(δ)(图2)。复合材料 *分解图二. MegaModel:δ例如,(0011, 1101)δ1101只是表明第二个系统是第一个系统的一个“部分”。这些信息可以在UML对象图中表示为δ链接,但是为了节省空间,我们在本文中更倾向于使用传统的xRy数学符号,这是(x,y)∈R的捷径。请记住,关系在集合论中是简单的对的集合2.2模型和表示(µ)与其提供模型的另一种定义,不如引用现有的定义。”A (UML标准)。 模型应该能够代替实际系统回答问题。”[10 ]第10段。“模型是一组关于所研究的某个系统(SUS)的陈述.”[15 ]第10段。从这些定义中,我们至少可以识别出三个概念:模型的概念,被研究系统( SUS ) 的 概 念 以 及 这 些 概 念 之 间 的 关 系 这 个 关 系 在 [2] 中 被 称 为RepresentationOf,所以我们保持了相同的术语。我们只是用µ作为捷径,以避免错误的内涵和误解。图3描述了这种微关联。第一集[6]专门研究了这种关联。* susRepresentation Of图三. MegaModel:µ我们在这里总结一下这个关系的主要性质。 关键是要认识到模型的概念是相对的。这不是一个内在的部分*系统* 型号系统64J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59系统元素 *设置 *设置系统的属性。例如,(0011, 1101)是一个系统,它可能只是一个系统。但我们可以说,这个系统扮演着模型的角色,因为(0011 ,1101)μ π。人们确实可以将这对的两个部分解释为比特序列,并将结果解释为该比特序列的十进制表示。3 .第三章。14值。我们可以陈述(0011, 1101)µ(3, 14)和(3, 14)µ π。这个例子表明,µ链接可以组合。 [17 ][18][192.3语言、集合和ElementOf(元素)在 语 言 理 论 中 , 语 言 被 定 义 为 一 组 句 子 。 例 如 , 集 合{“h“ , “ho“ ,“hoo“,“hooo“,... }是以h开头,以o字母继续的单词的语言。 让我们把这个集合称为hoL。 语言理论是建立在集合论的基础上的在megamodel中,关联ElementOf(ElementOf)对这个概念进行建模(参见图4)。元素见图4。 MegaModel:G这种结合表示集合论中的∈。不多不少。巨模型、集合论和语言理论之间的关系在[8]中有描述。一种语言是一个集合,而作为另一个例子,Java语言是所有Java程序的(无限)集合。UML是一种建模语言。它是所有UML模型的集合,所以图2是UML L。2.4元模型与符合(χ)语言是非常抽象的系统。人们需要实际的方法来处理语言,导致了语言模型的概念。这里没有什么新的东西,因为语言只是特定的系统。例如,正则表达式h(o)是上述语言hoL的模型所以h(o)hoL。语法是语言的模型,而不是语言。一个XMLDTD,比如说x.dtd,是一种语言的模型,而不是一种语言。众所周知,一种给定的语言可以由许多模型来建模(用同一种语言或使用不同的语言来表达)。在Grammarware技术空间[12]中,这一事实是通过说它们有很多来表达的J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)5965系统* 元模型/符合cModel.systemUnderStudy->notEmpty()metamodel = cmodel.set.model->asSet()* cmodel语法(以及表达这些语法的各种语法语言,如BNF和YACC)。例如,我们也有h(o)(o)µhoL。除了使用正则表达式,hoL语言还可以通过BNF或YACC中表达的语法进行建模语言的模型(μχ)不能与模型的语言(χμ)混淆。建模语言是“模型语言”的通称。但实际上,MDE中的重要概念是模型语言的模型(µχµ)的概念,即建模语言的模型。这些模型称为元模型。这个概念导致了大模型中的关联Conform-sTo(χ)(图5)。图五. MegaModel:X模型必须符合其元模型。这些关系在不同的技术空间中有不同的体现。例如,在Grammarware TS中,短语必须符合语法;在XMLWare TS中,XML文档必须符合DTD;在Dataware TS中,数据库的内容必须符合该数据库的模式如第二集[7]所示,这种关联在[2]中被确定为MDE的基础,但我们的贡献是表明这实际上并不是以前认为的基本关联。ConformsTo是一个派生的关联,如图2所示。事实上,ConformsTo植根于集合论,因为它总结了μ和μ链接的特定组合。也就是说,它融合了集合的概念和模型的概念[8]。本文中给出的元模型概念确实与大多数在文学作品中找到的定义。例如,以下定义一致地表达了元模型是模型语言的模型的事实:“元模型是定义用于表达模型的语言的模型”[ 16 ]。“元模型是一类SUS的规范模型,其中类中的每个SUS本身都是用某种建模语言表达的有效模型”[ 17 ]。66J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59系统*目标来源 *IsTransformedIn:标签:IsTransformedIn系统*目标也称为转换实例IsTransformedIn*来源3Transformations和IstransformedIn(τ)尽管MDA标准的初始版本并没有强调转换,但这确实是MDE的核心概念,就像模型和元模型一样。此外,转换是软件开发的基础。模型驱动的软件演化也可以称为转换驱动的演化。不幸的是,尽管transformation的概念是相当直观的,但没有一致同意的术语,这个术语通常用于指不同的概念[8]。让我们来澄清这个概念。区分转换实例、转换(函数)、转换模型、转换建模语言和转换元模型非常重要。本文的目的决不是定义一个标准术语。这只是为了表明这里存在一个严重的问题,并且megamodel可以改善对MDE的理解和推理。3.1变换实例和τ按照集合论的风格,我们可以说一个系统通过将其建模为一个简单的对而转化为另一个系统。为此,在megamodel中引入 IsTransformedIn(τ)关联就足够了这是在下图的左边完成的。图 六、MegaModel:Transforma tioninstances(τ)例如,1τ 2表示整数1 IsTransformedIn 2。 这对(1,2)将被称为转换实例或转换应用程序。 1扮演这个转换的源角色,而2扮演目标角色。如果p1和p2是程序,则p1τ p2意味着程序p1在程序p2中变换.那么(p1,p2)是一个程序转换实例.重要的是要注意,它们对转换实例没有约束,并且没有提到转换的复杂性。(p1,p 2)可以简单地对应于增加一个空白,修改一个算法,重命名一个过程,或者它可以是一个完整的重新实现的程序。正如读者可能已经注意到的那样,τ是在系统上定义的,这一事实使得这种联系非常普遍。它可以与迄今为止介绍的其他协会任意组合。例如,我们可以说一个模型是J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)5967转换成另一个模型,一个元模型转换成另一个元模型,一个模型转换成一个元模型,等等。虽然最后一个例子乍看起来很奇怪,但只要考虑一下一些工具就可以从XML文件x1.xml中提取DTD(例如X.dtd)。文件X.dtd是XMLWare技术空间中元模型的化身而x1.xml是一个 模 型 。 这 种 情 况 可 以 通 过 以 下 事 实 来 建 模 : x1.xmlτ X.dtd 和x1.xml× X.dtd。如图8中的图形模式所示,这种转换是“元模型推理”的化身一些商业工具可以做到这一点。3.2作为系统将转换实例视为第一类实体,为megamodel带来更强大的功能。转换实例是系统本身。图6右边的关联类既是类又是关联。这个类应该被称为TransformationInstance,但是不幸的是,as-association已经接收了IsTransformedIn名称,并且在UML中只能为给定的元素定义一个名称。无论如何,根据UML语义,这个(关联)类的对象可以是任何链接的源或目的这正是我们所需要的。特别地,τ链可以以多种方式组合,从而导致复杂的τ-图。例如,变换实例的源和/或目标可以是另一变换实例。高阶函数和曲线的力量在计算机科学中是众所周知的,这正是在各种技术空间中发生的事情,尽管这些术语不一定被使用。将转换实例视为系统也意味着τ可以与来自巨模型的所有其他关联(例如,τ,χ,μ)相这对于建模软件开发领域是必要的例如,假设我们要分析从程序p1到程序p2的转换实例,即对(p1,p 2)。这个分析的结果可能是一个XML文件diff12.xml,它对源和目标之间的差异我们想要的东西更聪明的unix的输出我们有diff12.xml µ(p1,p2)和p1τ p 2。所以diff12.xml是继续相同的示例,这个XML文件可能由其他转换实例组成。例如,函数f1是p1的一部分,可能已经被变换为p2中的函数f2所以我们有diff12.xml δ(f 1,f 2),p1δf 1,p2δf 2和f1τf 2。分析转换实例(p1,p 2)并生成摘要diff12.xml对于理解程序演化非常有用这可以通过以下事实(p1,p 2)τdiff12.xml和diff12.xml µ(p1,p 2)进行建模从τ和μ在相反方向上的图案的出现68J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59转型defDomain*可以推断这是3.3转换(函数)到目前为止,我们已经看到单个系统可以转化为其他单个系统。软件进化可以被看作是一系列的转换实例,但这是一个非常弱的结果,不会带来具体的好处。相反,MDE的挑战是尽可能自动化转换。只有在隔离考虑转换实例时才能做到这一点。它们应该在更高的抽象层次上描述;不是在单个系统上,而是在一组系统上。变换函数,或简称变换,是数学意义上的函数域中的值映射至多映射到范围[18]中的一个值。更准确地说,转换(函数)是一组转换实例。转换实例是ElementOf(ElementOf)零个或多个转换。变换域(函数)是可以被变换的系统的集合。变换(函数)的值域是通过这种变换可以得到的系统的集合。这种建模直接来自集合论和Z数学语言[18]。 我们在这里只使用术语转换功能或简单的转换而不是功能,因为术语然而,转换是一种功能。因此,正确的术语是来源 *也称为转型* 元件元素* 设置defRange*元素->forall(e| e.oclIsKindOf(IsTransformedIn))和let tis = element.oclAsType(Set(IsTransformedIn))in tis ->forall(ti|self.defDomain.element->includes(ti.source)和self.defRange.element->includes(ti.target))而不是tis->exist(ti 2|ti2!= ti和ti.target = ti2.target)图7.第一次会议。MegaModel:转换函数与转型升级例如,(1, 2)∈τ意味着整数值1被变换为2. 集合{(0,1),(1,2),(2,3),(3,4),. }是一个转换(函数),如果所有它的元素是转换实例。让我们称这个转换为add 1,而mul 2将引用转换{(0,0),(1,2),(2,4),(3,6),. }。在这个例子中,我们可以看到一个转换实例可以是IsTransformedIn设置11系统目标 *J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)5969自(1,2)n加1和(1,2)n加 2以来的各种变换函数。根据已有的转换对转换实例进行分类是演化分析中的一个已知问题。例如,目标可能是从转换实例中识别重构。在这种情况下,人们试图通过观察一个程序的两个连续版本之间的差异来诸如“重命名方法”之类的重构3.4变换模型上面定义的转换函数是抽象系统,因此不具有可操作性。在MDE中需要的是一种描述转换的具体方法。这自然会导致转型模式。转换模型是转换(函数)的模型。例 如 , 让 我 们 调 用 dblCC 程 序 intf ( int x ) {return x+x;} ,dblPPascal程序函数f(x:integer):integer begin return x=2end和dblC2 C程序intf(int x){returnx1;}。应该清楚dblC µ mul2、dblP µ mul2和dblC2µ mul 2。正如这个例子所暗示的,它们有很多方法和语言来编写转换模型。这个例子很简单,但它并不代表通过转换的软件演化。编译器、重构工具或YACC工具是软件演化的转换模型的更好的例子,因为它们转换模型。转换模型不能与转换函数或转换实例混淆在XMLWare技术空间中,XML样式表是转换模型的一个例子。它对定义在XML文件上的转换(函数)进行建模。这种转换可以用任何其他语言来表示,例如XQuery。在特定XML文件上应用样式表会导致转换实例。编译器在特定程序上的应用,或者YACC在特定语法上的应用都是转换实例的例子每一次修改都可以被看作是一个转换实例。事实上,在软件演化过程中应用的绝大多数转换实例都是临时的。也就是说,它们不是现有转换函数的元素。软件工程师只是改变程序,而不想知道这是否是一个转换的实例。重构是转换的一个例子,它可以被建模并因此自动化,但这些都是孤立的例子。事实上,目前软件演化是由ad-hoc transformation实例驱动的,而模型驱动工程的目标是驱动70J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59通过一组可重用的转换函数来处理。4巨模型在软件演化中的我们相信,所有的软件演化过程可以建模为一个图,使用上面提出的megamodel。图表示例见[3]以UML对象图的形式,但第一集和第二集只呈现了一个静态视图。在考虑转型和进化之前,让我们首先考虑这样一个静态的愿景。简单地说,大型软件的每个版本都是一个复杂的系统,因此每个版本都可以建模为基于以下元素的图:• δ链接,例如,用于模拟所研究的软件由包组成的事实,这些包由源文件组成,这些源文件由函数组成,等等。• µ链接,例如,Z模型是Ada程序的一个规范。• 例如,XML链接到XML模型与特定领域语言(DSL)相关的模型。语言应该被视为软件的组成部分,特别是从长远来看,因为它们总是会发展[5]。• x链接,例如,对XML模型符合上面提到的对DSL建模的DTD这一事实进行建模。或者建模Ada程序的一致性由Ada编译器检查,Ada编译器是一种元件工具[5]。• τ链接,例如,模拟一个二进制文件是从一个Ada源文件中产生的,而Ada源文件本身是从一个Z规范模型中产生的。所以每个版本都可以用一个图来表示。软件的演变可以通过使用τ链接的这些图的组合来建模。 最后,我们得到了一个包含各种链接的更大的图。megamodel并不局限于模型进化或软件进化。因为一切是一个系统,一切都可以被改变。 也就是说,每个系统都可以是τ链路的源或目标。这是必需的,因为在非常大的软件公司里,一切都是迟早会发展的[5]。 事实上,演化可以通过τ链接和决定演化类型的其他类型链接的组合来建模。如果我们考虑大范围的进化[5],语言会进化(τ)。元模型进化(µ µτ)。转换模型演化(τ µτ)。 等此外,当两个由一个链接连接的系统进化时,这会导致协同进化问题。这是因为必须在链接的两端之间保持一致性协同进化现象的例子包括模型/代码协同进化(τµτ)。元模型/模型协同进化[5]是另一个J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)5971示例(τµτ)。上面使用的希腊字母顺序是模糊的,特别是这是因为上面描述的概念对应于图形模式,而不仅仅是序列。我们已经识别出许多与已知概念相对应的有趣模式。下图中提供了一些示例。正向工程改造逆向工程改造模型/系统协同进化元模型/模型协同进化 系统驱动进化模型驱动进化往返演化Metamodel/conformantModel自反元模型元模型工程元模型逆向工程元模型推理图8.第八条。MegaModel:存在于mega-paterns(τ)中的Examples5结论在本文中,我们介绍了一个巨模型来描述MDE概念和它们之间的关系。图9总结了该巨模型。为了本文的目的,这里所提出的观点在[8]中可以找到一个更完整的观点,明确了巨模型、集合论和语言理论事实上,通过使用megamodel,我们发现它比预期的更它真的帮助我们把那些显然是脱节的概念和技术联系起来。令人惊讶的是,我们发现许多已知的问题可以建模为图形模式。我们仍在探索72J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59分解复合材料 ** sus部分** 型号系统RepresentationOf/符合来源 ** 元模型* cmodel目标 ** 元素元素* 设置cModel.systemUnderStudy->notEmpty()metamodel = cmodel.set.model->asSet()也称为转型升级设置元素->forall(e|e.oclIsKindOf(IsTransformedIn))defDomain 1*和1 defRange*IsTransformedIn转换let tis = element.oclAsType(Set(IsTransformedIn))intis ->forall(ti|self.defDomain.element->includes(ti.source)和self.defRange.element->includes(ti. target))而不是tis->exist(titi2!= ti和ti.target = ti2.target)见图9。 MegaModel概述新的关于megamodel的形式,这里使用的语言是UML,但是我们正在构建megamodel的其他化身。在撰写本文时,我们正在编写Prolog,Z [18]和象形文字[3][4]的版本。该megamodel使用不同的语言来表达。有趣的是,Prolog megamodel是可执行的,因此它可以自动识别上述模式,并从megamodel中表达的给定模型中导出新的事实[8]。这个程序的结果从UML megamodel的转换与OCL约束的转换prolog规则。换句话说,这就是megamodel变换,所以我们将MDE应用于它自己的megamodel。实际上,问题并不在于megamodel的语义,而在于它的解释[3]。也就是说,形式化元模型并不是一个真正重要的问题。MDE本身不是一个形式化的系统,问题更多的是关于如何表示MDE现实世界,即关于用于描述结果模型的语言。换句话说,问题是如何从软件演化过程中提取模型。为了简化这项任务,我们正在定义大模型与其在每个技术空间中的具体体现之间的系统映射。到目前为止,我们所做的实验是很有希望的。这并不奇怪,因为我们正在构建元模型来反映我们对现有技术空间的实际知识。然而,我们并不认为这里的大模型是完整的或完美的。 像任何其他模型一样,巨型模型当然代表了很多还有改进的空间例如,为了模拟共同进化现象,有必要包括距离的概念,以表达在多大程度上,J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)5973模型符合元模型(元模型/模型协同进化),或者模型是代码的表示(模型/代码协同进化)。添加度量的概念也是进一步的工作。最后,读者可能仍然想知道这项研究是怎么回事。这里没有代码。也没有什么新的。只是从不同的角度考虑问题MDA标准由2500多页组成。它充满了复杂的技术,并且有大量的商业工具声称是MDA兼容的。这一标准已有三年多的历史。软件行业的主要参与者,如微软和IBM,宣布MDE是其战略的组成部分。尽管如此,学术界的大多数人仍然想知道什么是元模型转换,元模型驱动的进化过程,甚至是通过转换的模型驱动的进化过程。虽然Meta这个术语已经被软件行业的领导者所采用,但它仍然被许多人认为是可疑的本文的目的就是为了提高对MDE概念的理解,使其更容易理解。我们认为这是软件进化的一个战略问题。经过大约50年的经验软件进化,毫无疑问,软件可以以一种特殊的方式进化。我们所需要的是一个新的软件演化范式。MDE可能是一个候选人。6致谢我们 要感谢 匿名评 论者的 评论。 我 们还要 感谢Jean Bzivin 、 JackyEscherlier、German Vega和AS MDA项目的所有成员,以及关于MDA的Dagsthul研讨会1401的与会者,感谢他们就这个主题进行了富有成效的讨论引用[1] C. AtkinsonandT. 是的。 现代化的驱动程序:一个现代化的基金会。 软件,2003年9月。[2] J. B'ezivin.在现代化的信息技术中,我们提供了一个全面的预防措施。NovaticaJournal,Special Issue,March-April 2004.[3] 从古埃及到模型驱动工程。 www-adele.imag.fr/mda.[4] J.F.商博良 格拉玛蕾·阿格蒂安1836.用法语。[5] J.M.法弗尔三维软件空间中的元模型与模型协同进化。 在大型工业软件应用的演变研讨会上,ELISA,与ICSM联合研讨会,9月。2003.可在www-adele.imag.fr/cnjmfavre查阅。[6] J.M.法弗尔模型(驱动)(逆向)工程的基础:模型-第一集:Fidus Papyrus和Solarus的故事。Dagstuhl Seminar 04101,2004年。第三集[3]。74J. - M. Favre,T.NGuyen/理论计算机科学电子笔记127(2005)59[7] J.M.法弗尔元金字塔的基础:语言和元模型-第二集:狒狒图图斯的故事。Dagstuhl Seminar04101,2004年。第三集[3]。[8] J.M.法弗尔面向模型驱动工程建模的基本理论。在WISME会议记录中,2004年11月。可在www-adele.imag.fr/cnjmfavre查阅。[9] 美国电气与电子工程师协会。软件密集型系统体系结构描述的IEEE推荐实施规程,ieee标准1471,2000。[10] 哦,上帝啊,J。 B'ezivin. 这是一个预先定义的0mg/md帧w或k的定义。2001年11月,在ASE01的出版物上[11] A. Kleppe,S. Warmer和W.百斯MDA解释说。模型驱动架构:实践与承诺Addison-Wesley,2003年。[12] P. 克林特河 Lam?mmel,and dC. Verhof. 这两个问题都是针对垃圾桶的。技术报告,提交出版,CWI。可在homepages.cwi.nl/enralf/查阅。[13] I. Kurtev,J. 贝齐·文和M。 好的。 技术逻辑空间:一个不可分割的空间。InCopIS, DOA[14] OMG. Mda网站。 www.omg.org/mda。[15] OMG.模型驱动架构(mda)。original/2001-07-01,CWI,2001年7月。可在www.example.com上获得www.omg.org/mda。[16] OMG. Meta object facility(mof)规范,版本1.4。技术报告,2002年4月。 可在www.example.com上获得www.omg.org/mda。[17] E.赛德维茨 models是什么意思 IEEE Software,2003年9月。[18] J.M.斯皮维 Z符号:参考手册。 普伦蒂斯·霍尔1992年
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 基于嵌入式ARMLinux的播放器的设计与实现 word格式.doc
- 经典:大学答辩通过_基于ARM微处理器的嵌入式指纹识别系统设计.pdf
- 嵌入式系统课程设计.doc
- 基于飞思卡尔控制器的智能寻迹车设计ARM基础课程课程设计.doc
- 下载基于ARM7的压电陶瓷换能器导纳圆测量仪的研制PDF格式可编辑.pdf
- 课程设计基于ARM的嵌入式家居监控系统的研究与设计.doc
- 论文基于嵌入式ARM的图像采集处理系统设计.doc
- 嵌入式基于ARM9的中断驱动程序设计—课程设计.doc
- 在Linux系统下基于ARM嵌入式的俄罗斯方块.doc
- STK-MirrorStore Product Release Notes(96130)-44
- STK-MirrorStore Storage Connectivity Guide for StorageTek Disk A
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-本科毕业设计.doc
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-.doc
- 龙虾养殖远程监控系统的设计与实现数据采集上位-机软件模块-本科生毕业论文.doc
- 麻阳风貌展示网站的设计与实现毕业论文.pdf
- 高速走丝气中电火花线切割精加工编程设计.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功