Connecting the Models: A Global Mega-model of MDE Projects on GitHub
本文提出了一种通过挖掘包含 325,000 个模型驱动工程(MDE)人工制品的 7,400 多个 GitHub 项目而衍生的全球巨型模型,旨在为实证分析 MDE 工具与技术的实际使用、组合及维护建立一个基础数据集。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下软件开发的世界就像一座巨大且混乱的图书馆。在这座图书馆里,有一个特殊的区域叫做模型驱动工程(Model-Driven Engineering, MDE)。MDE工程师并不像传统程序员那样逐行编写代码,而是构建“蓝图”(模型),然后使用专门的工具从这些蓝图中自动生成实际的软件。
多年来,理论认为这些工程师会利用一套标准工具(如 EMF、ATL、Xtext 等)来打造出精妙的定制化工作坊。其核心理念是像拼搭乐高积木一样,将这些工具组合在一起,从而创造出完美的开发环境。
但一直以来,没人真正知道现实世界中是否真的发生了这种情况,也不知道这些工作坊是否正在分崩离析,或者工程师们究竟是如何使用这些工具的。
问题所在:没有目录的图书馆
研究人员意识到,尽管 GitHub(一个巨大的代码共享网站)上有成千上万个这样的 MDE 项目,但它们都是孤立存在的。这就像是有数百万本书散落在地板上,却没有任何目录。你无法观察到:
- 哪些项目与其他项目相关联。
- 工程师们是如何组合不同工具的。
- 他们是在构建新的蓝图,还是在复制粘贴旧的蓝图。
- 哪些工具实际上最受欢迎。
解决方案:构建一张“超级大图”
作者决定构建一个全局超级模型(Global Mega-Model)。请记住,这不仅仅是一张地图,而是一个巨大的、互联的网络,它连接了这座图书馆中每一份蓝图、每一个工具和每一个项目。
以下是他们的实现步骤:
1. 大规模搜寻行动(数据收集)
首先,他们在 GitHub 上进行了一场大规模的搜寻。他们寻找的不只是代码,而是特定的“MDE 人造制品(artifacts)”。
- 类比: 想象他们正在寻找特定类型的乐高积木:蓝色底板(元模型)、红色连接件(转换器)和说明书(语法定义)。
- 他们找到了 7,436 个项目,包含超过 327,000 个此类特定文件。他们下载了这些项目的完整历史记录,以获得完整的全景视图。
2. 对蓝图进行逆向工程(恢复关系)
拿到文件后,他们必须弄清楚这些文件是如何相互配合的。这非常棘手,因为连接关系并不总是被明确写出来的。
- 类比: 想象你发现了一个食谱(一个转换文件)说“制作一个蛋糕”,但却没有列出原料。你必须观察厨房台面(配置文件)或者根据蛋糕的类型进行推测,才能得知它需要面粉和鸡蛋。
- 研究人员为每种类型的工具都构建了专门的“检查员”(数字侦探)。这些侦探负责阅读文件并搞清楚:
- 这个工具使用哪个蓝图?
- 它导入了哪些其他文件?
- 它生成了什么内容?
- 他们将每个项目转化为了一个微小的“连接网络”。
3. 将网络编织成巨大的蜘蛛网(全局超级模型)
这是最具创意性的部分。在软件世界中,并不存在这些蓝图的“应用商店”。如果工程师需要某个特定的蓝图,他们通常会直接从另一个项目中复制并粘贴。
- 类比: 想象两个不同城市的人都有一份相同的“房屋蓝图”。在普通的图书馆里,这会被视为两本不同的书。但研究人员意识到:“嘿,这是同一份蓝图!”
- 他们使用一种特殊的算法来寻找近乎重复的内容。如果两个项目拥有相同(或经过轻微修改)的蓝图,他们就会将它们合并为大图中单个的节点。
- 这创造了一个全局超级模型:一个巨大的图结构,其中每一个独特的蓝图都是一个点,而每一个项目都是由这些点组成的簇,并相互连接。
他们发现了什么?(研究结果)
通过观察这张巨大的地图,他们终于能够看清 MDE 世界的“轮廓”:
- “枢纽”: 他们发现了巨大的中心枢纽,例如 Ecore(一种标准的蓝图格式),几乎所有的项目都与之相连。它就像是这座图书馆里的“主干道”。
- “复制粘贴文化”: 他们发现存在大量的重复现象。许多项目仅仅是其他项目的副本,并做了细微的调整。这表明 MDE 工程师在共享工作方面遇到了困难,因为他们缺乏一个用于管理依赖关系的“包管理器”(类似于应用商店)。
- “孤岛”: 大约 60% 的项目是“孤立”的,这意味着它们似乎与任何其他事物都不相连。它们就像海洋中的孤岛,完全从零开始构建,没有复用任何现有的部分。
- 工具流行度: 他们可以精确地看到哪些工具被组合使用。例如,他们观察到 Xtext(一种用于创建文本类语言的工具)在约 40% 的项目中使用,而其他某些工具的使用频率则非常低。
工具集
作者的工作并未止步于地图。他们构建了:
- 数据集: 一个包含所有这些信息的、可下载的数据库。
- 交互式工具: 一个网站,任何人都可以通过它探索这个巨大的网络,缩放查看特定项目,并观察它们是如何相互连接的。
为什么这很重要?
在这篇论文发表之前,想要回答诸如“工程师究竟是如何使用这些工具的?”或“哪些工具正在过时?”之类的问题,就像是通过观察单棵树来猜测森林的形状一样困难。现在,研究人员拥有了整个森林的卫星视角。
他们终于可以回答以下问题:
- “这些项目是在持续维护,还是已经被废弃了?”
- “工程师们是如何复用彼此的工作的?”
- „结合使用这些工具最常见的方式是什么?”
简而言之,这篇论文构建了第一个 模型驱动工程的 Google 地图,将原本混乱、零散的项目变成了一个可导航、互联的世界,使研究人员终于能够对其进行深入研究。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。