OBEY

Optimal batched refactoring plan execution for class responsibility redistribution

Hewijin-Christine Jiau, Lee Wei Mar, Jinghong Cox Chen

Research output: Contribution to journalArticle

4 Citations (Scopus)

Abstract

The redistribution of class responsibilities is a common reengineering practice in object-oriented (OO) software evolution. During the redistribution, developers frequently construct batched refactoring plans for moving multiple methods and fields among various classes. With an objective of carefully maintaining the cohesion and coupling degree of the class design, executing a batched refactoring plan without introducing any objective-violating side effect into the refactored code is essential. However, using most refactoring engines for batched refactoring plan execution introduces coupling-increasing Middle Man bad smell in the final refactored code and therefore makes the refactoring execution suboptimal in achieving the redistribution objective. This work proposes Obey, a methodology for optimal batched refactoring plan execution. Obey analyzes a batched refactoring plan, identifies Middle Man symptoms that cause suboptimal execution, and renovates the plan for optimal execution. We have conducted an empirical study on three open-source software projects to confirm the effectiveness of Obey in a practical context.

Original languageEnglish
Article number6493333
Pages (from-to)1245-1263
Number of pages19
JournalIEEE Transactions on Software Engineering
Volume39
Issue number9
DOIs
Publication statusPublished - 2013 Sep 9

Fingerprint

Reengineering
Engines
Open source software

All Science Journal Classification (ASJC) codes

  • Software

Cite this

@article{b59cefeb5ea24597ae362c91bb02a143,
title = "OBEY: Optimal batched refactoring plan execution for class responsibility redistribution",
abstract = "The redistribution of class responsibilities is a common reengineering practice in object-oriented (OO) software evolution. During the redistribution, developers frequently construct batched refactoring plans for moving multiple methods and fields among various classes. With an objective of carefully maintaining the cohesion and coupling degree of the class design, executing a batched refactoring plan without introducing any objective-violating side effect into the refactored code is essential. However, using most refactoring engines for batched refactoring plan execution introduces coupling-increasing Middle Man bad smell in the final refactored code and therefore makes the refactoring execution suboptimal in achieving the redistribution objective. This work proposes Obey, a methodology for optimal batched refactoring plan execution. Obey analyzes a batched refactoring plan, identifies Middle Man symptoms that cause suboptimal execution, and renovates the plan for optimal execution. We have conducted an empirical study on three open-source software projects to confirm the effectiveness of Obey in a practical context.",
author = "Hewijin-Christine Jiau and Mar, {Lee Wei} and Chen, {Jinghong Cox}",
year = "2013",
month = "9",
day = "9",
doi = "10.1109/TSE.2013.19",
language = "English",
volume = "39",
pages = "1245--1263",
journal = "IEEE Transactions on Software Engineering",
issn = "0098-5589",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
number = "9",

}

OBEY : Optimal batched refactoring plan execution for class responsibility redistribution. / Jiau, Hewijin-Christine; Mar, Lee Wei; Chen, Jinghong Cox.

In: IEEE Transactions on Software Engineering, Vol. 39, No. 9, 6493333, 09.09.2013, p. 1245-1263.

Research output: Contribution to journalArticle

TY - JOUR

T1 - OBEY

T2 - Optimal batched refactoring plan execution for class responsibility redistribution

AU - Jiau, Hewijin-Christine

AU - Mar, Lee Wei

AU - Chen, Jinghong Cox

PY - 2013/9/9

Y1 - 2013/9/9

N2 - The redistribution of class responsibilities is a common reengineering practice in object-oriented (OO) software evolution. During the redistribution, developers frequently construct batched refactoring plans for moving multiple methods and fields among various classes. With an objective of carefully maintaining the cohesion and coupling degree of the class design, executing a batched refactoring plan without introducing any objective-violating side effect into the refactored code is essential. However, using most refactoring engines for batched refactoring plan execution introduces coupling-increasing Middle Man bad smell in the final refactored code and therefore makes the refactoring execution suboptimal in achieving the redistribution objective. This work proposes Obey, a methodology for optimal batched refactoring plan execution. Obey analyzes a batched refactoring plan, identifies Middle Man symptoms that cause suboptimal execution, and renovates the plan for optimal execution. We have conducted an empirical study on three open-source software projects to confirm the effectiveness of Obey in a practical context.

AB - The redistribution of class responsibilities is a common reengineering practice in object-oriented (OO) software evolution. During the redistribution, developers frequently construct batched refactoring plans for moving multiple methods and fields among various classes. With an objective of carefully maintaining the cohesion and coupling degree of the class design, executing a batched refactoring plan without introducing any objective-violating side effect into the refactored code is essential. However, using most refactoring engines for batched refactoring plan execution introduces coupling-increasing Middle Man bad smell in the final refactored code and therefore makes the refactoring execution suboptimal in achieving the redistribution objective. This work proposes Obey, a methodology for optimal batched refactoring plan execution. Obey analyzes a batched refactoring plan, identifies Middle Man symptoms that cause suboptimal execution, and renovates the plan for optimal execution. We have conducted an empirical study on three open-source software projects to confirm the effectiveness of Obey in a practical context.

UR - http://www.scopus.com/inward/record.url?scp=84883419213&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84883419213&partnerID=8YFLogxK

U2 - 10.1109/TSE.2013.19

DO - 10.1109/TSE.2013.19

M3 - Article

VL - 39

SP - 1245

EP - 1263

JO - IEEE Transactions on Software Engineering

JF - IEEE Transactions on Software Engineering

SN - 0098-5589

IS - 9

M1 - 6493333

ER -