← 最新论文
💻 computer science

Model-Driven Legacy System Modernization at Scale

本经验报告介绍并评估了一种四阶段、模型驱动的方法,该方法通过引入一个丰富的、技术无关的中间模型,成功实现了大规模遗留 .NET 应用程序的现代化,在保留功能并提高可维护性的同时,实现了 UI 组件的半自动迁移。

原作者: Tobias Böhm, Jens Guan Su Tien, Mohini Nonnenmann, Tom Schoonbaert, Bart Carpels, Andreas Biesdorf

发布于 2026-06-18
📖 1 分钟阅读☕ 轻松阅读

原作者: Tobias Böhm, Jens Guan Su Tien, Mohini Nonnenmann, Tom Schoonbaert, Bart Carpels, Andreas Biesdorf

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你拥有一座规模宏大、具有历史感的工厂,它已经连续运转了20年。它生产的货物是整个城市赖以生存的。问题在于?这座工厂是根据旧蓝图建造的,使用了生锈的机械,而且唯一知道如何修理那些奇特、定制化杠杆的人,都是即将退休的原初建造者。

你知道你需要升级到一个现代化的、自动化的工厂以跟上时代,但你不能直接关停并重建它。那样做风险太高,成本也太贵。

这篇论文描述了一种聪明的“中间人”策略,旨在不停止生产的情况下实现工厂的现代化。以下是他们是如何做到的,通过简单的解释:

问题所在:“旧工厂”

研究人员针对一个巨大的软件系统(一个主要欧洲港口的“终端操作系统”)进行了研究,该系统自2006年以来一直在运行。它就像那座旧工厂:

  • 它行之有效: 它处理着像货物移动和计费这类关键任务。
  • 它陷入僵局: 它构建在非常陈旧的技术(.NET Framework 和 ASP.NET Web Forms)之上,难以维护。
  • 它很混乱: 在15年的时间里,人们添加了数千个定制部件。其中一些是标准的,但许多是独特的、手工打造的“定制化(bespoke)”部件,无法套用标准模具。
  • 风险: 如果你尝试手动重建它,将耗时极长,耗资巨大,并且你可能会破坏目前正在正常运行的功能。

解决方案:“通用翻译器”蓝图

他们并没有尝试直接将旧工厂翻译成新工厂(这就像试图将一首诗逐字逐句地翻译成另一种语言,并寄希望于其含义保持不变),而是发明了一个通用翻译器蓝图

他们创建了一个三步走的流程:

1. “考古学家”阶段(分析)

首先,他们不仅仅是查看代码;他们还绘制了地图。他们使用软件扫描旧工厂,并创建了一份详细的、与技术无关的地图。

  • 类比: 想象一下拍摄旧工厂中每一台机器、每一根电线和每一个杠杆的照片,并写下每一个部件的具体功能(例如:“这个杠杆打开大门”、“这个按钮打印收据”),而暂时不去关心它是如何实现的。

2. “通用蓝图”阶段(富集)

这是最关键的部分。他们将那份混乱的地图转化为了一个干净、简洁、“与技术无关”的模型。

  • 类比: 他们创建了一份主蓝图,上面写着:“我们需要一个开门器”、“我们需要一个收据打印机”以及“我们需要一套导航系统”。他们剥离了那些陈旧、生锈的细节,专注于纯粹的“功能”。他们还添加了“便利贴”(元数据)来解释规则,比如“这个按钮必须是红色的”或“这个表单需要密码”。
  • 为什么这有帮助: 因为这份蓝图不在乎旧工厂使用的是齿轮还是蒸汽,也不在在乎新工厂使用的是电力还是太阳能,因此它可以被用来构建任何现代版本。

3. “建造者”阶段(合成与过渡)

现在,他们利用那份干净的蓝图来自动建造新工厂。

  • 类比: 他们将“开门器”指令输入到一台现代的3D打印机(即新技术,Next.js/React)中,这台打印机立即打印出了一个全新的、流畅且现代化的开门器。
  • 结果: 对于标准部件(如按钮、文本框和标准表单),计算机完成了几乎所有的工作。它生成了数千个页面,这些页面看起来和运作起来都与旧页面完全一致,但运行在现代、快速的技术之上。

有效之处与局限之处

这篇论文诚实地说明了这种方法的局限性:

  • 神奇之处(自动化): 对于工厂中的“标准”部分(30种常见的按钮和表单类型),该系统就像一台复印机。它表现得非常完美,自动翻译了1,500个网页并保留了它们的运作方式。
  • 挑战(人工干预): 工厂中有一些奇怪的、定制化的“定制化(bespoke)”机器,没有人见过它们。计算机无法理解如何自动翻译这些部件。
    • 类比: 如果旧工厂有一个由特定木头制成的杠杆,只有原初建造者才知道如何使用它,那么3D打印机无法猜出如何制作它的现代版本。人类必须介入,手动重新设计这些独特的、特殊的部件。

回报

通过使用这种“通用蓝图”方法,团队实现了:

  1. 安全性: 他们不需要靠猜测。蓝图确保了新系统所做的事情与旧系统完全一致。
  2. 速度: 他们将枯燥、重复的部分自动化了,节省了数年的手动编码时间。
  3. 面向未来: 新系统更容易理解和维护,因为它构建在一个干净、现代的基础之上,而不是一堆陈旧、纠缠不清的电线。

总结

这篇论文表明,你并不一定要拆除一座具有历史意义的关键建筑才能实现现代化。相反,你可以创建一个智能的中间层蓝图,它理解旧建筑的用途,剥离掉旧的砖块,并利用这种理解力来自动构建一个现代、高效的版本——让人类只负责修复那些计算机无法理解的独特、古怪的细节。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →