Software systems now hold a central role in our daily lives, and modern societies have undeniably become heavily dependent on them. Such software systems collaborate seamlessly with people, adapting to their various needs to support key societal activities. To accommodate the wide spec- trum of user demands and adapt to diverse execution environments, modern software-intensive systems exhibit variability. The research activities presented in this manuscript address large, variable software systems. I give a partial view of my contributions in this domain, focusing on their evolution, adaptation, and optimization. In the first part, we deal with changes that these software systems undergo over time. In the second part, we investigate how to develop self-adaptation logic for such systems and in the third part, we propose methods to measure and reduce their energy consumption.
defended on 26/01/2024