• Nenhum resultado encontrado

DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE

N/A
N/A
Protected

Academic year: 2023

Share "DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE"

Copied!
119
0
0

Texto

En particulier, les ressources qu'il a mises à ma disposition pour me permettre de m'intégrer à Valence m'ont permis d'effectuer mon travail dans d'excellentes conditions matérielles et humaines. J'ai également passé trois années mémorables grâce à l'équipe du service informatique de l'IUT de Valence où j'ai effectué ma prestation d'enseignement, et notamment grâce à mon professeur Damien ; Je les remercie pour la confiance et l'accueil chaleureux qu'ils m'ont réservé.

Présentation des systèmes hybrides

Spécification et propriétés

Vérification et validation de logiciels

Influence de la précision de la spécification

De même, si, dans notre exemple, le cahier des charges ne mentionne pas le temps maximum de remplissage (une telle omission résultant d'un oubli par exemple), alors il ne capte plus tous les éléments du besoin qui ont motivé la conception du système. avoir. Au contraire, écrire dans le cahier des charges que les composants physiques du système doivent être de couleur noire alors que ce point n'a aucune importance pour les utilisateurs du système peut conduire au rejet d'un système au contrôleur d'eau d'une autre couleur, puis qu'il répond en tous points aux besoins de ses utilisateurs.

Notion de propriété de sûreté

Si la spécification fixe cette tolérance à plus ou moins 4 minutes, et que le temps de cycle total doit être connu dans les 3 minutes pour satisfaire les utilisateurs, alors un système peut être valide par rapport à la spécification mais ne pas fournir le service attendu. Dans certains contextes d'application, ce niveau de détail est limité et ne peut être choisi arbitrairement.

Les automates hybrides comme formalisme pour les propriétés de sûreté

Par exemple, la variable t est un chronomètre qui mesure le temps passé en mode remplissage (elle n'a aucune signification ailleurs). V représente le volume d'eau entré et q représente la mesure du débitmètre. Par exemple, en mode remplissage, t mesure le temps passé pour décrire le temps limite de remplissage. V représente le volume d'eau d'entrée, défini comme l'intégrale temporelle des valeurs de q.

Validation des propriétés hybrides par le test

  • Problèmes classiques du test
  • Évaluation des propriétés et test de conformité
  • Génération et adéquation des tests
  • État interne et contrôlabilité des systèmes

D'autre part, nous nous posons la question de l'évaluation de l'adéquation d'un ensemble de tests appliqués à une telle propriété. Cela conduit à une surestimation de l’adéquation des tests, et met donc en péril la validité des conclusions de validité.

Contributions proposées et organisation du document

  • Un système de maintien de la température anticipatif et écologique
  • Gestion des contrats, illustration sur un scénario
  • Gestion de l’énergie
  • Spécification considérée

Voici une description détaillée de la manière dont est calculée la température de consigne surveillée par le système à chaque instant. Le système évalue ensuite la faisabilité du contrat en fonction de la température actuellement réglée.

Formalisation générale des automates

  • Introduction
  • Variables
  • Évolutions possibles des variables
  • Trajectoires
  • Actions
  • Transitions discrètes
  • États initiaux
  • Exécutions hybrides
  • Traces hybrides
  • Model checking
  • Analyse d’atteignabilité pour les systèmes hybrides
  • Hybridisation et partitionnement
  • Exploration de modèle par abstraction de prédicat

Nous définissons E =I∪O comme l’ensemble des actions externes, et A=E∪H comme l’ensemble de toutes les actions de l’automate. La dynamique complexe de ces systèmes (où les variables peuvent suivre des trajectoires exponentielles) ne permet pas la réutilisation directe des techniques utilisées pour des formalismes plus simples (tels que les automates hybrides linéaires) pour calculer tous les états atteignables.

Test des systèmes hybrides

  • Preuve ou test des logiciels
  • Génération et sélection de tests
  • Évaluation des tests et simulation des automates hybrides
  • Adéquation des tests et profils opérationnels

Une approche de test ne peut explorer qu'un nombre limité d'états d'un modèle ou d'une spécification. Les notions de justesse d'une exécution et de conformité d'un objet (système ou modèle) se caractérisent par la définition d'une relation de conformité.

Test structurel des systèmes hybrides

Approches par trajectoires robustes

Cette génération utilise la méthode inter-entropie [21] pour optimiser les paramètres d'un processus de génération de tests ; L'objectif est de déterminer une séquence de signaux d'entrée applicable à un système hybride, telle que la trace résultante produite par le système falsifie une certaine propriété logique temporelle MTL. La notion de robustesse est définie ici comme une distance (signée) qui sépare une trace de la violation de la propriété (elle est positive si la trace vérifie la propriété, négative si elle la viole).

Test de modèles par exploration arborescente

Lors de l'exécution d'un test, les différents états visités (plus précisément, un ensemble de points résultant de l'échantillonnage des trajectoires suivies lors de l'exécution) sont listés dans l'espace des états. Cette quantité caractérise l'écart entre la proportion de points de P et la proportion de l'espace d'état capturé par la boîte.

Test fonctionnel des systèmes hybrides

Test aléatoire

Un ensemble de points de taille infinie uniformément répartis dans l’espace aura donc un écart de 0. Cependant, malgré son nom, ce n'est pas un critère d'adéquation pertinent : il ne peut comparer efficacement que des ensembles de points de même taille ; l'ajout d'un nouvel état à une zone déjà « densément » visitée entraîne une évaluation d'une dispersion plus élevée.

Limites des stratégies de génération aléatoire uniforme

De même pour les systèmes non hybrides, mais en temps réel, il existe des exemples de telles approches [36] qui utilisent la mesure de la couverture environnementale pour guider et arrêter la production si le système modèle n'est pas disponible.

Test de systèmes hybrides utilisant des algorithmes de recherche

Conclusion

Trace d’exécution et système sous test

Une piste d'exécution est donc une séquence alternée d'évolution de variables du système dans laquelle s'intercalent des actions. Contrairement à la définition du traçage hybride donnée en 2.2.9, une trace d'exécution n'est pas directement associée à une exécution connue d'un automate, dont elle serait la projection.

Compatiblité et conformité d’un système par rapport à une propriété

Intuitivement, cette définition dit qu'un système est correct si, lors de son exécution, il suit une des évolutions possibles permises par P. Not-tonshtraces(A)ensemble de traces hybrides de A et S.T rEnsemble de traces d'exécution de S projetées sur l'extérieur de A signaux.

Test de conformité et évaluabilité des propriétés en temps dense

Présentation du problème

Pour un système hybride, pour connaître une trace d'exécution tr, il s'agit de décider s'il existe une exécution de l'automate dont la trace est égale à tr. Considérons une trace hybride composée des mêmes signaux que les signaux externes de A. A est évaluable si au plus une exécution de Adont tr est que la trace existe.

Causes de non-évaluabilité dues à la non-observabilité des signaux internes

Le nombre d'états possibles d'un automate peut donc exploser, et en l'absence de restrictions sur l'expressivité de cet automate, il n'est pas possible de garantir qu'il existe une représentation finie de cet ensemble d'états (comme dans le cas où l'on intéressé par la vérification, par exemple, d'automates hybrides linéaires). Nous concluons que les automates utilisés dans le cadre du test doivent avoir une certaine forme de déterminisme : la connaissance de l'ensemble de la trace d'exécution à évaluer (y compris les entrées fournies au système et ses réactions) doit permettre de connaître l'état de l'automate (ou un état approprié). nombre d'état possible s'il y en a plus).

Test de conformité en temps discret

Difficultés introduites par la discrétisation du temps

Une question similaire à la précédente se pose au niveau de la dynamique continue de l’automate. L'inconvénient est que la valeur de réinitialisation dépend de la période d'échantillonnage et donc la propriété doit être réécrite si elle change.

Une solution au problème de l’oracle

  • Transformation de propriétés pour le test en temps discret
  • Un algorithme de vérification dynamique des propriétés hybrides
  • Discussion
  • Conclusion
  • Critères d’adéquation et besoins sous-jacents
  • Limites des approches existantes dans la prise en compte des besoins en validation 56

Nous avons vu dans le chapitre précédent que lors de la vérification dynamique d'une propriété, l'algorithme que nous proposons construit de manière itérative la séquence d'états de la propriété visitée lors d'un test. En revanche, l’espace d’état de chaque état d’un automate est infini dans le cas général.

Une mesure de couverture pour les propriétés hybrides

  • Interprétation du profil
  • Définition du critère
  • Couverture d’un ensemble d’états et d’un mode
  • Interprétation de ω comme une densité d’états visités requise au sein d’un mode . 62
  • Calcul pratique du critère

La couverture d'un mode de l'automate est définie en additionnant les couvertures de chaque état. Soit Sun un sous-ensemble de l'espace d'états d'un mode m, auquel le profil associe une fonction de densité ω.

Utilisation avancée et discussion du critère

Exclusion d’états de la mesure

Définition des conditions de distance L'ensemble des conditions couvertes par un état visité. De plus, ils ne sont pas inclus dans le calcul de leur couverture modale, selon la définition de μ′ (voir la définition d'une couverture modale en 5.2.3).

Exclusion de variables de la mesure

Par définition de distance, la distance de tout autre état à ces états d’importance nulle est également nulle ; tous les autres États les couvrent. Ainsi, les zones de l'espace étatique jugées inaccessibles ou sans importance pour la validation de la propriété peuvent être exclues du calcul de la couverture.

Rôle des variables internes et de sortie dans le profil

Ce chapitre est consacré à l’illustration et à l’application pratique de notre approche de l’exemple de système de chauffage de 2.1. Tout au long du texte, nous présentons étape par étape l'instanciation de l'exemple et comment il est exécuté dans HyATT.

Écriture de l’automate formalisant la propriété considérée

Définition de la partie discrète de l’automate

Enfin, nous discutons des résultats obtenus et des conclusions qui peuvent être tirées de la démarche. Dans notre exemple, cela correspond entre autres à l'action (ack ounack), qui est immédiatement renvoyée par le système lorsqu'il reçoit un nouveau contrat (associé à la réception d'actionnewContract) de l'environnement.

Définition de la partie numérique de l’automate

Un code personnalisé (tel que la fonction contractIsValid() dans cet exemple) peut être ajouté lorsque HyATT assemble la classe. Nous avons illustré comment les fonctions qui composent la spécification d'un automate à temps discret pouvaient lire et écrire l'état de l'automate.

Définition du profil opérationnel

  • Situation motivant l’application d’un processus de validation
  • Besoins traduits par le profil et identification des variables pertinentes
  • Identification des domaines des variables à considérer dans le profil
  • Instantiation du profil modifié pour l’estimation de la couverture
  • Aspects techniques

Ce critère permet d'évaluer la couverture de la spécification avec l'ensemble des états visités inférés par l'oracle lors de l'exécution du test. L'idée est de définir une partition de l'espace d'état pour chaque mode afin que les valeurs sur chaque élément soient légèrement différentes.

Définition de l’environnement

Modèle physique

Nous modélisons l'environnement (le bâtiment dans lequel le système de chauffage est installé, habité par les utilisateurs) comme un objet de capacité thermique constante C à température T, qui reçoit une puissance calorifique P du système de chauffage et transmet une puissance P Pertes au environnement (proportionnel à la différence entre T et T Out).

Signaux de commande envoyés au système

Aspects techniques

Dans le détail, la fonction provideValues ​​de notre classe d'interface accepte en paramètres une liste d'actions vide, un état initialement indéfini de l'automate (représenté par le même type de données que celle passée aux fonctions précisant l'automate) et la durée de l'étape de simulation qui se termine. Il écrit les informations liées aux signaux environnementaux (évolution des variables et occurrence d'actions) dans les paramètres correspondants (passés par référence) ; ces données sont ensuite envoyées à l'interface avec le système testé et enfin à l'oracle.

