Authors:
Anthony Savidis
1
;
2
and
Crystallia Savaki
1
Affiliations:
1
Department of Computer Science, University of Crete, Greece
;
2
Institute of Computer Science, FORTH, Heraklion, Crete, Greece
Keyword(s):
Reverse Engineering, Architecture Mining, Source Code Analysis, Architecture Visualization.
Abstract:
The software architecture represents an important asset, constituting a shared vision amongst the software engineers of the various system components. Good architectures link to modular design, with loose coupling and cohesion defining which operations are grouped together to form a modular architectural entity. Modularity is achieved by practice otherwise we may observe a mismatch where the source code diverges from the primary architectural vision. In fact, class groups with dense interdependencies denote the real architectural entities as derived and implied directly from source code. In this work, we created a tool to assist in mining the actual system architecture. We extract all sorts of dependencies by processing all source files, and then using graph clustering, we capture and interactively visualize strongly coupled class groups with configurable weights. We also support forced clustering on namespaces, packages and folders.