Rekonstruksi Diagram Kelas UML Moodle Menggunakan Analisis Kode Statis

Penulis

  • Muktibaskara Kusbianto Fakultas Sains dan Teknologi, Universitas Islam Negeri Maulana Malik Ibrahim Malang
  • Muhammad Aditya Dermawan Fakultas Sains dan Teknologi, Universitas Islam Negeri Maulana Malik Ibrahim Malang
  • Muhammad Ainul Yaqin Fakultas Sains dan Teknologi, Universitas Islam Negeri Maulana Malik Ibrahim Malang

DOI:

https://doi.org/10.55382/jurnalpustakadata.v6i3.1914

Kata Kunci:

Reverse Engineering, Analisis Kode Statis, Abstract Syntax Tree, Diagram Kelas UML, Moodle

Abstrak

Architectural design documentation in large-scale software such as Moodle is often inconsistent with its actual implementation, triggering technical debt. Consequently, automated extraction efforts frequently fail due to visual pollution resulting in "Spaghetti Diagrams". To address this specific issue, this study aims to resolve the visual pollution problem through a Static Code Analysis (SCA) approach based on the Abstract Syntax Tree (AST). This approach automatically reconstructs class diagrams across 220 Moodle source code files within the Assign, Course, and User modules. The evaluation is measured based on the quantity of successfully extracted architectural elements (classes, attributes, methods, relations) and the readability of the visual design. Extraction results indicate that the algorithm successfully processed all code without execution errors, with the Course Module recording the highest complexity level. The implementation of filtering and blacklisting mechanisms to discard utility classes and ignore local-level dependency relations proved crucial and effective in eliminating architectural noise. In conclusion, the reconstructed UML class diagram visualization is proven to be representative and accurate, serving as an actual architectural blueprint to facilitate continuous system maintenance.

Unduhan

Data unduhan belum tersedia.

Referensi

Acharya, R. (2013). "Object Oriented Design Pattern Extraction From Java Source Code," Master's Thesis, Uppsala Universitet, Swedia.

Budhkar, S., and Gopal, A. (2012). "Component-Based Architecture Recovery from Object Oriented Systems using Existing Dependencies among Classes," International Journal of Computational Intelligence Techniques, vol. 3, no. 1.

Chikofsky, E. J., and Cross, J. H. (1990). "Reverse Engineering and Design Recovery: A Taxonomy," IEEE Software, vol. 7, no. 1, pp. 13–17.

Favre, L. (2010). *Model Driven Architecture for Reverse Engineering Technologies: Strategic Directions and System Evolution*. Hershey, PA, USA: Engineering Science Reference (IGI Global).

Jindal, V., Jain, A., and Tayal, D. K. (2008). "On reverse engineering an object-oriented code into UML class diagrams incorporating extensible mechanisms," *ACM SIGSOFT Software Engineering Notes*, vol. 33, no. 5.

Kaliappan, V., and Ali, N. M. (2018). "Improving Consistency of UML Diagrams and Its Implementation Using Reverse Engineering Approach," *Bulletin of Electrical Engineering and Informatics (BEEI)*, vol. 7, no. 4.

Khalid, S., and Ibrahim, R. (2016). "Generating UML class diagram from source codes using multi-threading technique," *ARPN Journal of Engineering and Applied Sciences*, vol. 11, no. 12.

Mohamed, K. A., and Kamel, A. (2018). "Reverse Engineering State and Strategy Design Patterns using Static Code Analysis," *The Science and Information (SAI) Organization*, vol. 9, no. 1.

Rajput, A. (2014). "Reverse Engineering: Java code to uml diagram showing dependencies," Bachelor of Technology Project, Jaypee University of Information Technology, India.

Rasool, G., and Asif, N. (2007). "Software Architecture Recovery," *World Academy of Science, Engineering and Technology*, vol. 34.

Richner, T., and Ducasse, S. (1999). "Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information," *Proceedings of the International Conference on Software Maintenance (ICSM'99)*, IEEE.

Schneider, S., Bakhtin, A., Li, X., Soldani, J., Brogi, A., Cerny, T., Scandariato, R., and Taibi, D. (2024). "Comparison of Static Analysis Architecture Recovery Tools for Microservice Applications," *Proceedings of Mining Software Repositories (MSR'24)*, ACM.

Sharma, N., and Chandel, G. S. (2012). "Generates UML Diagrams From Java Code Through Reverse Engineering," *International Journal of Engineering and Computer Science (IJECCE)*, vol. 3, no. 3.

Sutton, A., and Maletic, J. I. (2005). "Mappings for Accurately Reverse Engineering UML Class Models from C++," *Proceedings of the 12th Working Conference on Reverse Engineering (WCRE'05)*, IEEE.

Talerico, D. (2003). "Grouping in Object-Oriented Reverse Engineering," Master's Thesis, Universität Bern, Swiss.

Tonella, P., and Potrich, A. (2002). "Static and Dynamic C++ Code Analysis for the Recovery of the Object Diagram," *Proceedings of the International Conference on Software Maintenance*, IEEE.

Zhang, H. (2016). "An Approach for Extracting UML Diagram from Object-Oriented Program Based on J2X," *International Forum on Mechanical, Control and Automation (IFMCA)*, Atlantis Press.

A. D. Permatasari, N. Rahmatina, and M. A. Yaqin, "Evaluasi Teknik Elisitasi pada Software Requirement dalam Menentukan Efektivitas Kebutuhan Perangkat Lunak," *Jurnal Pustaka Data (Pusat Akses Kajian Database, Analisa Teknologi, dan Arsitektur Komputer)*, 2025.

##submission.downloads##

Diterbitkan

2026-06-01

Cara Mengutip

Kusbianto, M., Muhammad Aditya Dermawan, & Ainul Yaqin, M. . (2026). Rekonstruksi Diagram Kelas UML Moodle Menggunakan Analisis Kode Statis. Jurnal Pustaka Data (Pusat Akses Kajian Database, Analisa Teknologi, Dan Arsitektur Komputer), 6(3), 219–224. https://doi.org/10.55382/jurnalpustakadata.v6i3.1914