Intégration du système

Lors du développement du logiciel, par exemple, nous avons remarqué qu'il était possible de créer simplement un environnement composite où l'évolution des grandeurs physiques était simulée par du code écrit en C++ tandis que l'émission et les paramètres des contrats étaient produits par un modèle qui était écrit. dans LUTES [56], un formalisme dédié aux systèmes synchrones.

Dérivation du pilote de test

Compilation et exécution du programme de test

Pour créer un programme de test complet, il est nécessaire d'ajouter une fonction principale qui instancie et exécute le test (comme celle illustrée dans la Figure A.7) et de compiler tous les fichiers générés précédemment en les liant avec le code du test. HyATT. Les figures A.5 et A.6 en annexe résument l'ensemble du processus de spécification et de compilation en présentant les fichiers et les opérations impliqués dans chaque phase.

Correction des erreurs

Pour donner un ordre de grandeur sur les performances de l'application (pas particulièrement optimisée pour les performances jusqu'à présent), le programme – lui-même séquentiel – exécute 300 000 itérations de la boucle de test par seconde sur une machine à base de Core 2 Duo à 2 GHz2. Dans ce cas, nous avons dû rechercher manuellement certaines de ces informations à l’aide d’un débogueur, ce qui prend inutilement du temps et n’est pas adapté à un usage général.

Étude empirique de l’influence de la méthode de génération de tests utilisée sur la pro-

  • Stratégies de génération utilisées
  • Comparaison des stratégies
  • Une approche de test fonctionnel des systèmes hybrides
  • Évaluabilité des propriétés en temps discret
  • Critère d’adéquation
  • Qualités originales du critère
  • Outil d’application HyATT

Les courbes d'évolution de couverture que nous présentons sont la moyenne des 100 runs que nous avons effectués pour chaque méthode. Cette fois, ce n’est pas la densité du modèle temporel qui pose problème, mais celle de l’espace d’états de la spécification.

Perspectives

Validation de l’approche sur des systèmes à configuration dynamique

Ajout de restrictions pour assurer des propriétés du formalisme

Génération de tests

Développements de l’outil HyATT

Propriété de sûreté hybride spécifiant le système de contrôle de l’eau

Une fois l'exactitude d'une trace observée établie, la ou les réalisations possibles du système correspondant à cette trace sont utilisées pour estimer l'adéquation des tests, c'est-à-dire la qualité de l'exploration par le processus de test de l'espace d'états. Pour évaluer la faisabilité de ce changement, le système utilise la connaissance de l'environnement, qui permet de prédire sa capacité à influencer la température dans la maison.

Scénario d’exemple pour le système de chauffage anticipatif

