Friday , April 26 2024

Incremental Refactoring Using Seeds

Gabriela CZIBULA
Babeş-Bolyai University
1, M. Kogălniceanu Street, Cluj-Napoca, 400084, Romania

Istvan Gergely CZIBULA
Babeş-Bolyai University
1, M. Kogălniceanu Street, Cluj-Napoca, 400084, Romania

Abstract: Refactoring is one major issue to improve the design of software systems, increasing the internal software quality. It is a disciplined technique for improving the structure of existing code without changing its observable behaviour. We have previously introduced a clustering based approach for identifying refactorings in an object oriented software system. Essentially, it takes the existing software system and restructure it using a k-means based clustering algorithm (kRED), in order to obtain a better design. But, in time, the software system evolves and new application classes are added for implementing new functional requirements. We propose in this paper a k-means based incremental clustering method, Incremental Refactoring Using Seeds (IRUS), that is capable to re-partition the existing software system, when new application classes are added to it. The method starts from the clusters obtained by applying kRED before the software system’s extension. The result is reached more efficiently than running kRED again from the scratch on the extended software system. An experimental evaluation proving the method’s efficiency is also reported.

Keywords: Software engineering, incremental refactoring, clustering.

>>Full text
CITE THIS PAPER AS:
Gabriela CZIBULA, Istvan Gergely CZIBULA, Incremental Refactoring Using Seeds, Studies in Informatics and Control, ISSN 1220-1766, vol. 19 (3), pp. 271-284, 2010.