  Self-adaptive software (SAS) can reconfigure itself to adapt to the changing
environment at runtime, aiming for continually optimizing conflicted
non-functional objectives, e.g., response time, energy consumption, throughput
and cost etc. In this paper, we present Feature guided and knEe driven
Multi-Objective optimization for Self-Adaptive softwAre (FEMOSAA), a novel
framework that automatically synergizes the feature model and Multi-Objective
Evolutionary Algorithm (MOEA), to optimize SAS at runtime. FEMOSAA operates in
two phases: at design time, FEMOSAA automatically transposes the engineers'
design of SAS, expressed as a feature model, to fit the MOEA, creating new
chromosome representation and reproduction operators. At runtime, FEMOSAA
utilizes the feature model as domain knowledge to guide the search and further
extend the MOEA, providing a larger chance for finding better solutions. In
addition, we have designed a new method to search for the knee solutions, which
can achieve a balanced trade-off. We comprehensively evaluated FEMOSAA on two
running SAS: one is a highly complex SAS with various adaptable real-world
software under the realistic workload trace, another is a service-oriented SAS
that can be dynamically composed from services. In particular, we compared the
effectiveness and overhead of FEMOSAA against four of its variants and three
other search-based frameworks for SAS under various scenarios, including three
commonly applied MOEAs, two workload patterns and diverse conflicting quality
objectives. The results reveal the effectiveness of FEMOSAA and its superiority
over the others with high statistical significance and non-trivial effect
sizes.
