{'fraction_non_alphanumeric': 0.019184652278177457, 'fraction_numerical': 0.0, 'mean_word_length': 5.624338624338624, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Contributions to the Autonomy of Ubiquitous Software Systems. (Contributions à l'autonomie des systèmes logiciels ubiquitaires)

The contributions summarized in this manuscript are at the intersection of distributed systems and software engineering. In particular, we focused on the design and the implementation of autonomous ubiquitous software systems. Highlighted by the latest generation of smartphones, these systems are able to adapt themselves automatically to the requirements of users or their surrounding environment. We structured our research around three complementary research axes, which compose the pillars of our scientific contributions during the past seven years: The elasticity of ubiquitous systems, the contextualization of ubiquitous systems, and the self-adaptation of ubiquitous systems. First of all, we introduce the need to design software architectures that are modular enough to be manipulated at run-time. Then, we report on a context monitoring model that can be used to implement in-depth or in-breath context monitoring activities. Finally, we conclude with the engineering of feedback control loops as a means to drive the adaptation of software architectures according to the evolution of their execution context.