Scholtes, IngoZanetti, Marcelo SerranoTessone, Claudio JuanSchweitzer, FrankAßmann, UweDemuth, BirgitSpitta, ThorstenPüschel, GeorgKaiser, Ronny2017-06-302017-06-302015978-3-88579-633-6Modular design is a desirable characteristic that fosters the comprehensibility and thus maintainability of software systems. While many software systems are initially created in a modular way, over time modularity typically degrades. In our work, we propose an automated strategy to remodularize software based on move refactorings, i.e. moving classes between packages without changing other aspects of the source code. Taking a complex systems perspective, our approach applies network theory to the dynamics of software dependency structures. Drawing inspiration from statistical physics, we use the Potts Spin Model and turn it into a stochastic remodularization algorithm which is based on probabilistically moving classes between modules. We test our method on 39 open source JAVA software projects. Comparing the modular structure produced by developers with that optimized by our algorithm, we find that our method is able to improve modularity by an average of $166 \pm 77$ percent. Our work highlights the potential of interdisciplinary applications of methods from the statistical physics perspective on complex systems to software engineering.enAutomated software remodularization based on move refactoring - A complex systems approachText/Conference Paper1617-5468