Ainsi, comme illustré dans le cas 5 de la figure 2.1, il adopte une nouvelle stratégie qui consiste à maintenir la consigne actuelle (environ 25◦C), puis à la diminuer pour qu'elle revienne à 20◦C après 600 unités de temps au total. Nous illustrons les différentes situations possibles dans la figure 2.2 ; Cette figure représente une éventuelle évolution conjointe de la température ambiante et de la température de consigne au cours du temps.

Traitement de la température de consigne par le système de chauffage

Chaque ellipse définit un ensemble de trajectoires associées à un mode de fonctionnalité. Nous avons expliqué que la valeur de la variable loc, qui représente le mode de fonctionnement de l'automate, restait constante au cours du temps au sein d'une même trajectoire.

Automate formalisant la propriété de sûreté conductrice

Nous pouvons expliquer ce deuxième nom maintenant que nous avons présenté la définition du mode de couverture. 6.7 – Comptabilisation des États visités pour l'évaluation de la couverture. couverture estimée que nous avons suggérée en 5.2.6.

Construction d’un graphe abstrait dans le cadre d’une technique d’abstraction de prédicat. 28

Algorithme d’exploration de l’espace d’états RRT

Exemple de calcul d’une couverture au sens d’Esposito et al

La couverture totale est alors la moyenne des couvertures de chaque point de la grille de référence (voir Figure 3.4). Cette mesure de couverture présente l'avantage de fournir un critère d'arrêt immédiat : si la couverture atteint zéro, tous les points de la grille de référence ont été « testés », au sens où un point proche a été visité.

Deux jeux de test présentant une couverture de 0.5 au sens d’Esposito

De plus, la couverture peut être calculée localement (sur un sous-ensemble du réseau) pour identifier les zones où la couverture est bonne ou mauvaise. Par ailleurs, l’indicateur statistique utilisé (moyenne) ne fournit pas d’informations utiles sur le nombre ou la répartition des pays visités lors du test : il peut également traiter des ensembles de tests dont la répartition peut être très différente, notamment en termes de dispersion.

Exemple de calcul d’une discrépance locale

Une trace d'exécution tr S est correcte par rapport à P s'il existe une exécution A dont la trace hybride h est égale à la projection de tr sur les signaux externes de A. Cependant, pour que la procédure de test que nous proposons soit réalisable, cette trace doit être unique pour une trace d'exécution donnée.

Ex. d’automate spécifiant la consommation d’un robot collecteur d’échantillons

Cet exemple montre que le caractère interne de certaines variables peut rendre impossible la reconnaissance de l'état de l'automate à partir d'une trace. Ensuite, nous nous intéressons à la caractérisation des automates pour lesquels on peut déterminer un unique état possible à partir d'une trace ; En fait, ce sont ces éléments que nous proposerons de prendre en compte dans le prochain chapitre lors du calcul de l’adéquation des ensembles de test.

Un autre exemple de problème lié au test en temps discret

Un problème de traduction de propriété du temps continu vers le temps discret

Pour chaque observation, l’algorithme calcule d’abord l’évolution continue de l’état interne sur la période écoulée. Ainsi, les traces générées par l’approche proposée sont correctes par construction, mais la question de l’appariement de toute trace ne se pose pas.

Composition d’un profil opérationnel hybride

Nous avons mentionné précédemment qu'un état appartenant à un automate hybride est couvert s'il possède un état visité dans un voisinage quantifié par des données de profil opérationnel. Cette grandeur, que nous utilisons dans la définition de la couverture d'un état pour pondérer le calcul de l'espace d'état couvert proposé, correspond dans le cas général à la densité minimale de points nécessaire pour couvrir l'espace.

Illustration de la notion de densité d’états requise

Ainsi, si tous les états de tous les automates d'une spécification sont couverts, la couverture de chaque mode sera égale à 1, par conséquent les couvertures de chaque automate ainsi que celles de la spécification vaudront 1 (en raison des contraintes qui est imposé sur les coefficients de profil et5.1.3). Nous montrerons ici qu'il est possible d'obtenir une estimation conservatrice de la mesure en évaluant les couvertures locales sur les états d'un réseau fini extrait de S.

Intuition fondatrice du théorème d’approximation de la mesure

Les conditions sur α et β limitent l'espacement de la grille G dont les points serviront à calculer la couverture approximative et la valeur du poids auxiliaire ω' qui détermine cette métrique. De plus, une valeur élevée de β correspond à un poids auxiliaire ω′ modéré, ce qui augmente la valeur de la couverture estimée et améliore la qualité de l’estimation.

Influence des paramètres de l’approximation

Approximation du profil pour les calculs de couverture

Cette application pratique est implémentée à l'aide de HyATT (pour Hybrid Automata Testing Tool), que nous avons développé au cours des travaux. HyATT stocke cette partie de la spécification sous la forme d'un fichier XML (illustré dans la figure A.2 en annexe).

Validateur d’état initial pour le mode waitContract

La partie principale de cette fonction a été générée automatiquement par HyATT à partir de la spécification discrète. Les macros auto-générées (READ, WRITE et KEEP) fournissent un accès en lecture et/ou en écriture aux variables d'état.

Extrait de la partie numérique de la définition d’un automate, spécifiant une garde

Des commentaires sont insérés automatiquement pour informer l'utilisateur sur la nature de cette fonction (ici il s'agit d'une garde), ainsi que ses paramètres (états liés à son nom, action de saisie possible). Le nom de la fonction est généré automatiquement, ainsi que le code (non présent sur cette capture d'écran) qui la connecte au modèle d'automate utilisé par l'oracle lors de l'exécution des tests.

