Architecture-based software performance optimisation can help to find potential performance problems and mitigate their negative effects at an early stage. To automate this optimisation process, rule-based and metaheuristic-based performance optimisation methods have been proposed. However, existing rule-based methods explore a limited search space, potentially excluding optimal or near-optimal solutions. Most of current metaheuristic-based methods ignore existing practical knowledge of performance improvement, and lead to solutions that are not easily explicable to humans. To address these problems, we propose a novel approach for performance optimisation at the software architecture level named Multiobjective performance Optimisation based on Randomised search rulEs (MORE). First, we design randomised search rules (MORE-R) to provide explanation without parameters while benefiting from existing practical knowledge of performance improvement. Second, based on all possible composite applications of MORE-R, an explicable multi-objective optimisation problem (MORE-P) is defined to enlarge search space and enable solutions explicable to architectural stakeholder. Third, a multi-objective evolutionary algorithm (MORE-EA) with an introduced do-nothing rule, innovative encoding and repair mechanism is designed to effectively solve MORE-P. The experiments show that MORE is able to achieve more explicable and higher quality solutions than two state-of-the-art techniques. They also demonstrate the benefits of integrating search-based software engineering approaches with practical knowledge. © 2021 Elsevier B.V.
Bibliographical noteThis work is supported by the Royal Society International Exchanges, UK (IE151226), Talent support program of High school in the new century of Fujian Province, China (Year 2017), the Natural Science Foundation of Fujian Province, China (Nos. 2020J01165 , 2017J01498), the Natural Science Foundation of Hubei Province, China (No. 2018CFB689).
- Multi-objective evolutionary optimisation
- Performance optimisation
- Randomised search rule
- Software architecture