Incremental Refactoring Using Seeds

Gabriela CZIBULA, Istvan Gergely CZIBULA
2010 Studies in Informatics and Control  
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
more » ... 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.
doi:10.24846/v19i3y201007 fatcat:cogjh6e7jrh7xoa25452k47xte