Optimized design refactoring (ODR): a generic framework for automated search-based refactoring to optimize object-oriented software architectures
Tarik Houichime,Younes El Amrani
DOI: https://doi.org/10.1007/s10515-024-00446-9
IF: 1.677
2024-06-08
Automated Software Engineering
Abstract:Software design optimization (SDO) demands advanced abstract reasoning to define optimal design components' structure and interactions. Modeling tools such as UML and MERISE, and to a degree, programming languages, are chiefly developed for lucid human–machine design dialogue. For effective automation of SDO, an abstract layer attuned to the machine's computational prowess is crucial, allowing it to harness its swift calculation and inference in determining the best design. This paper contributes an innovative and universal framework for search-based software design refactoring with an emphasis on optimization. The framework accommodates 44% of Fowler's cataloged refactorings. Owing to its adaptable and succinct structure, it integrates effortlessly with diverse optimization heuristics, eliminating the requirement for further adaptation. Distinctively, our framework offers an artifact representation that obviates the necessity for a separate solution representation, this unified dual-purpose representation not only streamlines the optimization process but also facilitates the computation of essential object-oriented metrics. This ensures a robust assessment of the optimized model through the construction of pertinent fitness functions. Moreover, the artifact representation supports parallel optimization processes and demonstrates commendable scalability with design expansion.
computer science, software engineering