Exploring Variational Graph Auto-Encoders for Extract Class Refactoring Recommendation
Not on the map. Why?
Abstract (arXiv)
The code smell is a sign of design and development flaws in a software system that reduces the reusability and maintainability of the system. Refactoring is done as an ongoing practice to remove the code smell from the program code. Among different code smells, the God class or Blob is one of the most common code smells. A god class contains too many responsibilities, violating object-oriented programming design's low coupling and high cohesiveness principles. This paper proposes an automatic approach to extracting a God class into multiple smaller classes with more specific responsibilities. To do this, we first construct a graph of methods (as nodes) for the concerning god class. The edge between any two methods is determined by their structural similarity, and the feature for each method is initialized using different semantic representation methods. Then, the variational graph auto-encoder is used to learn a vector representation for each method. Finally, the learned vectors are used to cluster methods into different groups to be recommended as refactored classes. We assessed the proposed framework using three different class cohesion metrics on sixteen actual God Classes collected from two well-known open-source systems. We also conducted a comparative study of our approach with a similar existing approach and found that the proposed approach generated better results for almost all the God Classes used in the experiment.
Key facts. No citing papers in the map yet (data through 14 Oct 2026). Builds on 4 of its 21 references that are in the map. First posted on arXiv 16 Mar 2022.
Builds on
4 of 21 references.
References · 4
- 2019Sentence-BERT: Sentence Embeddings using Siamese BERT-Networkscited by 9,170
- 2013Auto-Encoding Variational Bayescited by 4,053
- 2016Variational Graph Auto-Encoderscited by 1,382
- 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,310
Built on by
Not cited yet.