Software quality estimation is a challenging and time-consuming activity, and models are crucial to face the complexity of such activity on modern software applications. In this context, software refactoring is a crucial activity within development life-cycles where requirements and functionalities rapidly evolve. One main challenge is that the improvement of distinctive quality attributes may require contrasting refactoring actions on software, as for trade-off between performance and reliability (or other non-functional attributes). In such cases, multi-objective optimization can provide the designer with a wider view on these trade-offs and, consequently, can lead to identify suitable refactoring actions that take into account independent or even competing objectives. In this paper, we present an approach that exploits NSGA-II as the genetic algorithm to search optimal Pareto frontiers for software refactoring while considering many objectives. We consider performance and reliability variations of a model alternative with respect to an initial model, the amount of performance antipatterns detected on the model alternative, and the architectural distance, which quantifies the effort to obtain a model alternative from the initial one. We applied our approach on two case studies: a Train Ticket Booking Service, and CoCoME. We observed that our approach is able to improve performance (by up to 42\%) while preserving or even improving the reliability (by up to 32\%) of generated model alternatives. We also observed that there exists an order of preference of refactoring actions among model alternatives. We can state that performance antipatterns confirmed their ability to improve performance of a subject model in the context of many-objective optimization. In addition, the metric that we adopted for the architectural distance seems to be suitable for estimating the refactoring effort.
翻译:软件质量估算是一项具有挑战性和耗时性的活动,模型对于面对现代软件应用中此类活动的复杂性至关重要。在这方面,软件再设定是发展生命周期中一项至关重要的活动,因为这方面的要求和功能迅速演变。一个主要的挑战是,改进独特的质量特性可能需要对软件采取对比性再设定行动,例如对性能和可靠性(或其他非功能属性)之间的取舍进行对比性重估。在这种情况下,多目标优化可以让设计者对这些取舍有更广泛的视角,从而导致确定适当的再设定行动,考虑到独立或甚至相互竞争的目标。在这个文件中,我们提出了一个方法,利用NSGA-II作为基因算法,在考虑许多目标的同时,为软件再配置寻找最佳的Pareto边界。我们考虑了一种模型替代方法的性能和可靠性的变异异性,在模型选项中检测到的性能抗异性,在模型中,我们为获得从最初的替代方法获得一个模型的更佳性能,我们在两个案例研究中运用了一种方法:通过Thicket-chet-to the col a recreal recal a recustration a recurrup the the sup the sal deviewnal views in the werviewn viewd the we.