Refactoring for reuse: an empirical study

被引:0
|
作者
Eman Abdullah Alomar
Tianjia Wang
Vaibhavi Raut
Mohamed Wiem Mkaouer
Christian Newman
Ali Ouni
机构
[1] Stevens Institute of Technology,
[2] Rochester Institute of Technology,undefined
[3] ETS Montreal,undefined
[4] University of Quebec,undefined
关键词
Refactoring; Reusability; Software metrics; Quality;
D O I
暂无
中图分类号
学科分类号
摘要
Refactoring is the de-facto practice to optimize software health. While several studies propose refactoring strategies to optimize software design through applying design patterns and removing design defects, little is known about how developers actually refactor their code to improve its reuse. Therefore, we extract, from 1,828 open source projects, a set of refactorings that were intended to improve the software reusability. We analyze the impact of reusability refactorings on the state-of-the-art reusability metrics, and we compare the distribution of reusability refactoring types, with the distribution of the remaining mainstream refactorings. Overall, we found that the distribution of refactoring types, applied in the context of reusability, is different from the distribution of refactoring types in mainstream development. In the refactorings performed to improve reusability, source files are subject to more design level types of refactorings. Reusability refactorings significantly impact, high-level code elements, such as packages, classes, and methods, while typical refactorings, impact all code elements, including identifiers, and parameters. These findings provide practical insights into the current practice of refactoring in the context of code reuse involving the act of refactoring.
引用
收藏
页码:105 / 135
页数:30
相关论文
共 50 条
  • [1] Refactoring for reuse: an empirical study
    Alomar, Eman Abdullah
    Wang, Tianjia
    Raut, Vaibhavi
    Mkaouer, Mohamed Wiem
    Newman, Christian
    Ouni, Ali
    [J]. INNOVATIONS IN SYSTEMS AND SOFTWARE ENGINEERING, 2022, 18 (01) : 105 - 135
  • [2] Perspectives on refactoring planning and practice: an empirical study
    Chen, Jie
    Xiao, Junchao
    Wang, Qing
    Osterweil, Leon J.
    Li, Mingshu
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2016, 21 (03) : 1397 - 1436
  • [3] Search-based refactoring: an empirical study
    O'Keeffe, Mark
    Cinneide, Mel O.
    [J]. JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2008, 20 (05): : 345 - 364
  • [4] Perspectives on refactoring planning and practice: an empirical study
    Jie Chen
    Junchao Xiao
    Qing Wang
    Leon J. Osterweil
    Mingshu Li
    [J]. Empirical Software Engineering, 2016, 21 : 1397 - 1436
  • [5] A case study in refactoring a legacy component for reuse in a product line
    Kolb, R
    Muthig, D
    Patzke, T
    Yamauchi, K
    [J]. ICSM 2005: PROCEEDINGS OF THE 21ST IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2005, : 369 - 378
  • [6] On the reuse and recommendation of model refactoring specifications
    Reimann, Jan
    Seifert, Mirko
    Assmann, Uwe
    [J]. SOFTWARE AND SYSTEMS MODELING, 2013, 12 (03): : 579 - 596
  • [7] On the reuse and recommendation of model refactoring specifications
    Jan Reimann
    Mirko Seifert
    Uwe Aßmann
    [J]. Software & Systems Modeling, 2013, 12 : 579 - 596
  • [8] Refactoring a legacy component for reuse in a software product line: a case study
    Kolb, R
    Muthig, D
    Patzke, T
    Yamauchi, K
    [J]. JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2006, 18 (02): : 109 - 132
  • [9] An Empirical Study to Assess the Effects of Refactoring on Software Maintainability
    Malhotra, Ruchika
    Chug, Anuradha
    [J]. 2016 INTERNATIONAL CONFERENCE ON ADVANCES IN COMPUTING, COMMUNICATIONS AND INFORMATICS (ICACCI), 2016, : 110 - 117
  • [10] Supporting refactoring of BDD specifications-An empirical study
    Irshad, Mohsin
    Borstler, Jurgen
    Petersen, Kai
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2022, 141