Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les méthodes formelles fondées sur les paradigmes synchrones et asynchrones Christian Brunette
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les systèmes embarqués temps réel Télécommunications, Transports (automobile, avion, train) Contrôle aérien, Régulation et alarmes des centrales Contrôle de processus industriels… Une application temps réel met en œuvre des systèmes informatiques ou informatisés coopérant avec l’homme et destinés à la perception, l’observation, l’aide à la décision et la conduite de procédés dynamiques.
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les systèmes embarqués temps réel Concurrence (parallélisme) Caractère critique (sûreté) Approche rigoureuse Permettre des vérifications formelles Certification Contraintes temporelles Période des stimuli (cadence), le procédé ne peut pas attendre Temps de réponse (latence) Déterminisme Deux exécutions d’un programme avec mêmes entrées: mêmes résultats 2 paradigmes: synchrones - asycnhrones
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Le paradigme asynchrone Plusieurs processus (ou tâches, agents, entités) S’exécutant de façon concurrente (parallèle) À différentes vitesses (pas d’horloges communes) Utilisant des communications par message Sans mémoire commune (excepté celle modélisée explicitement) Avec des temps de latence non spécifiés sur les communications P2 P3 P1P4P5
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Le paradigme synchrone But : faciliter les raisonnements temporels Principe de simultanéité au lieu de l’entrelacement : l’indéterminisme dû à l’entrelacement disparaît Temps physique abstrait sur un temps logique discret Les calculs et les communications prennent un temps logique nul Seulement une notion d’ordre entre les événements Simultanéité ou précédence Résoudre les contraintes de synchronisation Méthodologie de développement: Spécification de l’application indépendamment de toute architecture et validation Implantation sur une architecture particulière et validation (durée)
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Intégrer des méthodes formelles pour le temps-réel embarqué Formalismes spécifiques pour le temps réel UML MARTE AADL Modélisation synchrone et asynchrone Outils fondés sur des modèles de calcul formels CADP Polychrony SynDEx TINA … EMF TopcasedAPI X Editeur X GMFGEF UML2 > ATL EMF Outil utilisateur Outils génériques Outils d’ingénierie Outil de vérification Traducteur Méta-modèle pivot 1 2 Modèle utilisateur 3 Modèle pivot
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les Formalismes spécifiques de la plateforme Les outils synchrones Polychrony Gaspard 2 SynDEx Les outils asynchrones FIACRE CADP Tina BIP
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Polychrony Analyse Transformations Distributions Optimisations Notations haut niveau Vérification Génération de code C, C++, Java, SynDEx, Signal, Lustre Sigali Signal, SME SystemC,C,C++,… (gcc) IRISA/INRIA Rennes Bretagne Atlantique – équipe ESPRESSO
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Polychrony Formalismes synchrones multi-horloges Ensemble de services : un service peut être appliqué selon l’objectif Simulation Vérification formelle Code embarqué Simulation d’architecture Spécification matérielle… 5 plateformes supportées PC/Linux & Windows, Sparc/Solaris, PowerPC & Intel/MacOS X Bibliothèque de modèle avionique Librairie APEX-ARINC Version Commerciale RT-Builder (Sildex) de TNI-Software
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC SME Méta-modèle de Polychrony Ensemble de plug-ins: - Editeur réflexif - Modeleur graphique (TopCased) - Editeur de scénarios de « compilations » - Connexion avec Polychrony Inclus depuis OpenEmbeDD 0.2.0
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les Formalismes spécifiques de la plateforme Les outils synchrones Polychrony Gaspard 2 SynDEx Les outils asynchrones FIACRE CADP Tina BIP
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Gaspard 2 INRIA Futurs – équipe DaRT Environnement de développement utilisant l’approche IDM pour modéliser, simuler, tester et générer le code pour des applications (SoC) et des architectures matérielles. Calculs parallèles intensifs Ensemble de plug-ins Eclipse: Gaspard Core: noyau logiciel + exécution des chaînes de transformations MoMoTE MoCodE
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Gaspard 2: Architecture
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les Formalismes spécifiques de la plateforme Les outils synchrones Polychrony Gaspard 2 SynDEx Les outils asynchrones FIACRE CADP Tina BIP
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC SynDEx INRIA Rocquencourt – équipe AOSTE Spécifier un algorithme (application), une architecture matérielle, des associations entre des éléments de l’algorithme et de l’architecture (durées, occupation mémoire, surface, etc) Explorer manuellement ou/et automatiquement les implantations possibles d’un algorithme sur une architecture matérielle, en exploitant les associations avec des heuristiques d’optimisation de distribution et d’ordonnancement. Génère un macro-code indépendant de l’architecture macro-processé avec les noyaux d’exécutif correspondant à l’architecture => code exécutable en temps réel
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC SynDEx Développé pour OpenEmbeDD: – Une API-SynDEx-EMF généré par EMF (éditeur réflexif) – Un modeleur graphique SynDEx (TopCased) – Une transformation d'un modèle SynDEx vers le format textuel SynDEx Contraintes Temps réel Contraintes Temps réel Adéquation Distribution/Ordonnancement Heuristiques + Générateur de code Adéquation Distribution/Ordonnancement Heuristiques + Générateur de code Algorithme Architecture Performances Calculées Performances Calculées Macro code + Noyaux d’exécutifs dépendant de l’architecture matérielle Code distribué exécutable en temps réel
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les Formalismes spécifiques de la plateforme Les outils synchrones Polychrony Gaspard 2 SynDEx Les outils asynchrones FIACRE CADP Tina BIP
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Langage Pivot Asynchrone Fiacre (Meta)-Modeleur Langages de Modélisation Editeurs Transformateurs Compilateurs Composition parallèle asynchrone de processus séquentiels Langage formel issu de V- Cotre et NTIF Graphe d'états à transitions étiquetées par : – des actions de communications – ou des délais temporels... AADLSDL Fiacre - langage pivot TinaCADP... Compilation Transformation de modèles UML En cours
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Processus Séquentiel Processus paramétré par des ports de communication typés des variables partagées typées des valeurs typées Exemple : process P [in p:nat] (read X:nat, Z:int) Processus défini par un ensemble d'états (dont un état initial) des transitions structurées entre ces états manipulant paramètres et variables locales
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Composition, Priorités et Contraintes Temporelles Composition parallèle hiérarchique d'instances de processus Définition de connexions entre les ports des processus Délais associés aux interactions locales Priorités entre interactions
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les Formalismes spécifiques de la plateforme Les outils synchrones Polychrony Gaspard 2 SynDEx Les outils asynchrones FIACRE CADP Tina BIP
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC CADP INRIA Rhône Alpes – équipe VASY Boîte à outils pour vérifier les systèmes asynchrones Architecture modulaire et extensible Des composants logiciels génériques pour la vérification Principales fonctionnalités: Plusieurs langages d’entrées Simulation pas à pas Génération de code C – prototypage rapide Vérification Génération de tests Evaluation de performance
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Quelques chiffres Une panoplie d'outils complète 38 outils, 3 librairies 4 plateformes supportées PC/Linux & Windows, Sparc/Solaris, PowerPC/MacOS X Diffusion internationale Accords sur licence signés avec 358 organisations Plusieurs applications 88 cas d’études réalisés avec CADP 24 outils issus de la recherche connectés à CADP 28 cours universitaires basés sur CADP depuis 2002
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les Formalismes spécifiques de la plateforme Les outils synchrones Polychrony Gaspard 2 SynDEx Les outils asynchrones FIACRE CADP Tina BIP
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Tina (Time Petri Net Analyser) Réalisé au LAAS-IRIT Boite à outils Tina ND: Editeur Simulateur Compilateurs: Fiacre,… TINA: Explorateur SELT: Model-checker STRUCT: A. Structurelle PLAN: A. Chemins KTZIO: Convertisseur Compresseur NDRIO : Convertisseur Composeur
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Expression et Analyse Réseaux de Petri + Données (Fiacre)+ Temps + Priorités Expression du comportement (concurrence, données) Expression des contraintes temporelles (Réseaux de Petri Temporels + Priorités) Expression des mécanismes de Préemption/Reprise (Réseaux de Petri à Chronomètres) Classes de Propriétés analysées Générales : blocage, borné, invariants, quasi-vivacité,... Spécifiques: Logiques temporelles (linéaires, arborescentes), bisimulation Vérification sur des Abstractions Représentation finie préservant certaines classes de propriétés
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les Formalismes spécifiques de la plateforme Les outils synchrones Polychrony Gaspard 2 SynDEx Les outils asynchrones FIACRE CADP Tina BIP
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC BIP (Behavior, Interaction, Priority) Verimag But: construire des systèmes temps réel à partir de composants hétérogènes 3 sources d’hétérogénéité différentes: interaction, exécution et abstraction. tick1tick2tick3 out1in2in3
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Les composants dans le contexte global UML (profile) Scicos (discret) AADL Spécification & propriétés Analyse BIP/IF (exploration de l’espace d’état, conditions suffisantes pour éviter les inter-blocages, …) BIP VM BIP (simulation, exécution) Réseaux de Pétri + annotations Réseaux de files d’attentes SES Workbench (Evaluation de performance) Transformation de modèle avec ATL transfo existante transfo prévue Génération de code (Think)
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Utilisation combinée d’outils Pour un profile UML (sous-ensemble de MARTE étendu): Transformation en un réseau de files d’attentes, Analyse de performance (par simulation) Modèles analysés en BIP: représentent des modèles ou des problèmes d’analyse, compositions de composants hétérogènes obtenus par transformations de différentes sources: Exécution de modèles (exécution séquentielle ou distribuée) Analyse par simulation exhaustive (correction = absence d’états erreurs) Analyse abstraite par conditions suffisantes Génération de code exécutable pour Think
Réalisé avec le soutien de 5, 6 et 7 novembre 2007 Grand Colloque STIC Conclusions Méta-modèles réalisés Transformations de modèles entre les outils (en cours) Transformations de modèles entre les outils et MARTE (en cours) OpenEmbeDD (stable) Polychrony Les autres technologies devraient prochainement être intégrées