Automated detection of refactorings in evolving components

Danny Dig, Can Comertoglu, Darko Marinov, Ralph Johnson

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

One of the costs of reusing software components is updating applications to use the new version of the components. Updating an application can be error-prone, tedious, and disruptive of the development process. Our previous study showed that more than 80% of the disruptive changes in five different components were caused by refactorings. If the refactorings that happened between two versions of a component could be automatically detected, a refactoring tool could replay them on applications. We present an algorithm that detects refactorings performed during component evolution. Our algorithm uses a combination of a fast syntactic analysis to detect refactoring candidates and a more expensive semantic analysis to refine the results. The experiments on components ranging from 17 KLOC to 352 KLOC show that our algorithm detects refactorings in real-world components with accuracy over 85%.

Original languageEnglish (US)
Title of host publicationECOOP 2006 - Object-Oriented Programming - 20th European Conference, Proceedings
PublisherSpringer
Pages404-428
Number of pages25
ISBN (Print)3540357262, 9783540357261
DOIs
StatePublished - 2006
Event20th European Conference on Object-Oriented Programming, ECOOP 2006 - Nantes, France
Duration: Jul 3 2006Jul 7 2006

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume4067 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other20th European Conference on Object-Oriented Programming, ECOOP 2006
Country/TerritoryFrance
CityNantes
Period7/3/067/7/06

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)

Fingerprint

Dive into the research topics of 'Automated detection of refactorings in evolving components'. Together they form a unique fingerprint.

Cite this