• Aucun résultat trouvé

Pour clarifier la formalisation des propriétés à valeurs de type temps, nous considérons la description AADL du thread test-etat-moteur (figure

ABAReL et les Propriétés AADL Sommaire

Exemple 6. Pour clarifier la formalisation des propriétés à valeurs de type temps, nous considérons la description AADL du thread test-etat-moteur (figure

5.7) avec la déclaration des propriétés Period et Compute-Execution-Time assignées respectivement aux valeurs 28 ms et 12 ms. Ce thread est connecté au composant capteur-moteur de catégorie Device contenant la déclaration de la propriété Latency assignée à la valeur 10 ms.

La spécification des propriétés d’exécution temporelles capture des valeurs de chaque propriété pour les associer aux horloges correspondantes dans la spécification du thread. La propriété Latency est spécifiée par une transmission d’un message où le temps de transmission correspond à la valeur de cette propriété.

Description AADL d’une configuration d’un thread Formalisation des valeurs de type temps

device capteur-moteur

features

etat_moteur: out event port;

flows

flot1: flow source etat_moteur { Latency => 10 ms;

};

end capteur-moteur;

thread test_etat_moteur

features

etat_abs1: out data port; etat_moteur: in event port;

end test_etat_moteur;

thread implementation test-etat-moteur.Impl1

properties Period => 28 ms; Compute-Execution-Time => 12 ms ; end test-etat-moteur.Impl1; ******Propriété: Latency****** dly (from   capteur‐moteur to test‐ etat‐moteur transfer event1, 10)   ***Composant source du flux*** <capteur‐moteur| Category :  Device , OPort :  etat‐moteur >  **Composant destination du flux** <test‐etat‐moteur| Category :  thread , IPort : etat‐moteur,  OPort:  etat‐abs1,   ...  *****Propriétés temporelles***** Period :  28,  Clock‐P: 0,    Execution‐Time :  12 , Clock‐C : 0    … > 

Tableau 5.1: Exemple de formalisation des propriétés à valeur de type temps

Notre approche d’extension de l’annexe comportementale ABAReL pour la prise en charge des propriétés, offre une solution générique à base de théories de réécriture orientées objet temps réel pour formaliser la sémantique de n’importe quel type de propriété. Notre étude a porté sur les propriétés qui présentent des valeurs de type réel pour contraindre les paramètres d’exécution des threads, mais nous pouvons élargir l’éventail de ces propriétés à celles qui présentent des valeurs d’un autre type, il suffit de prévoir leur cadre sémantique (théorie équationnelle) dans la théorie de réécriture modélisant le(s) composant(s) comportant ces déclarations de propriétés. En effet, les concepts de la logique de réécriture ont permis de décrire naturellement cette sémantique d’exécution en offrant un cadre sémantique formel pour l’analyse du comportement et la vérification de ces propriétés.

5.5 Analyse de propriétés par ABAReL

La prise en charge des propriétés AADL par ABAReL a permis leur formalisation en vue d’entreprendre leur analyse et par conséquent l’analyse du comportement des

composants auxquelles sont liées. Dans cette architecture, nous nous sommes intéressés, dans le cadre de ce travail, à l’analyse du comportement des composants threads AADL en considérant d’une part, les spécifications des propriétés d’exécution temporelle (Period et Compute_Execution_Time), et autre part, les latences de flux de transmission de données et/ou d’évènements entre les threads en exécution. Ainsi, l’exécution concurrente de plusieurs threads et l’effet des interactions entre les threads sont définis dans cette extension d’ABAReL.

Ces propriétés décrivant les conditions d’exécution d’un thread dans le temps sont formalisées, dans ABAReL, par des horloges permettant de superviser son comportement tout en considérant l’écoulement de sa période et de son temps d’exécution. La simulation d’un tel comportement permet de suivre les étapes d’exécution du thread tout en considérant ses états internes ou sous-états où le thread peut être prêt pour s’exécuter (sous-état Ready), en exécution (sous-état Running) ou bloqué sur l’accès d’une ressource (sous-état Awaiting-Resource). L’analyse de la propriété Compute_Execution_Time doit considérer le suivi de l’écoulement du temps, supervisé par l’horloge Clock-C, sur le thread en exécution (sous-état Running). L’analyse de la propriété Period, supervisée par l’horloge Clock-P, considère le thread dans tous les sous-états de l’état Compute.

L’implémentation du modèle mathématique d’ABAReL sous RT-Maude ouvre la voie pour l’analyse des latences de flux dans une architecture AADL d’un système embarqué temps réel en suivant les étapes de transmission d’un message. En particulier, nous avons exploité respectivement les commandes trew (Timed rewrite) ) pour simuler un comportement possible du système jusqu’à une durée de temps bien déterminée, la commande reduce pour réduire un terme par application des équations et des axiomes d’adhésion (membership) dans le module temporisé.

5.6 Conclusion

Dans ce chapitre, nous avons d’abord montré l’importance et la diversité des propriétés dans la description des entités architecturale AADL. Nous avons ensuite présenté le rôle que peut jouer chaque classe de propriété dans la détermination du

comportement des composants. Nous nous sommes concentrés sur le comportement des composants threads et nous avons considéré les propriétés à valeurs de type temps, à savoir les propriétés d’exécution temporelles et les latences de flux. Cependant, la déclaration de ces propriétés diffère d’une description architecturale à une autre. Ces propriétés sont soit déclarées et exploitées directement au niveau du même composant, soit déclarées dans la description d’un composant pour être exploitées indirectement à un autre niveau de la hiérarchie de ce composant. L’assignation de valeurs, dans ce cas, se fait implicitement par héritage ou explicitement par propagation.

A ce propos, nous avons montré comment étendre le modèle mathématique de l’annexe comportementale ABAReL, pour la spécification formelle de propriétés AADL afin de pouvoir les analyser lors de l’exécution des entités architecturales les contenant. Nous avons illustré notre approche de formalisation sur trois cas de propriétés à valeurs de type Time, déclarées souvent dans des composants de catégorie thread. Ainsi, nous avons associé à chaque thread deux horloges pour spécifier les propriétés Period et Compute-Execution-Time. Les latences de flux sont modélisées par le passage de messages entre deux threads si une connexion est préalablement déclarée avec un délai de transmission d’un message capturé à partir de la valeur assignée à la latence du flux (Propriété Latency). La prise en charge des valeurs assignées à ces propriétés est faite lors de l’exécution des threads pour pouvoir les analyser. La démonstration de quelques propriétés, en utilisant l’outil RT-Maude et son model checker, illustrée à travers une étude de cas, sera présentée dans le chapitre suivant.

Chapitre 6

Implémentation d’ABAReL sous