Software refactoring at the class level using clustering techniques

  • Abdulaziz Alkhalid*
  • , Mohammad Alshayeb
  • , Sabri A. Mahmoud
  • *Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

16 Scopus citations

Abstract

Software becomes more and more complex as it adapts new requirements, is enhanced or is modified. Thus, the quality of the software decreases. Therefore, there is a need to reduce the software's complexity and improve its quality. Refactoring reduces software complexity and improves quality by restructuring the code into a more readable form that improves its internal structure without changing its external functionality. However, it is a challenging task and requires effort from the software designer. In this paper, we propose a method for identifying ill-structured software at the class level that provides heuristic refactoring advice to software designers in order to create balance between coupling and cohesion using pattern recognition techniques. To identify the ill-structured code we use three clustering techniques, namely, the Single Linkage algorithm (SLINK), the Complete Linkage algorithm (CLINK) and the Weighted Pair-Group Method using Arithmetic averages (WPGMA). In addition to these clustering techniques, we also use the Adaptive K-Nearest Neighbour (A-KNN) algorithm and compare its performance with the other clustering techniques. The results show that software structuring at the class level using A-KNN is superior to SLINK, CLINK and WPGMA in terms of performance and computational complexity.

Original languageEnglish
Pages (from-to)285-306
Number of pages22
JournalJournal of Research and Practice in Information Technology
Volume43
Issue number4
StatePublished - Nov 2011

Keywords

  • Clustering
  • Code restructuring
  • Cohesion
  • Coupling
  • Software refactoring

ASJC Scopus subject areas

  • Software
  • Management Information Systems
  • Information Systems
  • Hardware and Architecture
  • Computer Networks and Communications

Fingerprint

Dive into the research topics of 'Software refactoring at the class level using clustering techniques'. Together they form a unique fingerprint.

Cite this