Scheduling of conflicting refactorings to promote quality improvement

Hui Liu, Ge Li*, Zhiyi Ma, Weizhong Shao

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

9 Citations (Scopus)

Abstract

Software refactoring is to restructure object-oriented software to improve its quality, especially extensibility, reusability and maintainability while preserving its external behaviors. For a special software system, there are usually quite a few refactorings available at the same time. But these refactorings may conflict with each other. In other words, carrying out a refactoring may disable other refactorings. Consequently, only a subset of the available refactorings can be applied together, and which refactorings will be applied depends on the schedule (application order) of the refactorings. Furthermore, carrying out different subsets of the refactorings usually leads to different improvement of software quality. As a result, in order to promote the improvement of software quality, refactorings should be scheduled rationally. However, how to schedule refactorings is rarely discussed. Usually, software engineers carry out refactorings immediately when they are found out. They do not wait until all applicable refactorings are found out and scheduled. In other words, the refactorings are not scheduled explicitly, and conflicts among them are not taken into consideration. Though more and more refactorings are formalized and automated by refactoring tools, refactoring tools apply refactorings usually in a nondeterministic fashion (in random). In this paper, we propose a scheduling approach to schedule conflicting refactorings to promote the improvement of software quality achieved by refactorings. Conflicts among refactorings are detected, and then a scheduling model is presented. And then a heuristic algorithm is proposed to solve the scheduling model. Results of experiments suggest that the proposed scheduling approach is effective in promoting the improvement of software quality.

Original languageEnglish
Title of host publicationASE'07 - 2007 ACM/IEEE International Conference on Automated Software Engineering
Pages489-492
Number of pages4
DOIs
Publication statusPublished - 2007
Externally publishedYes
Event22nd IEEE/ACM International Conference on Automated Software Engineering, ASE'07 - Atlanta, GA, United States
Duration: 5 Nov 20079 Nov 2007

Publication series

NameASE'07 - 2007 ACM/IEEE International Conference on Automated Software Engineering

Conference

Conference22nd IEEE/ACM International Conference on Automated Software Engineering, ASE'07
Country/TerritoryUnited States
CityAtlanta, GA
Period5/11/079/11/07

Keywords

  • conflict
  • quality
  • schedule
  • software refactoring

Fingerprint

Dive into the research topics of 'Scheduling of conflicting refactorings to promote quality improvement'. Together they form a unique fingerprint.

Cite this