Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract method candidate generation #115

Open
m-zakeri opened this issue Sep 11, 2021 · 0 comments
Open

Extract method candidate generation #115

m-zakeri opened this issue Sep 11, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@m-zakeri
Copy link
Owner

m-zakeri commented Sep 11, 2021

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.

@m-zakeri m-zakeri added the enhancement New feature or request label Sep 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant