Finding needles in a haystack: Leveraging co-change dependencies to recommend refactorings
Journal of Systems and Software, ISSN: 0164-1212, Vol: 158, Page: 110420
2019
- 11Citations
- 226Usage
- 59Captures
Metric Options: Counts1 Year3 YearSelecting the 1-year or 3-year option will change the metrics count to percentiles, illustrating how an article or review compares to other articles or reviews within the selected time period in the same journal. Selecting the 1-year option compares the metrics against other articles/reviews that were also published in the same calendar year. Selecting the 3-year option compares the metrics against other articles/reviews that were also published in the same calendar year plus the two years prior.
Example: if you select the 1-year option for an article published in 2019 and a metric category shows 90%, that means that the article or review is performing better than 90% of the other articles/reviews published in that journal in 2019. If you select the 3-year option for the same article published in 2019 and the metric category shows 90%, that means that the article or review is performing better than 90% of the other articles/reviews published in that journal in 2019, 2018 and 2017.
Citation Benchmarking is provided by Scopus and SciVal and is different from the metrics context provided by PlumX Metrics.
Example: if you select the 1-year option for an article published in 2019 and a metric category shows 90%, that means that the article or review is performing better than 90% of the other articles/reviews published in that journal in 2019. If you select the 3-year option for the same article published in 2019 and the metric category shows 90%, that means that the article or review is performing better than 90% of the other articles/reviews published in that journal in 2019, 2018 and 2017.
Citation Benchmarking is provided by Scopus and SciVal and is different from the metrics context provided by PlumX Metrics.
Metrics Details
- Citations11
- Citation Indexes11
- 11
- Usage226
- Downloads205
- Abstract Views21
- Captures59
- Readers59
- 59
Article Description
A fine-grained co-change dependency arises when two fine-grained source-code entities, e.g., a method, change frequently together. This kind of dependency is relevant when considering remodularization efforts (e.g., to keep methods that change together in the same class). However, existing approaches for recommending refactorings that change software decomposition (such as a move method) do not explore the use of fine-grained co-change dependencies. In this paper we present a novel approach for recommending move method and move field refactorings, which removes co-change dependencies and evolutionary smells, a particular type of dependency that arise when fine-grained entities that belong to different classes frequently change together. First we evaluate our approach using 49 open-source Java projects, finding 610 evolutionary smells. Our approach automatically computes 56 refactoring recommendations that remove these evolutionary smells, without introducing new static dependencies. We also evaluate our approach by submitting pull-requests with the recommendations of our technique, in the context of one large and two medium size proprietary Java systems. Quantitative results show that our approach outperforms existing approaches for recommending refactorings when dealing with co-change dependencies. Qualitative results show that our approach is promising, not only for recommending refactorings but also to reveal opportunities of design improvements.
Bibliographic Details
http://www.sciencedirect.com/science/article/pii/S0164121219301943; http://dx.doi.org/10.1016/j.jss.2019.110420; http://www.scopus.com/inward/record.url?partnerID=HzOxMe3b&scp=85072512740&origin=inward; https://linkinghub.elsevier.com/retrieve/pii/S0164121219301943; https://api.elsevier.com/content/article/PII:S0164121219301943?httpAccept=text/xml; https://api.elsevier.com/content/article/PII:S0164121219301943?httpAccept=text/plain; https://dul.usage.elsevier.com/doi/; https://ink.library.smu.edu.sg/sis_research/4470; https://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=5473&context=sis_research; https://dx.doi.org/10.1016/j.jss.2019.110420
Elsevier BV
Provide Feedback
Have ideas for a new metric? Would you like to see something else here?Let us know