Extract method candidate generation
The problem Currently, CodART uses JDeodorant to generate extract method candidates. The Python implementation of JDeodorant slicing algorithms is required for CodART.
Describe the solution you'd like JDeodorant slicing algorithm [1] can be implemented using the ANTRL listeners. The following article should be extracted from source code during static analysis:
- Control flow graph (CFG)
- Call graph
- Program dependence graph (PDG)
- Control dependency graph
- Data dependency graph
- Backward slicing
- Block-based slicing
Describe alternatives you've considered Other extract method candidate generation algorithms can be used [2, 3].
Prerequisite Issue #114: Removing dependency to Understand
References [1] N. Tsantalis and A. Chatzigeorgiou, “Identification of extract method refactoring opportunities for the decomposition of methods,” J. Syst. Softw., vol. 84, no. 10, pp. 1757–1782, Oct. 2011, doi: 10.1016/j.jss.2011.05.016. [2] S. Charalampidou, A. Ampatzoglou, A. Chatzigeorgiou, A. Gkortzis, and P. Avgeriou, “Identifying extract method refactoring opportunities based on functional relevance,” IEEE Trans. Softw. Eng., vol. 43, no. 10, pp. 954–974, Oct. 2017, doi: 10.1109/TSE.2016.2645572. [3] J. Hubert, “Implementation of an automatic extract method refactoring,” University of Stuttgart, 2019.