Maintenance is a critical stage in the software lifecycle, ensuring that post-release systems remain reliable, efficient, and adaptable. However, manual software maintenance is labor-intensive, time-consuming, and error-prone, which highlights the urgent need for automation. Learning from maintenance activities conducted on other software systems offers an effective way to improve efficiency. In particular, recent research has demonstrated that migration-based approaches transfer knowledge, artifacts, or solutions from one system to another and show strong potential in tasks such as API evolution adaptation, software testing, and migrating patches for fault correction. This makes migration-based maintenance a valuable research direction for advancing automated maintenance. This paper takes a step further by presenting the first systematic research agenda on migration-based approaches to software maintenance. We characterize the migration-based maintenance lifecycle through four key stages: \ding{182} identifying a maintenance task that can be addressed through migration, \ding{183} selecting suitable migration sources for the target project,\ding{184} matching relevant data across systems and adapting the migrated data to the target context, and \ding{185} validating the correctness of the migration. We also analyze the challenges that may arise at each stage. Our goal is to encourage the community to explore migration-based approaches more thoroughly and to tackle the key challenges that must be solved to advance automated software maintenance.
翻译:维护是软件生命周期中的关键阶段,确保发布后的系统保持可靠、高效和适应性。然而,手动软件维护劳动密集、耗时且易出错,这凸显了自动化的迫切需求。从其他软件系统执行的维护活动中学习,为提高效率提供了一种有效途径。特别是,近期研究表明基于迁移的方法能够将知识、工件或解决方案从一个系统转移到另一个系统,并在API演进适配、软件测试以及错误修复补丁迁移等任务中展现出强大潜力。这使得基于迁移的维护成为推进自动化维护的重要研究方向。本文进一步提出了首个关于基于迁移的软件维护方法的系统性研究议程。我们通过四个关键阶段刻画基于迁移的维护生命周期:\ding{182}识别可通过迁移解决的维护任务,\ding{183}为目标项目选择合适的迁移源,\ding{184}跨系统匹配相关数据并将迁移数据适配至目标上下文,以及\ding{185}验证迁移的正确性。我们还分析了各阶段可能出现的挑战。我们的目标是鼓励学术界更深入地探索基于迁移的方法,并攻克推进自动化软件维护必须解决的关键挑战。