On the Alternatives for Composing Batch Refactoring

被引:11
|
作者
Fernandes, Eduardo [1 ]
Uchoa, Anderson [1 ]
Bibiano, Ana Carla [1 ]
Garcia, Alessandro [1 ]
机构
[1] Pontifical Catholic Univ Rio de Janeiro PUC Rio, OPUS Res Grp, Informat Dept DI, Rio De Janeiro, Brazil
关键词
batch refactoring; code smell; code review;
D O I
10.1109/IWoR.2019.00009
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code refactoring is often performed for improving code structures through code transformations. Many transformations, e.g., extracting or moving a method, are applied for at least partially removing code smells. Each code smell is a symptom of a poor code structure that makes hard to read and change the program. Developers often compose two or more interrelated transformations in conjunction (batch refactoring) rather than applying a single transformation. For instance, developers often compose method extractions with method motions to better organize the features realized by classes. We have recently observed cases of batch refactoring performed along with code review in open source projects. We then noticed that composing batches capable of fully removing code smells is quite challenging. Especially, it requires carefully discussing on how two or more transformations complement one another and what to expect from the batch effect on code smell. This position aims to reason about multiple alternatives to support developers on composing their batches. These alternatives should make it easier to compose batches that remove code smells. For this purpose, we exemplify the role of semi-automated tools in gradually recommending transformations, thereby guiding the batch composition in each alternative.
引用
收藏
页码:9 / 12
页数:4
相关论文
共 50 条
  • [41] Radical refactoring
    Belyaev, E
    Shafirov, M
    Oreshnikova, A
    [J]. DR DOBBS JOURNAL, 2004, 29 (01): : 26 - +
  • [42] Refactoring the Organization
    Power, Ken
    [J]. LEAN ENTERPRISE SOFTWARE AND SYSTEMS, 2010, 65 : 48 - 51
  • [43] Refactoring with contracts
    Goldstein, Maayan
    Feldman, Yishai A.
    Tyszberowicz, Shmuel
    [J]. AGILE 2006, PROCEEDINGS, 2006, : 53 - +
  • [44] Optimal Refactoring
    Siverland, Susanne
    Wernersson, Roger C. S.
    Sennersten, Charlotte
    [J]. AGILE PROCESSES, IN SOFTWARE ENGINEERING, AND EXTREME PROGRAMMING, XP 2015, 2015, 212 : 224 - 229
  • [45] Refactoring for Reentrancy
    Wloka, Jan
    Sridharan, Manu
    Tip, Frank
    [J]. 7TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2009, : 173 - 182
  • [46] Refactoring to patterns
    Kerievsky, J
    [J]. EXTREME PROGRAMMING AND AGILE METHODS - XP/ AGILE UNIVERSE 2004, PROCEEDINGS, 2004, 3134 : 232 - 232
  • [47] Refactoring with Synthesis
    Raychev, Veselin
    Schaefer, Max
    Sridharan, Manu
    Vechev, Martin
    [J]. ACM SIGPLAN NOTICES, 2013, 48 (10) : 339 - 354
  • [48] Refactoring of Statecharts
    Abadi, Moria
    Feldman, Yishai A.
    [J]. NEXT GENERATION INFORMATION TECHNOLOGIES AND SYSTEMS, 2009, 5831 : 50 - +
  • [49] TEACHING AND PRACTICE - COMPOSING TEXTS, COMPOSING LIVES
    PERL, S
    [J]. HARVARD EDUCATIONAL REVIEW, 1994, 64 (04) : 427 - 449
  • [50] Barriers to Refactoring
    Tempero, Ewan
    Gorschek, Tony
    Angelis, Lefteris
    [J]. COMMUNICATIONS OF THE ACM, 2017, 60 (10) : 54 - 61