Understanding the complexity of refactoring in software systems: a tool-based approach

被引:4
作者
Advani, Deepak
Hassoun, Youssef
Counsell, Steve [1 ]
机构
[1] Brunel Univ, Sch Informat Syst Comp & Math, Uxbridge UB8 3PH, Middx, England
[2] Univ London Birkbeck Coll, Sch Comp Sci, London WC1E 7HX, England
关键词
software systems; refactoring; tool-based approach; information systems;
D O I
10.1080/03081070600661051
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The majority of information systems these days engender a high level of complexity through the extent of possible inputs to testing, required processing and consequent outputs. In fact, complexity permeates every level of this model for an information system. Complexity thus has a direct effect on the extent to which a system needs to be tested, through those inputs. Complexity also inhibits the ease with which a system can be modified since more time needs to be devoted to assessment of change complexity and resulting tests. Reduction of complexity is the goal of every developer when initially developing a system and, as importantly, after the system has been developed and inevitable changes are made. In this paper, we analyse an automated technique for extracting the typical changes (or refactorings as we have labelled them) made to various Java systems over different versions of its lifetime. Our goal is to identify areas of change where complexity can be examined more thoroughly and aid thus given to the developer when maintaining systems. A generic tool was developed specifically for this task and the results showed new and promising insights into the way systems behave as they evolve. In particular, the complex refactorings are relatively rare compared with more simple refactorings.
引用
收藏
页码:329 / 346
页数:18
相关论文
共 21 条
  • [1] ADVANI D, 2005, BBKCS050301 U LOND S
  • [2] ARSENOVSKI D, REFACTORING ELIXIR Y
  • [3] A controlled experiment for evaluating quality guidelines on the maintainability of object-oriented designs
    Briand, LC
    Bunse, C
    Daly, JW
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2001, 27 (06) : 513 - 530
  • [4] COUNSELL S, 2003, ACM 2 INT C PRINC PR
  • [5] COUNSELL S, 2002, P INT C SOFTW SYST E
  • [6] Demeyer S, 2000, ACM SIGPLAN NOTICES, V35, P166, DOI 10.1145/354222.353183
  • [7] Extracting facts from open source software
    Ferenc, R
    Siket, I
    Gyimóthy, T
    [J]. 20TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2004, : 60 - 69
  • [8] FOOTE B, 1995, PATTERN LANGUAGES OF PROGRAM DESIGN, P239
  • [9] Fowler M., 2018, Refactoring: improving the design of existing code, V2nd
  • [10] Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems
    Harrison, R
    Counsell, S
    Nithi, R
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2000, 52 (2-3) : 173 - 179