Discovery of Modularity in Monolithic Java Project Codes Using Complex Networks
Open Access
- 25 September 2025
- journal article
- Published by River Publishers in Journal of Web Engineering
- p. 911–942
Abstract
Monolithic architecture is a software design which brings significant difficulties to system developers when it comes to maintenance or expanding the scope of a project. On the other hand, a modular project consists of several similar entities, or modules, which are the object of similar functions or processes that, applied repeatedly, have well-defined classes and smaller modules to work, bringing benefits such as reduced project development time and increased productivity for the system developers. This work proposes the use of complex networks through the NetworkX library in Python, using modularity detection algorithms for the static analysis of Java code. The goal is to discover modules by analyzing dependencies between classes, indicating the best way to identify code clusters to be treated as modules automatically. The outcomes of applying the Greedy Modularity, Louvain, K-Clique, and Girvan Newman algorithms to two open-source projects will be presented. A comparative analysis of these results will be illustrated using generated graphs and a distribution map, emphasizing the number of communities identified by each algorithm.Keywords
This publication has 12 references indexed in Scilit:
- Microservice extraction using graph deep clustering based on dual view fusionInformation and Software Technology, 2023
- Success and Failure Factors that Impact on Project Implementation Using Agile Software Development Methodology2018
- Understand, reduce, respond: project complexity management theory and practiceInternational Journal of Operations & Production Management, 2017
- Community detection in networks: A user guidePhysics Reports, 2016
- The accuracy of dependency analysis in static architecture compliance checkingSoftware: Practice and Experience, 2016
- Community detection in networks: Structural communities versus ground truthPhysical Review E, 2014
- Community Detection via Maximization of Modularity and Its VariantsIEEE Transactions on Computational Social Systems, 2014
- Parallel $(k)$-Clique Community Detection on Large-Scale NetworksIEEE Transactions on Parallel and Distributed Systems, 2012
- Multi-granularity evolution analysis of software using complex network theoryJournal of Systems Science and Complexity, 2011
- Maps of random walks on complex networks reveal community structureProceedings of the National Academy of Sciences, 2008