A Lightweight Remodularization Process Based on Structural Similarity - Terra, Ricardo; Valente, Marco Tulio; Anquetil, Nicolas (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), 2016)
Erosion process, when neglected over long periods, may reduce the concrete architecture to a small set of strongly-coupled and weakly-cohesive components. This nullifies the benefits provided by an architectural design, such as maintainability, scalability, portability, etc. In this scenario, the solution might be only achieved through a complete remodularization process. However, most remodularization approaches are heavyweight and lack tool support. This paper, therefore, proposes a lightweight and tool supported remodularization process based on structural similarity. The process is centered on the observation that the remodularization of a software system can be achieved by successive applications of Move Class, Move Method, and Extract Method refactorings. We evaluate the process in a modified version of an open-source software achieving a recall of 100% and a precision of 50%. The design decisions of the proposed process-such as the use of structural similarity, non-implementation of preconditions, and identification of the target entity on demand-were also evaluated obtaining outcome results.