支持软件应用程序增量语言迁移的学习迁移模型
Learning migration models for supporting incremental language migrations of software applications
摘要:
遗留系统可以定义为一个显著抵制修改和进化的系统。根据文献,有两种主要的策略来迁移遗留系统:(a)用新系统替换遗留系统,(b)增量地将部分从遗留系统迁移到新系统。增量迁移允许开发人员更好地控制迁移过程中可能发生的风险。然而,这种策略更复杂,因为它需要将遗留系统分解为不同的部分,例如一组文件,并定义它们在迁移过程中的迁移顺序。据我们所知,没有办法支持开发人员进行这些活动。目的:本文提出了一种支持应用程序从一种源语言到另一种目标语言的增量语言迁移的方法MigrationExp。MigrationExp建议在特定迁移迭代中首先迁移的文件。作为一种新颖的方法,我们的方法依赖于一个排名模型的学习,使用学习排名算法,由开发人员进行迁移。方法:我们在Android应用程序迁移的背景下验证了我们的方法,从Java到Kotlin,一种新的Android官方语言。我们通过将Java代码迁移到开源应用程序开发人员编写的Kotlin来训练我们的模型。结果如下:结果表明,在提出文件迁移的任务上,我们的方法在准确预测经验观察到的迁移顺序的能力方面优于Google提出的先前的迁移策略。结论:由于大多数Android应用程序都是用Java编写的,因此我们得出结论,支持开发人员的方法(如MigrationExp)可能会对Android应用程序的开发产生重大影响。
英文摘要:
Context: A Legacy system can be defined as a system that significantly resists modification and evolution. According to the literature, there are two main strategies to migrate a legacy system: (a) to replace the legacy system by a new one, (b) to incrementally migrate parts from the legacy system to the new one. Incremental migration allows developers to better control the risks that may occur during the migration process. However, this strategy is more complex because it requires decomposition of the legacy system into different parts, e.g. a set of files, and to define the order of migration of them along the migration process. To our knowledge, there is no approach to support developers on those activities. Objective: This paper presents an approach, named MigrationExp, to support incremental language migrations of applications from one source language to another target language. MigrationExp recommends the files that should be migrated first in a particular migration iteration. As a novelty, our approach relies on a ranking model learned, using a learning-to-rank algorithm, from migrations made by developers. Method: We validate our approach in the context of the migrations of Android apps, from Java to Kotlin, a new official language for Android. We train our model using migrations of Java code to Kotlin written by developers on open-source applications. Results: The results show that, on the task of proposing files to migrate, our approach outperforms a previous migration strategy proposed by Google, in terms of its ability to accurately predict empirically observed migration orders. Conclusion: Since most Android applications are written in Java, we conclude that approaches to support developers such as MigrationExp may significantly impact the development of Android applications.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。