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 language | English |
|---|---|
| Pages (from-to) | 285-306 |
| Number of pages | 22 |
| Journal | Journal of Research and Practice in Information Technology |
| Volume | 43 |
| Issue number | 4 |
| State | Published - 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