skip to main content
10.1145/2464576.2464680acmconferencesArticle/Chapter ViewAbstractPublication PagesgeccoConference Proceedingsconference-collections
abstract

Search-based refactoring detection

Published: 06 July 2013 Publication History

Abstract

We propose an approach to automate the detection of source code refactoring using structural information. Our approach takes as input a list of possible refactorings, a set of structural metrics and the initial and revised versions of the source code. It generates as output a sequence of detected changes in terms of refactorings. In this case, a solution is defined as the sequence of refactoring operations that minimizes the metrics variation between the revised version of the software and the version yielded by the application of the refactoring sequence to the initial version of the software. We use and adapt global and local heuristic search algorithms to explore the space of possible solutions.

References

[1]
T. Ekman, U. Asklund, Refactoring-aware Versioning in Eclipse, Electronic Notes in Theoretical Computer Science 107 (2004) 57--69.
[2]
R. Robbes, Mining a Change-Based Software Repository, in: Proceedings of the Workshop on Mining Software Repositories (MSR'07), IEEE Computer Society, 2007, pp. 15--23.
[3]
M. Koegel, M. Herrmannsdoerfer, Y. Li, J. Helming, D. Joern, Comparing State- and Operation-based Change Tracking on Models, in: Proceedings of the IEEE International EDOC Conference, 2010.
[4]
D. Dig, C. Comertoglu, D. Marinov, R. Johnson, Automated Detection of Refactorings in Evolving Components, in: ECOOP'06, Vol.4067 of LNCS, Springer, 2006, pp. 404--428.
[5]
P. Weissgerber, S. Diehl, Identifying Refactorings from Source-Code Changes, in: Proceedings of ASE'06, IEEE, 2006, pp. 231--240.
[6]
Identifying and Summarizing Systematic Code Changes via Rule Inference, Miryung Kim, David Notkin, Dan Grossman, Gary Wilson Jr. TSE: IEEE Transactions on Software Engineering.
[7]
Kyle Prete, Napol Rachatasumrit, Nikita Sudan, Miryung Kim: Template-based reconstruction of complex refactorings. ICSM 2010: 1--10
[8]
S. Demeyer, S. Ducasse, O. Nierstrasz, Finding Refactorings via Change Metrics, in: Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA'00), ACM, 2000, pp. 166--177.
[9]
Z. Xing, E. Stroulia, Refactoring Detection based on UMLDiff Change-Facts Queries, in: Proceedings of the 13th Working Conference on Reverse Engineering (WCRE'06), IEEE, 2006, pp. 263--274.
[10]
S. Vermolen, G. Wachsmuth, E. Visser, Reconstructing complex metamodel evolution, Tech. Rep. TUD-SERG-2011-026, Delft University of Technology (2011).
[11]
J. M. Küster, C. Gerth, A. Förster, G. Engels, Detecting and Resolving ProcessModeling Differences in the Absence of a Change Log, in: Proceedings of the International Conference on Business Process Management (BPM'08), LNCS, Springer, 2008, pp. 244--260.
[12]
Timo Kehrer, Udo Kelter, Gabriele Taentzer: A rule-based approach to the semantic lifting of model differences in the context of model versioning. ASE 2011: 163--172, (2011).
[13]
M. Hartung, A. Gross, E. Rahm, Rule-based Generation of Diff Evolution Mappings between Ontology Versions, Computing Research Repository 1010.0122, (2010).
[14]
M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts: Refactoring -- Improving the Design of Existing Code, 1st ed. Addison-Wesley, June 1999.
[15]
N. Moha, Y.-G. Guéhéneuc, L. Duchien, and A.-F. L. Meur: DECOR: A method for the specification and detection of code and design smells, Transactions on Software Engineering (TSE), 2009, 16 pages.

Cited By

View all
  • (2023)Composite refactoring: Representations, characteristics and effects on software projectsInformation and Software Technology10.1016/j.infsof.2022.107134156(107134)Online publication date: Apr-2023
  • (2022)Use of software and project management metrics in agile software development methodologiesProceedings of the 2022 European Symposium on Software Engineering10.1145/3571697.3571701(25-32)Online publication date: 27-Oct-2022
  • (2020)Ammonia: an approach for deriving project-specific bug patternsEmpirical Software Engineering10.1007/s10664-020-09807-wOnline publication date: 7-Mar-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GECCO '13 Companion: Proceedings of the 15th annual conference companion on Genetic and evolutionary computation
July 2013
1798 pages
ISBN:9781450319645
DOI:10.1145/2464576
  • Editor:
  • Christian Blum,
  • General Chair:
  • Enrique Alba
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 July 2013

Check for updates

Author Tags

  1. heuristic search
  2. refactoring
  3. search-based software egineering
  4. software metrics
  5. software quality

Qualifiers

  • Abstract

Conference

GECCO '13
Sponsor:
GECCO '13: Genetic and Evolutionary Computation Conference
July 6 - 10, 2013
Amsterdam, The Netherlands

Acceptance Rates

Overall Acceptance Rate 1,669 of 4,410 submissions, 38%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Composite refactoring: Representations, characteristics and effects on software projectsInformation and Software Technology10.1016/j.infsof.2022.107134156(107134)Online publication date: Apr-2023
  • (2022)Use of software and project management metrics in agile software development methodologiesProceedings of the 2022 European Symposium on Software Engineering10.1145/3571697.3571701(25-32)Online publication date: 27-Oct-2022
  • (2020)Ammonia: an approach for deriving project-specific bug patternsEmpirical Software Engineering10.1007/s10664-020-09807-wOnline publication date: 7-Mar-2020
  • (2019)Automatic software refactoring: a systematic literature reviewSoftware Quality Journal10.1007/s11219-019-09477-yOnline publication date: 3-Dec-2019
  • (2018)Sequence diagram refactoring using single and hybridized algorithmsPLOS ONE10.1371/journal.pone.020262913:8(e0202629)Online publication date: 22-Aug-2018
  • (2018)Indicators for merge conflicts in the wildAutomated Software Engineering10.1007/s10515-017-0227-025:2(279-313)Online publication date: 1-Jun-2018
  • (2017)Refactoring-aware code review2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VLHCC.2017.8103453(71-79)Online publication date: Oct-2017
  • (2017)A survey on search-based model-driven engineeringAutomated Software Engineering10.1007/s10515-017-0215-424:2(233-294)Online publication date: 1-Jun-2017
  • (2016)Graph-based approach for detecting impure refactoring from version commitsProceedings of the 1st International Workshop on Software Refactoring10.1145/2975945.2975949(13-16)Online publication date: 4-Sep-2016
  • (undefined)Composite Refactoring: Representations, Characteristics and Effects on Software ProjectsSSRN Electronic Journal10.2139/ssrn.4119519

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media