ACM Home Page
Please provide us with feedback. Feedback
Scheduling of conflicting refactorings to promote quality improvement
Full text PdfPdf (318 KB)
Source
Automated Software Engineering archive
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering table of contents
Atlanta, Georgia, USA
POSTER SESSION: Posters table of contents
Pages 489-492  
Year of Publication: 2007
ISBN:978-1-59593-882-4
Authors
Hui Liu  Peking University, Beijing, China
Ge Li  Peking University, Beijing, China
Zhiyi Ma  Peking University, Beijing, China
Weizhong Shao  Peking University, Beijing, China
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 57,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1321631.1321716
What is a DOI?

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


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
 
3
T. Mens. On the use of graph transformations for model refactoring. Slides of a tutorial at the Summer School on Generative and Transformational Techniques in Software Engineering, 2005.
 
4
 
5
T. Mens, G. Taentzer, and O. Runge. Detecting structural refactoring conflicts using critical pair analysis. Electronic Notes in Theoretical Computer Science, 127(3):113--128, April 2005.
 
6
 
7
 
8
J. U. Pipka. Refactoring in a 'test first'-world. In M. Marchesi and G. Succi, editors, Third International Conference on eXtreme Programming and Flexible Processes in Software Engineering, pages 178--181, 2002.
 
9

Collaborative Colleagues:
Hui Liu: colleagues
Ge Li: colleagues
Zhiyi Ma: colleagues
Weizhong Shao: colleagues