模型驱动工程

✍ dations ◷ 2025-08-27 10:23:23 #模型驱动工程

模型驱动工程(MDE, Model-Driven Engineering)是软件工程的一个分支,它将模型与建模拓展到软件开发的所有方面,形成一个多维建模空间,从而将工程活动建立在这些模型的映射和转换之上。MDE的基本原则是将模型视为第一实体,将所有软件产物当做模型或模型要素。

在计算机应用领域,“模型驱动”(model-driven)概念在国际上的广泛关注,主要是在对象管理组织(OMG)2002年提出的“模型驱动架构”(MDA)及相关的“模型驱动开发”(MDD)等概念之后。更广阔的背景,可追溯到20世纪1980-90年代各种建模技术的蓬勃发展。其中,面向对象建模最为活跃,“统一建模语言”(UML)是其中最具代表性的成果。这一时期,尤其1997年OMG正式采纳UML 1.1作为建模语言标准以来,软件领域无论是业界/技术开发领域还是理论/学术研究领域,大多数与软件建模有关的研究,都围绕着UML或与之相关。MDA正是在这样的背景下提出的。而UML则是MDA方案中的核心要件。

这种技术与实践领域的发展,同时也推动了它背后的原理与学术研究。在近十多年,除了OMG的MDA,人们对于模型在软件开发中的应用,有着更广阔的研究,对于模型与建模的重视一直在增强。在这个背景之下,关于软件及相关领域的建模与模型方面的各种思想、方法也愈加活跃起来。从近年的情况看,MDA对软件领域的建模与模型的重视与研究起了很大的促进作用,但它并非这些理念或技术(例如模型驱动)的源头,这也是毫无疑问的。其实,早在1980年代,曾经受到广泛重视的“计算机辅助软件工程”(CASE)就在基于建模与模型的软件开发技术方面做了大量的探索。以“信息系统”为主题的数据与信息建模、概念建模等,则始终是有关建模的研究方面一个重要的传统领域。

围绕模型在软件开发中的作用,除了广泛使用的“模型驱动”(model-driven)概念,还有“基于模型”(model-based)、面向模型(model-oriented)、以模型为中心(model-centric)等等,但“模型驱动”似乎已经得到了更多的认同。“模型驱动工程”(Model-Driven Engineering, MDE)大致就是在这样的背景上出现并逐渐活跃的。它并不是新出现的一种特定的技术,而是软件开发领域各种围绕模型与建模的技术的一种自然的聚集或综合,它的立场和层次,更接近于基本的软件工程。

与OMG的MDA相比,MDE具有更中性的立场和更广阔、全面的范围,MDA可以看作是MDE的一种具体和部分的实现途径。众所周知,OMG是软件产业最有影响的商业企业组成的标准化组织之一,推动MDA是2002年以来OMG的主要战略,MDA,MDD等都被OMG保留为注册商标。与更加中立的国际标准化组织以及学术性机构相比,它的背后的动机、目标、范围等,是相对狭隘的。MDA同样如此。而“模型驱动”背后隐藏和关联的原理、技术,无疑有着更广泛而深刻的背景和应用空间,也不是某种团体或企业的专利。“模型驱动工程”(MDE)这个中性的概念,是对这一广阔领域的一个较好概括。这也许是MDE这个专门词组近年渐趋活跃的某种因素之一,但我认为更主要的因素,还是应当归诸于这个领域自身的存在性,其独特价值与聚合力。

另一方面,尽管MDE更加中立和广阔,但现有的重要成果,大多都是与MDA关联的(或者是由MDA的相关研究中提出的),例如“模型驱动”这个概念在国际上的流行,就是在MDA的背景下发生的。还有MOF和元建模层次,以及对提升软件开发的抽象层次的特别强调等。可以说,近年国际IT领域出现的MDE,是在MDA的带动下发展起来的,它一方面,客观呈现为是MDA/MDD相关研究的扩大和延伸,一方面也是软件开发领域种种围绕“模型与建模”的实践、技术与理论的自然融合。

作为一个新兴的实践、技术与研究领域,MDE似乎还没有一个公认的、严格意义上的定义。它可以看作是一种软件工程范式(虽然从原理的角度,这里大部分基本理念,都可以在更广泛的背景例如“系统”概念下展开)。MDE尤其强调各种模型及其相互的转换在整个软件工程过程中的运用。MDE的基本观点是,整个软件开发(甚至包括所谓的“维护”)过程,都是某种围绕模型进行的活动:建模、模型转换、模型的“执行”或“解释”以及代码生成、基于模型的往复/逆向工程,等等。将模型放在空前重要,“至高无上”的位置上,是当前MDE最明显的标志之一。Bézivin (2004)将这一原则概括为“一切皆为模型”(everything is a model),与面向对象领域的“一切皆为对象”(everything is an object)形成对照。

需要强调,MDE并不是一个单纯的新概念或理念(比如与MDA/MDD,UML,DDD等相比),而更多地是对软件开发领域种种围绕“模型与建模”的实践与理论的概括或泛指,以一个较新的专用词组指向一个初步涌现的对知识、技术的汇聚领域(甚至迈向学科)。在这种理解下,所有软件开发方面的建模理论、技术等,都可以归纳为它的具体内容。比如领域建模与领域模型驱动开发(DDD)、领域专用模型与语言(DSM/DSL),以及许多计算机语言特别是语义方面的工作,包括本体工程等等,都可以从这种MDE的立场或视角给予解释或更好的定位。例如,从MDE的立场看,MDA与MDD,就是MDE的一种部分的、特定的实现途径。

