Dans des système concurrent, potentiellement embarqués et distribué, il est souvent crucial d'être capable de déterminer quel(s) composant(s) est(sont) responsable(s) d'une défaillance, que ce soit pour debbuger, établir une responsabilité contractuelle du fournisseur des composant, ou pour isolée, ou redémarrer les composants défaillants. Le diagnostic s'appuie sur l'analyse de la causalité logique pour distinguer les composants ayant contribué à la défaillance du système, de ceux ayant eu peu ou pas d'impact sur cette dernière. Plus précisément, un composant C est une cause nécessaire, si la propriété P du système n'aurait pas été violée si C s'était comporté selon sa spécification S. De même, C est une cause suffisante de la violation de P (défaillance du système) si P aurait été violée, même si tous les composants, sauf C, avait respecté leur spécification. Autrement dit, la violation de S, du composant C, est suffisante pour violer P. L'approche a été formalisée, initialement, pour des modèle d'interaction BIP. Le but de ce projet est de formaliser un raisonnement similaire pour des programmes fonctionnels, où les fonctions sont équipées d'invariant décrivant leur comportement attendu. L'analyse prendrait en entrée une trace d'exécution (défaillante) et les invariant, et déterminerait quelle(s) fonction(s) est(sont) une(des) cause(s) de la défaillance. L'approche devra être implémenté et appliquée à des cas d'études provenant du domaine médical, ou de l'automatique. / In a concurrent, possibly embedded and distributed system, it is often crucial to be able to determine which component(s) caused an observed failure - be it for debugging, to establish the contractual liability of component providers, or to isolate or reset the failing component. The diagnostic relies on analysis of logical causality to distinguish component failures that actually contributed to the outcome from failures that had little or no impact on the system-level failure . More precisely, necessary causality of a component C characterizes cases when a system-level property P would not have been violated if the specification S of C had been fulfilled. Sufficient causality characterizes cases where P would have been violated even if all the components but C had fulfilled their specifications. In other words, the violation of S by C was sufficient to violate P. The initial approach to causality analysis on execution traces was formalized for the BIP interaction model. The goal of this project is to formalize a similar reasoning for functional programs where functions are equipped with invariants describing the expected behavior. The analysis should take a (faulty) execution trace and the invariants and determine which function(s) caused the failure. The results should be implemented and applied to case studies from the medical and automotive domains.
Identifer | oai:union.ndltd.org:theses.fr/2016GREAM074 |
Date | 07 December 2016 |
Creators | Geoffroy, Yoann |
Contributors | Grenoble Alpes, Gössler, Gregor |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | English |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0022 seconds