I. Introduction
With increasing complexity of modern software, there is an increased demand for automated tools to support the maintainability and scalability of those systems (Dahiya et al. [1]). Fundamental contributions to this subject include, for instance, the introduction of the automated Software Module Clustering (SMC) tool by Mitchell and Mancoridis [2]. This appliance began with the purpose to offer techniques to reveal the structure of a software system by grouping its modules into clusters. They based their algorithm on the principle of “low coupling and high cohesion The input of the algorithm is a set of modules and dependencies between them. Typically, these modules correspond to files (or classes, in object-oriented programming languages), and the dependencies correspond to function/method calls or variables/fields access. While this kind of modules and dependencies are common, other representations are useful too, such as methods/fields as modules and co-change dependencies [3].