Validation of reasoning engines an adaptation mechanisms for self-adaptive systems
Validation des moteurs de raisonnement et mécanismes d'adaptation pour les systèmes auto-adaptatifs
Résumé
Self-adaptive system are software systems capable of sensing their working environment (through sensors), reason and make decisions on how to adapt facing environmental changes (through a reasoning engine), and reconfigure their internal structure in order apply adaptations (through an adaptation mechanism). These systems can provide effective assistance in a large number of human activities. Yet, they will fully deliver their promises only if system engineers can ensure that decisions and adaptations are correct on all situations. This requires robust techniques for validating that the reasoning process and adaptation mechanisms implemented in such systems are correct. In this thesis I address the validation of reasoning engines and adaptation mechanism base on aspect-oriented programming. Reasoning engines are pieces of software entitled of reasoning on a large number of factors in order to decide how to adapt given an environmental change. Ensuring that the decisions of these engines are correct for every possible environment change is critical. Wrong decision will lead to faulty adaptation that may prevent the system to work properly. Yet, validating that reasoning engines make the right decision is challenging because of the large number of possible environmental changes. In this thesis I introduce multi-dimensional covering arrays (MDCA) for sampling the environmental conditions that mat affect the decision making process. MDCA specifically targets environments that can trigger complex decision by explicitly integrating the notion of history in the environment sample. Aspect oriented programming (AOP) provide the means to developers to augment or replace the system structure or behavior, properties that make AOP a good adaptation mechanism. Yet, when using AOP it is difficult to (i) foresee interactions between different aspects and the base system, (ii) control the places that aspects will advise and invade, (iii) ensure that aspects will perform safely on evolution (aspects or the base system). These difficulties hamper the validation and adoption of AOP in general. In this thesis I introduce an interactions specification framework (ABIS), which allows developers to control the aspects interactions with the base system by specifying the places that aspects are allowed to advice. ABIS enables developers to reduce the time needed to diagnose and correct problems due to faulty aspects.
Les systèmes auto adaptatifs sont des systèmes logiciels capables d'observer leur environnement de travail (par des sondes), raisonner et prendre des décisions sur la façon de s'adapter aux changements environnementaux (par un moteur de raisonnement), et modifier leur structure interne pour prendre les adaptations en compte. Ces systèmes peuvent fournir une aide précieuse dans un grand nombre d'activités humaines. Cependant, ils ne fourniront entièrement leurs promesses que si les ingénieurs peuvent s'assurer que les décisions et les adaptations sont correctes sur toutes les situations. Ceci exige des techniques robustes pour valider que les mécanismes de raisonnement et d'adaptation dans de tels systèmes sont corrects. Dans cette thèse j'adresse la validation des moteurs de raisonnement et des mécanismes d'adaptation par programmation orientée aspect. Les moteurs de raisonnement sont des éléments logiciels responsables de raisonner sur un grand nombre de facteurs afin de décider comment adapter un système face à des variations dans l'environnement. Il est primordial d'assurer que les décisions prises par ces moteurs sont correctes pour chaque changement d'environnement possible. Une décision erronée peut mener vers une adaptation défectueuse qui peut empêcher le système de fonctionner correctement. Cependant, valider que les moteurs de raisonnement prennent la bonne décision entraine des défis dus au grand nombre de changements environnementaux possibles. Dans cette thèse je présente multi dimesional covering arrays (MDCA) pour échantillonner les conditions environnementales qui peuvent affecter la prise des décisions. MDCA vise spécifiquement les environnements qui peuvent déclencher des décisions complexes en intégrant explicitement la notion de l'histoire dans l'échantillon d'environnement. La programmation orientée aspect (AOP) fourni les moyens aux ingénieurs d'augmenter ou remplacer la structure ou le comportement du système, ces propriétés font d'AOP un bon mécanisme d'adaptation. Cependant, en utilisant l'AOP il est difficile de (i) prévoir des interactions entre différents aspects et le système de base, (ii) contrôler les endroits où les aspects se tisseront, (iii) assurer que les aspects s'exécuteront sans risque pour l'évolution (des aspects ou du système de base). Ces difficultés entravent la validation et l'adoption de l'AOP en général. Dans cette thèse je présente un framework pour la spécification d'interactions dans des programmes orientée aspects (ABIS), qui permet aux ingénieurs de contrôler les interactions entre les aspects et le système de base en spécifiant les endroits où aspects sont autorisés à se tisser. ABIS permet aux ingénieurs de réduire le temps nécessaire pour diagnostiquer et corriger des problèmes dus aux aspects défectu
Domaines
Génie logiciel [cs.SE]
Loading...