Automating UML Models Refactoring using Search-Based Algorithms
No Thumbnail Available
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Saudi Digital Library
Abstract
Refactoring is intended to improve the software quality by detecting defects in the software and correcting it. This process reduces the effort and cost of maintenance which is reported to be the most expenditure activity in the software development process. To refactor, there are different approaches: manual, semi-automated and automated.
Automatic refactoring has been approached at the code level of the software. However, there is a scarcity of research of applying automatic refactoring at UML models. Design usually precedes coding activity and as such correcting any defects early will save the time, cost and effort of testing and maintaining the software.
The objective of this dissertation is to use different types of algorithms such as: search based and machine learning to compare the refactoring process on different UML diagrams such as: use case diagram, sequence diagram and class diagram. In addition, we implemented search based algorithms on an integrated multiple-view model that composes the three aforementioned diagrams. To validate that our automatic refactoring is meaningful and beneficial, a set of quality metrics must be improved. An empirical validation of these approaches on different case studies reveal many interesting results, issues, challenges of applying AI for UML diagram refactoring. Simulated Annealing (SA) performed the best comparing to Hill Climbing (HC) and Late Acceptance Hill Climbing (LAHC) in refactoring use case diagram. A hybridization of K-means and Simulated Annealing (KSA) was able to find all the refactoring opportunities in sequence diagram. Support Vector Machine (SVM) was able to perform equally competitive in training and validation phase in finding class diagram smells. Again, SA performed very well comparing to HC and LAHC in detecting and refactoring a multiple-view model composing of the three selected models. The algorithms were able to achieve high accuracy and recall of detecting anti-patterns or defective components in different UML diagrams.