Conference paper Open Access

Software Architecture Reconstruction via a Genetic Algorithm: Applying the Move Class Refactoring

Maikantis, Theodoros; Tsintzira, Angeliki-Agathi; Ampatzoglou, Apostolos; Arvanitou, Elvira-Maria; Chatzigeorgiou, Alexander; Bibi, Stamatia; Stamelos, Ioannis; Deligiannis, Ignatios

Modularity is one of the four key principles of software design and architecture. According to this principle, software should be organized into modules that are tightly linked internally (high cohesion), whereas at the same time as independent from other modules as possible (low coupling). However, in practice, this principle is violated due to poor architecting design decisions, lack of time, or coding shortcuts, leading to a phenomenon termed as architectural technical debt (ATD). To alleviate this problem (lack of architectural modularity), the most common solution is the application of a software refactoring, namely Move Class—i.e., moving classes (the core artifact in object-oriented systems) from one module to another. To identify Move Class refactoring opportunities, we employ a search-based optimization process, relying on optimization metrics, through which optimal moves are derived. Given the extensive search space required for applying a brute-force search strategy, in this paper, we propose the use of a genetic algorithm that re-arranges existing software classes into existing or new modules (software packages in Java, or folders in C++). To validate the usefulness of the proposed refactorings, we performed an industrial case study on three projects (from the Aviation, Healthcare, and Manufacturing application domains). The results of the study indicate that the proposed architecture reconstruction is able to improve modularity, improving both coupling and cohesion. The obtained results can be useful to practitioners through an open source tool; whereas at the same point, they open interesting future work directions. 

Files (525.8 kB)
Name Size
PCI2020-29.pdf
md5:09137e3dbaab546d91e5f8cefd597161
525.8 kB Download
6
5
views
downloads
Views 6
Downloads 5
Data volume 2.6 MB
Unique views 6
Unique downloads 5

Share

Cite as