Konferenzbeitrag
Automated software remodularization based on move refactoring - A complex systems approach
Lade...
Volltext URI
Dokumententyp
Text/Conference Paper
Dateien
Zusatzinformation
Datum
2015
Zeitschriftentitel
ISSN der Zeitschrift
Bandtitel
Verlag
Gesellschaft für Informatik e.V.
Zusammenfassung
Modular 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.