• DocumentCode
    5834
  • Title

    OBEY: Optimal Batched Refactoring Plan Execution for Class Responsibility Redistribution

  • Author

    Jiau, H.C. ; Lee Wei Mar ; Chen, J.C.

  • Author_Institution
    Dept. of Electr. Eng., Nat. Cheng Kung Univ., Tainan, Taiwan
  • Volume
    39
  • Issue
    9
  • fYear
    2013
  • fDate
    Sept. 2013
  • Firstpage
    1245
  • Lastpage
    1263
  • 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.
  • Keywords
    object-oriented programming; software maintenance; OBEY methodology; OO software evolution; class responsibility redistribution; coupling-increasing middle man bad smell; object-oriented software evolution; open-source software project; optimal batched refactoring plan execution; refactoring engine; software reengineering practice; Context; Couplings; Engines; Measurement; Optimization; Software systems; Reengineering; batched refactoring execution; change impact analysis; class responsibility redistribution; optimization;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2013.19
  • Filename
    6493333