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
ACM Computing Surveys (CSUR)
Machine Learning
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
Program Restructuring Through Clustering Techniques
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Data Mining: Concepts and Techniques
Data Mining: Concepts and Techniques
Structured Analysis and System Specification
Structured Analysis and System Specification
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Refactoring Detection based on UMLDiff Change-Facts Queries
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
A new hierarchical clustering technique for restructuring software at the function level
Proceedings of the 6th India Software Engineering Conference
Visualizing the refactoring of classes via clustering
ACSC '11 Proceedings of the Thirty-Fourth Australasian Computer Science Conference - Volume 113
Hi-index | 0.00 |
It is well-known that maintenance and evolution represent important stages in the lifecycle of any software system (about 66% from the total cost of the software systems development). That is why in this paper we are focusing on the problem of automating an essential activity that appears in the maintenance and evolution of software systems: the problem of identifying refactorings that would improve the structure of the system. Refactoringis the process of improving the design of software systems, by improving their internal structure, without altering the external behavior of the code. The aim of this paper is to introduce a new clustering algorithm, CASYR(Clustering Algorithm for Software Systems Restructuring), that can be used for improving software systems design, by identifying the appropriate refactorings. The proposed approach can be useful for assisting software engineers in their daily work of refactoring software systems. We evaluate our approach on a real software system and we also provide a comparison with previous approaches.