从更广阔的软件工程立场上看,有必要回答为什么要发展模型驱动工程,或者它能够带来哪些独特的、新的好处。Atkinson与Kühne(2002)针对MDD,提出了两种不同的目标:第一种,是改进开发者的短期生产效率,即从所交付功能数量的方面提升基本软件产品的价值。第二种是改进开发者的长期生产效率,即提升软件产品的寿命(降低其过时的速率)。现有的工具与方法,多数都是针对上述第一层目标的。例如通过建模和从模型自动生成代码,改进软件的生产率。一旦这样所产生的软件需要再次改变,就涉及模型、软件(代码)的更新与同步问题,例如所谓“往返工程”难题。早期CASE的不尽人意,同样也涉及类似的原因(参考Schmidt, 2006)。第二个层次目标的提出,主要是针对“软件变更”的需求,其重点是降低软件产品对于变化的敏感度。“变化”具体可能来自开发人员变更、需求变更、开发平台变更、发布平台变更四个方面。MDE概念活跃的倡导者之一Johan Haan认为以上两个方面就是MDE的主要目标。

以UML为代表的软件工程领域模型与建模方面的发展,也被借鉴到或启发了传统的系统工程(SE)领域。近年来基于模型的系统工程(MBSE)得到长足的发展,其基本思想和方法,与MDE有许多共同之处。作为一种系统工程方法,MBSE通过创造和利用模型作为工程师的基本交流手段,代替基于文档的信息交流。基于模型的思想还有另一个基本的应用方向,就是模型驱动应用(MDApps)。与MDE/MDA/MDD着眼于开发过程的思路不同,MDApps将模型作为系统运行期的基本组件,使系统的功能或行为直接基于可以在运行期创建和改变的应用目标事物模型。

在2011年的研讨会上,欧洲MDE领军人物Jean Bézivin指出,MDE已陷入停顿,错过了最好的发展时机,至少是暂时失败了。 虽然在产业界、学术界都曾经被寄予厚望,盛极一时,但最终结果令人失望,无法得到预期的接受。这种困境很象80年代CASE遭遇的情景。

相关

  • 卢氏县卢氏县是中华人民共和国河南省三门峡市下辖的一个县。面积4004平方公里,2002年人口37万。县政府驻城关镇。相传因为卢敖成仙的典故,定此县名,已传承两千年。《读史方舆纪要》:“
  • 被认定的恐怖组织列表恐怖组织是指恐怖分子组成的网络与组织,这些组织通常分于世界各地,通过各种极端的行为与手段来发泄、引起关注或强迫他人接受自己的主张。世界范围内,被大多数国家认定为恐怖组
  • 艾琳·格雷艾琳·格雷(英语:Eileen Gray,1878年8月9日-1976年10月31日),出生全名是凯瑟琳·艾琳·莫雷·史密斯(Kathleen Eileen Moray Smith),爱尔兰恩尼斯科西出生的法国建筑师,同时也是家俱
  • 蔡祖淼蔡祖淼,国际问题专家,主要从事东欧问题的综合研究。为中国社会科学院资深研究员。1933年5月出生,籍贯浙江省余姚县(现宁波市)。1958年,毕业于阿尔巴尼亚国立地拉那大学。1958年-19
  • 卡洛斯·普埃布拉卡洛斯·曼努埃尔·普埃布拉(Carlos Manuel Puebla,1917年9月11日——1989年7月12日)是一位古巴歌手、吉他手和作曲家。他是新吟游歌谣运动的一分子,专于古巴式波莱罗和民谣音乐
  • 窦延丽窦延丽(1965年12月-),山东聊城人,回族,中国国民党革命委员会党员‎。中华人民共和国政治人物、第十三届全国人民代表大会山东省代表。2018年,窦延丽被选为山东省出席第十三届全国人
  • 巴德尔巴德尔(古北欧语:Baldr、Baldur,英语:Balder,盎格鲁萨克逊语:Bealdor/Baldor,Bældæg/Beldegg,古高地德语:Palter,哥德语:Baldrs),意即“盛开的花”。他是光辉美丽的化身,春天与喜悦之神,
  • 营销计划营销计划是商业计划的一部分.
  • 2003年大邱地铁纵火案大邱地铁纵火案,发生于2003年2月18日,起因是一辆隶属韩国大邱都市铁道公社的地铁列车在大邱市中央路站被纵火,因为地铁工作人员的应对不当,火势波及另一辆列车,最终导致192名乘客死亡,147人受伤,两组列车与车站主体被完全烧毁。此事件也是东亚继1995年东京地铁沙林毒气事件后另一起伤亡惨重的地铁事故,同样也因为当局反应迟缓、救援不当等原因导致不必要的死伤。金大汉,当时56岁,曾当过流动小贩、货车司机及计程车司机。在2001年中风失去工作能力后,便患上严重忧郁症、躁郁症,曾多次企图自杀,亦曾声称要烧死医生
  • 约翰·卡斯特拉尼约翰·路易斯·卡斯特拉尼(英语:John Louis Castellani,1926年8月23日-),美国前职业篮球和大学篮球教练。卡斯特拉尼在多支大学篮球队担任过助理教练和主教练,其中最为著名的是1956年起执教西雅图大学篮球队,带领球队打入过1958年NCAA的四强,并且培养出了NBA传奇巨星埃尔金·贝勒。1956-57赛季他执教的西雅图大学酋长篮球队在联赛中打出18连胜,在联赛中取得23胜3负的佳绩。赛季中他派出了二年级的贝勒,在他的大学篮球首个赛季就打出了全NCAA最高的场均20.3个篮板和第三高