Analyses de sûreté de fonctionnement multi-systèmes Présenté par Romain Bernard Doctorant LaBRI / ONERA / Airbus Analyses de sûreté de fonctionnement multi-systèmes
Plan Introduction et objectifs de la thèse Contexte Raffinement AltaRica Raffinement appliqué à la sûreté de fonctionnement Conclusion
Plan Introduction et objectifs de la thèse Contexte Raffinement AltaRica Raffinement appliqué à la sûreté de fonctionnement Conclusion
Conception de systèmes embarqués et SdF La sécurité dans l’aéronautique est une priorité: certification Besoin d’analyses de sûreté de fonctionnement des systèmes (SdF) pour garantir un niveau de sécurité requis Evolution des systèmes embarqués liée aux contraintes de poids: systèmes multi-fonctions, intégration en hausse complexité d’analyse croissante Besoin d’outils d’aide aux analyses Les avionneurs s’intéressent aux méthodes formelles: modèles formels exploités à l’aide d’outils/services Scade, Esterel, Simulink, etc… : conception AltaRica: sûreté de fonctionnement
Utilisation des modèles dans le processus SdF Résultat informel lié à l’expertise de l’ingénieur SdF Documents de conception Description du système Schéma d’architecture Résultats de l’analyse SdF Abstraction SdF du Système Interpretation SdF Formalisation actuelle Diagramme de dépendance Arbre de défaillances Modèle formel Formalisation proposée Génération automatisée Coupes minimales exhaustives Résultats de l’analyse SdF
Objectifs industriels L’utilisation de modèles a introduit dans l’industrie le souhait d’une modélisation complète de l’avion: Un modèle présentant tous les systèmes embarqués Les premières expérimentations de connexion de modèles ont montré: Difficultés de création du modèle: Gestion des interfaces entre modèles Difficultés d’exploitation du modèle: Lenteur des analyses, difficulté d’utilisation des résultats Une méthodologie d’analyse multi-systèmes est nécessaire
Approche proposée Conception industrielle de systèmes: processus incrémental Conception de modèles formels par raffinement progressif Raffinement: cohérence entre différents modèles d’un même systèmes détaillé pour analyses mono-système abstrait pour analyses multi-systèmes Cadre AltaRica: théorème de compositionnalité [Point2000] bisimulation A A’ M M’ Objectif: théorème de compositonnalité pour du raffinement coupler des modèles de niveaux de détail différents
Plan Introduction et objectifs de la thèse Contexte Sûreté de fonctionnement AltaRica et MecV Raffinement AltaRica Raffinement appliqué à la sûreté de fonctionnement Conclusion
Contexte détaillé: sûreté de fonctionnement Objectif: Vérifier que chaque système répond au critères réglementaires imposés pour la certification Principe: Fonctions Ctl yaw Situations redoutées Loss of yaw ctl HAZ Coupes minimales G.Fail & B.fail & P3.loss … Classification MIN MAJ HAZ CAT Objectif (/FH) 10-3 10-5 10-7 10-9
Processus actuel de SdF Vue avion Analyses fonctionnelles → fonctions → situations redoutées Vue multi-systèmes Vue système Analyses de la sûreté de fonctionnement → coupes minimales → probabilité d’occurrence (par heure de vol) Vue équipement
Plan Introduction et objectifs de la thèse Contexte Sûreté de fonctionnement AltaRica et MecV Raffinement AltaRica Raffinement appliqué à la sûreté de fonctionnement Conclusion
Contexte détaillé: AltaRica Projet AltaRica: Collaboration chercheurs (LaBRI) et industriels (Dassault…) Création d’un langage formel pour la sûreté de fonctionnement Langages AltaRica: Langage originel: contraintes Langage « industriel »: flot de données Outils Simulation Model checking Génération de coupes/séquences
AltaRica: présentation Un composant AltaRica est appelé nœud Hypothèses/spécification Description textuelle d’un noeud AltaRica Soit un calculateur « Cpu1 »: node Cpu1 edon event error, loss; extern law <loss> = exp (1 e -4) law <error> = exp (1 e -7); state Status : {ok, err, lost}; init Status := ok; flow Output : {ok, err, lost} : out; assert Output = Status; trans Status = ok |- error -> Status := err; Status != lost |- loss -> Status := lost; deux modes de défaillances erroné et perdu →Trois états possibles: ok (initial), err et lost une sortie correcte, erronée ou perdue →Trois valeurs possibles: ok, err et lost deux défaillances: erreur et perte Status = err Error Loss Status = lost Status = ok le signal en sortie correspond à l’état du calculateur Représentation graphique du noeud AltaRica
AltaRica: sémantique La sémantique d’un nœud AltaRica est un système de transition interfacé: Configurations: variables d’état et de flux Transitions Status = ok Output = ok Loss Error Status = lost Output = lost Status = err Output = err Loss
Description textuelle Représentation graphique AltaRica: hiérarchie Un nœud AltaRica peut contenir des instances d’autres nœuds. Description textuelle Représentation graphique node RudderCtl sub P1,P2,P3:Cpu1; … assert G.in = P1.Output; sync <P1.loss,P2.loss,P3.loss>; edon
AltaRica: modèle pour la SdF AltaRica est adapté aux modèle dits « de propagation de défaillance »: Actions nominales (reconfigurations, détections d’erreur…) Défaillances Modèle ServoCtl Cpu Observateur
MecV Model checker développé au LaBRI (A.Vincent), Capable de: Traiter directement du code AltaRica Manipuler plusieurs nœuds à la fois Effectuer des calculs de points fixes (plus grand ou plus petit) pour un ensemble d’états donné, recherche du sous-ensemble d’états satisfaisant les conditions spécifiées Outil de calcul nécessitant l’écriture des formules souhaitées dans un langage propre (inspiré du µ-calcul) ReachA(s) += nodeA!init(s) | <u><e>(ReachA(u) & nodeA!t(u,e,s));
Plan Introduction et objectifs de la thèse Contexte Raffinement AltaRica Raffinement appliqué à la sûreté de fonctionnement Conclusion
Objectifs liés aux besoins industriels Compositionnalité (pour analyses multi-systèmes) Préservation des résultats d’analyse (coupes/séquences) La compositionnalité sous-entend que tout raffinement d’un système peut être utilisé dans un modèle multi-systèmes: variables de flux du modèle abstrait à conserver raffinement A A’ M M’
Candidats au raffinement Substitution d’événement node Cpu0 … event loss; trans Status != lost |- loss -> Status := lost; edon node Cpu0’ … event loss1, loss2; trans Status != lost |- loss1, loss2 -> Status := lost; edon Loss Status = lost Output = lost Status = ok Output = ok Status = err Output = err Status = err Output = err Loss1 Status = lost Output = lost Status = ok Output = ok Loss2
Candidats au raffinement Renforcement de la garde d’une transition node Cpu1 … event error, loss; trans Status = ok |- error -> Status := err; Status != lost |- loss -> Status := lost; edon node Cpu2 … event error, loss; trans Status = ok |- error -> Status := err; Status = ok |- loss -> Status := lost; edon Status = err Output = err Error Loss Status = lost Output = lost Status = ok Output = ok Status = err Output = err Error Loss Status = lost Output = lost Status = ok Output = ok
Candidats au raffinement Ajout de hiérarchie node Cpu2 … flow Output:{ok,err,lost}:out; edon node Cpu3 sub Com,Mon:Cpu2 … flow Output:{ok,err,lost}:out; edon Com Mon
Candidats au raffinement Ajout d’événement/transition node Cpu0 … event loss; trans Status != lost |- loss -> Status := lost; edon node Cpu1 … event error, loss; trans Status = ok |- error -> Status := err; Status != lost |- loss -> Status := lost; edon Status = err Output = err Loss Status = lost Output = lost Status = ok Output = ok Status = err Output = err Error Loss Status = lost Output = lost Status = ok Output = ok Non retenu car peut introduire de nouveaux états accessibles
Raffinement AltaRica La relation de bisimulation forte interfacée [Point2000] est trop contraignante en pratique. Nous avons souhaité étudier de nouvelles relations: moins fines: relations de type simulation applicables aux enrichissements choisis principe de compositionnalité Étudier les restrictions sur le langage nécessaires pour pouvoir établir le théorème de compositionnalité Chaque relation étudiée est spécifiée en MecV: Simulation interfacée paramétrée Simulation quasi-branchante interfacée paramétrée
La relation de simulation Classiquement, un objet A simule un objet B si: toute séquence d’événements depuis l’état initial de B peut être effectuée depuis l’état initial A, les états atteints étant comparables MecV nécessite de spécifier les relations permettant de comparer: les états respectifs (RelF) les événements considérés comme similaires (RelEvt)
La relation de simulation Simulation interfacée paramétrée: Tout état s’ du nœud détaillé est en relation avec un état s du nœud abstrait. Pour toute transition (s’,e’,t’) du nœud détaillé et tout état s en relation avec s’, il existe une transition (s,e,t) du nœud abstrait telle que sont respectivement en relation: les flux, les événements, les états cibles. relF s’ t’ s relEvt e e’ t sim sim(s,s’) -= RelF(s,s’) & ([e’][t’](transA’(s’,e',t’) => <e><t >(transA(s,e,t) & RelEvt(e,e’) & sim(t,t’))));
Renforcement de garde Soit un calculateur de type Cpu1. Pour restreindre le comportement, défaillances seulement considérées depuis l’état initial. La relation sur les flux est l’égalité. La relation sur les événements est l’identité. Cpu1 Cpu2 Status = err loss Status = lost Status = ok Status = err error loss Status = lost Status = ok error loss Cpu1 simule Cpu2 Cpu2 ne simule pas Cpu1
Substitution de défaillance Soit un calculateur de type Cpu0. Pour analyses SdF, nécessité de différencier loss1 et loss2 (même effet mais probabilités d’occurrence différentes). La relation sur les flux est l’égalité. La relation sur les événements est: {loss}≡{loss1,loss2}. Status = err loss Status = lost Status = ok Cpu0 Status = err loss1 loss2 Status = lost Status = ok Cpu0’ Cpu0 simule Cpu0’ Cpu0’ simule Cpu0
Compositionnalité Restrictions du langage Priorités Diffusion dans les vecteurs de synchronisation Théorème de compositionnalité Soient M et M’ deux nœuds hiérarchiques sans priorité ni diffusion. Alors M simule M’ si tout sous-nœud Ni de M simule un sous-nœud N’i de M’. a b A a A’ A simule A’ Hiérarchie: « b plus prioritaire que a » b M a M’ M ne simule pas M’
Calcul de séquences Le théorème permet en plus de calculer des séquences détaillées à partir des séquences abstraites G.fail & B.fail & P3.loss … {loss} ≡ {loss1, loss2} G.fail & B.fail & P3.loss1 G.fail & B.fail & P3.loss2 …
Simulation quasi-branchante Besoins: Relation de simulation Distinction: événements observables et non observables Travaux existants: Van Glabbeek, Van Benthem Simulation quasi-branchante interfacée qb-sim e * e’ qb-sim * e * e’ Si aucun événement non observable dans le nœud abstrait qb-sim qb-sim
Simulation quasi-branchante Illustration: Théorème de compositionnalité Soient M et M’ deux nœuds hiérarchiques sans priorité ni diffusion. Alors M qb-simule M’ si tout sous-nœud Ni de M qb-simule un sous-nœud N’i de M’. Bus Loss Bus 1 Bus 2 Loss of Bus 1 Loss of Bus 2
Bilan - Définition de deux relations de simulation Théorèmes de compositionnalité Implémentation en MecV de ces relations Restrictions Composition Calcul séquences Adéquation besoins industriels Bisimulation Non Oui - Simulation Pas de priorités = Simulation quasi-branchante ? +
Plan Introduction et objectifs de la thèse Contexte Raffinement AltaRica Raffinement appliqué à la sûreté de fonctionnement Conclusion
Opérations préparatoires En SdF, les séquences ne contiennent que des défaillances: Nécessité de masquer les événements nominaux Status = err Error Correction Loss Status = lost Status = ok État « transitoire » Transition à masquer masquage Error Loss Status = lost Status = ok Le raffinement ne peut être vérifié que si le modèle détaillé n’introduit pas de nouvel état accessible (vis-à-vis de RelF)
Raffinement pour la sûreté de fonctionnement Formules MecV de vérification du raffinement implémentées pour être génériques: Seuls quelques éléments communs à toutes les relations sont à initialiser par l’utilisateur. Liberté d’utilisation restreinte à la définition des relations RelF et RelEvt MecV permet deux approches: vérification : relations spécifiées par l’utilisateur exploration : relations calculées
Approches vérification/exploration Approche vérification: Travail coûteux pour spécifier tous les événements en relation Si la relation est vérifiée par MecV alors le raffinement est prouvé sans travail supplémentaire Approche exploration Pas de spécification initiale: RelEvt(e,e’) = true Si relation non vérifiée par MecV alors pas de raffinement Si relation vérifiée alors nécessité de vérifier les couples d’événements calculés par MecV
Méthodologie de vérification du raffinement Masquage des événements/transitions nominales Test des états accessibles Vérification qualitative Existe-t-il une relation? Analyse quantitative: Génération des séquences détaillées et quantification
La compositionnalité pour la SdF raffinement raffinement
Bilan Méthodologie appliquée sur deux cas d’étude: Calculateur raffiné jusqu’à contenir une architecture contrôle/commande Système de génération électrique Expérimentations de vérification globale du raffinement: Vérification possible sur modèles les plus abstraits mais rapidement impossible sur des modèles plus détaillés Confirme le besoin d’appliquer un raffinement progressif et de tirer partie de la compositionnalité
Plan Introduction et objectifs de la thèse Contexte Raffinement AltaRica Raffinement appliqué à la sûreté de fonctionnement Conclusion
Conclusion: travaux académiques Apports: deux relations étudiées simulation paramétrée interfacée Compositionnalité préservée et théorème établi Algorithmes de calcul des séquences écrit Relation adaptée au raffinement sans ajout de hiérarchie simulation quasi-branchante paramétrée interfacée Relation adaptée au raffinement par ajout de hiérarchie Perspectives à court terme: Étudier la préservation des séquences pour la relation de simulation quasi-branchante Algorithme de calcul des séquences détaillées à partir des séquences abstraites pour la simulation quasi-branchante
Conclusion: travaux industriels Apports industriels: Méthodologie détaillée de raffinement Spécification générique des relations en MecV utilisation facilitée manipulations nécessaires réduites Enseignement: le raffinement est difficilement vérifiable a posteriori Industrialisation: Développer une IHM pour: saisir les relations RelF et RelEvt appels aux différentes relations dans MecV Identifier de nouveaux besoins (principe de conception) de nouvelles relations à étudier
Publications / Communications Dependable Control of Discrete Systems (DCDS’07) Experiments in model-based safety analysis: flight controls International System Safety Conference (ISSC’08) Failure propagation modeling: multi-system safety analysis Lambda-Mu (LM16) Raffinement AltaRica pour l’étude de systèmes à différents niveaux de détail
© AIRBUS FRANCE S.A.S. Tous droits réservés. Document confidentiel. Ce document et son contenu sont la propriété d’AIRBUS FRANCE S.A.S. Aucun droit de propriété intellectuelle n’est accordé par la communication du présent document ou son contenu. Ce document ne doit pas être reproduit ou communiqué à un tiers sans l’autorisation expresse et écrite d’AIRBUS FRANCE S.A.S. Ce document et son contenu ne doivent pas être utilisés à d’autres fins que celles qui sont autorisées. Les déclarations faites dans ce document ne constituent pas une offre commerciale. Elles sont basées sur les postulats indiqués et sont exprimées de bonne foi. Si les motifs de ces déclarations n’étaient pas démontrés, AIRBUS FRANCE S.A.S serait prêt à en expliquer les fondements. AIRBUS, son logo, A300, A310, A318, A319, A320, A321, A330, A340, A350, A380 et A400M sont des marques déposées.