Descoberta de modularidade em códigos de projetos monolíticos em Java utilizando redes complexas

  • Marcos C. Brito Jr UPM
  • Leando A. Silva UPM

Resumo


Projetos monolíticos podem trazer aos desenvolvedores de sistemas grandes dificuldades quando necessário a manutenção ou ampliação de escopo de um projeto. Modularizar projetos para ter classes mais definidas e módulos menores para trabalhar podem trazer benefícios como o tempo de desenvolvimento do projeto e produtividade para a equipe. Este trabalho propõe o uso de redes complexas utilizando a biblioteca NetworkX em Python utilizando o algoritmo de modularidade gulosa, para a análise estática de um código escrito em Java com a finalidade de descobrir módulos a partir de análise de dependências entre classes, indicando a melhor forma de encontrar os agrupamentos a serem tomados como módulo de código.

Referências

Gos, K. and Zabierowski, W. (2020). The comparison of microservice and monolithic architecture. In 2020 IEEE XVIth International Conference on the Perspective Technologies and Methods in MEMS Design (MEMSTECH), pages 150–153. IEEE.

Mazlami, G., Cito, J., and Leitner, P. (2017). Extraction of microservices from monolithic software architectures. In 2017 IEEE International Conference on Web Services (ICWS), pages 524–531. IEEE.

Newman, M. E. J. (2003). The structure and function of complex networks. SIAM Review, 45(2):167–256.

Pan, W., Li, B., Ma, Y., and Liu, J. (2011). Multi-granularity evolution analysis of software using complex network theory. Journal of Systems Science and Complexity, 24(6):1068–1082.

Ponce, F., Márquez, G., and Astudillo, H. (2019). Migrating from monolithic architecture to microservices: A rapid review. In 2019 38th International Conference of the Chilean Computer Science Society (SCCC), pages 1–7.

Šubelj, L. and Bajec, M. (2012). Software systems through complex networks science: Review, analysis and applications. In Proceedings of the First International Workshop on Software Mining, pages 9–16.

Van Steen, M. (2010). Graph theory and complex networks. An introduction, 144.

Zhang, X., Ma, Z., Zhang, Z., Sun, Q., and Yan, J. (2018). A review of community detection algorithms based on modularity optimization. In Journal of Physics: Conference Series, volume 1069, page 012123. IOP Publishing.
Publicado
06/08/2023
BRITO JR, Marcos C.; SILVA, Leando A.. Descoberta de modularidade em códigos de projetos monolíticos em Java utilizando redes complexas. In: BRAZILIAN WORKSHOP ON SOCIAL NETWORK ANALYSIS AND MINING (BRASNAM), 12. , 2023, João Pessoa/PB. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 198-203. ISSN 2595-6094. DOI: https://doi.org/10.5753/brasnam.2023.229554.