arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2102.00701cs.SE
收藏

基于搜索的软件再模块化:Adyen的案例研究

Search-Based Software Re-Modularization: A Case Study at Adyen

Casper Schröder, Adriaan van der Feltz, Annibale Panichella, Maurício Aniche

摘要:

决定什么构成一个单一的模块,什么类属于哪个模块或一个特定的软件系统的正确的模块集一直是一个具有挑战性的任务。在由数千个类和数百个模块组成的大型软件系统中,这个问题甚至更难。多年来,研究人员一直在提出不同的技术来支持开发人员重新模块化他们的软件系统。特别是,基于搜索的软件再模块化是软件工程社区20多年来的一个活跃的研究课题。本文介绍了我们在应用基于搜索的软件再模块化方法在Adyen,一家大型支付公司的努力。Adyen的代码库有550多万行代码,分为大约数百个模块。我们利用该领域现有的知识体系来设计我们自己的搜索算法,并将其应用于我们的代码库。我们的研究结果表明,基于搜索的方法规模大的代码库,我们的。我们的算法可以根据我们优化的指标找到改进代码库的解决方案,开发人员在建议中看到了价值。根据我们的经验,我们列出了一组挑战和机遇,为未来的研究人员,旨在使基于搜索的软件重新模块化更有效的大型软件公司。

英文摘要:

Deciding what constitutes a single module, what classes belong to which module or the right set of modules for a specific software system has always been a challenging task. The problem is even harder in large-scale software systems composed of thousands of classes and hundreds of modules. Over the years, researchers have been proposing different techniques to support developers in re-modularizing their software systems. In particular, the search-based software re-modularization is an active research topic within the software engineering community for more than 20 years. This paper describes our efforts in applying search-based software re-modularization approaches at Adyen, a large-scale payment company. Adyen's code base has 5.5M+ lines of code, split into around hundreds of modules. We leveraged the existing body of knowledge in the field to devise our own search algorithm and applied it to our code base. Our results show that search-based approaches scale to large code bases as ours. Our algorithm can find solutions that improve the code base according to the metrics we optimize for, and developers see value in the recommendations. Based on our experiences, we then list a set of challenges and opportunities for future researchers, aiming at making search-based software re-modularization more efficient for large-scale software companies.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