AntiPatterns: refactoring software, architectures, and projects in crisis
AntiPatterns: refactoring software, architectures, and projects in crisis
Software architecture recovery and restructuring through clustering techniques
ISAW '98 Proceedings of the third international workshop on Software architecture
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Measuring Design-Level Cohesion
IEEE Transactions on Software Engineering
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
A Metric-Based Approach to Enhance Design Quality through Meta-pattern Transformations
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Structured analysis and system specification
Software pioneers
Program Restructuring Through Clustering Techniques
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Hi-index | 0.00 |
Refactoring is a process that helps to maintain the internal software quality, during the whole software lifecycle. This paper aims at introducing a new hierarchical clustering algorithm that can be used for improving software systems design, by identifying the appropriate refactorings. The algorithm is named HARD (Hierarchical Clustering Algorithm for Refactorings Determination) and uses a newly introduced measure that estimates the "quality" of a software system. Clustering is used in order to recondition the class structure of a software system. The proposed approach can be useful for assisting software engineers in their daily works of refactoring software systems. We evaluate our approach using the open source case study JHotDraw and a real software system, providing a comparison with previous approaches.