Réinitialisation d’une partie des variables lors d’une réinitalisation du mode f ollowRamp

Évolution continue des variables internes de l’automate

Type de faute motivant la création du profil

Nous supposons que, selon notre connaissance du système, la puissance produite par le système n'est pas corrélée à l'apparition d'erreurs ; il n'est donc pas utile d'inclure P Out dans le profil. Nous allons maintenant quantifier l'importance que le profil associe à chaque état dans le mode ollowRamp via la définition d'une fonction d'importance ω associée à cet état.

Profil opérationnel exact utilisé dans l’exemple du système de chauffage

Les éléments de partition que l'on peut décrire sont des polyèdres convexes, définis comme l'intersection de l'espace d'états du mode considéré avec un ensemble de demi-espaces, délimités par des hyperplans (l'utilisateur fournit les coefficients des équations linéaires les caractérisant). hyperplans). La constante 1/β qualifie le rapport qui sera appliqué pour l'estimation de la couverture entre ω et ω′ (et détermine donc le pas des grilles qui seront instanciées, comme discuté en 5.2.6).

Comptabilisation des états visités pour l’évaluation de la couverture

6.9 – Evolution de la couverture en fonction du nombre d'itérations pour les quatre méthodes de génération utilisées. Le critère de fitness que nous proposons est monotone, c'est-à-dire que l'ajout d'un nouvel état visité n'entraîne jamais de diminution de masse.

Modèle thermique d’évolution de la température

Évolution de la couverture en fonction du nombre d’itérations pour les quatre méthodes

En échantillonnant aléatoirement ses cibles parmi celles qui n'ont pas encore été atteintes, M3 acquiert des caractéristiques de localité similaires à celles d'une marche aléatoire, dans la mesure où la stratégie peut revisiter une région de l'espace déjà parcourue pour atteindre un objectif inachevé. En conclusion, c'est la méthode de génération de tests 4 qui produit les meilleurs résultats en termes de couverture de profil car elle bénéficie de plusieurs avantages par rapport aux autres.

Évolution de la couverture en fonction du nombre d’itérations pour M3 et M4

Lors de l'évaluation des performances du système testé, l'algorithme mis en œuvre par l'oracle déduit de la spécification (c'est-à-dire des automates hybrides qui formalisent les propriétés) la séquence d'états visités. Notre algorithme d'évaluation de couverture évalue la couverture d'un nombre fini d'états extraits de l'espace d'état des fonctionnalités, que nous appellerons G, avec un autre ensemble T d'états, qui sont les états visités lors du test, tels que déterminés par l'oracle.

Édition de la partie discrète de la définition d’un automate

In Marco Bernardo and Flavio Corradini, editors, SFM, volume 3185 of Lecture Notes in Computer Science, pages 200–236. In Magnus Egerstedt and Bud Mishra, editors, HSCC, volume 4981 of Lecture Notes in Computer Science, pages 215–228.

Fichier XML spécifiant la partie discrète de l’automate pour notre exemple conducteur . 97

Fichiers intermédiaires et finals générés pour la partie continue de la spécification

Classe décrivant la partie continue de la spécification pour les fonctions de génération de code HyATT.

Création ou importation de propriétés dans HyATT

Vérification de la conformité Évaluation de la couverture Algorithme de boucle de test Pièces spécifiques à l'application : Interface SUT.

Composition et assemblage du programme de test

Rédaction d’une fonction principale chargée d’instancier et d’exécuter le test

In Ed Brinksma and Kim Larsen, editors, Computer-Aided Verification, Volume 2404 Lecture Notes in Computer Science, pages 746-770. In Manfred Morari and Lothar Thiele, editors, Hybrid Systems: Computation and Control, volume 3414 Lecture Notes in Computer Science, pages 258–273.

Referências

Documentos relacionados

Rappels algorithmiques Afin de réduire l'espace mémoire et les temps de calcul nécessaires au système nous avons proposé dans le chapitre III de réduire la taille de l'image pour les