kirancodes.me
To Proof Maintenance & Beyond!

DRACO: discovering refactorings that improve architecture using fine-grained co-change dependencies

Marcos César de Oliveira

Abstract

Co-change dependencies arise whenever two source code entities, such as classes, methods, or fields, change frequently together. Similar to other kinds of software dependencies, it is possible to build software clusters from co-change relationships and, as such, previous studies explored the use of this kind of dependency in several software engineering tasks, such as predicting software faults, recommending related source code changes, and assessing software modularity. In this ongoing work, our goal is to provide tools to discover refactoring opportunities-such as move method, move field, split class, or merge classes-that are revealed when comparing the co-change clusters of fine-grained source code entities (methods, fields, constructors) to the original class decomposition; specifically when a source code entity is in the same class but in different clusters (or vice-versa). Our approach, named Draco, aims to produce minimal refactoring sequences that improve architecture decomposition.

BibTeX
@inproceedings{deOliveira:FSE17,
  author    = {Marcos C{\'{e}}sar de Oliveira},
  title     = {{DRACO:} discovering refactorings that improve architecture using fine-grained co-change dependencies},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {1018--1021},
  publisher = {{ACM}},
  year      = {2017},
}

Related papers