170 likes | 285 Views
Validation de conceptions UML de logiciels embarqués : emprunts aux approches formelles. Alain Le Guennec Jean-Marc Jézéquel Action Triskell. jezequel@irisa.fr -- http://www.irisa.fr/triskell. UML : l’évolution en cours. Popularité croissante dans l’industrie
E N D
Validation de conceptions UML de logiciels embarqués :emprunts aux approches formelles Alain Le Guennec Jean-Marc Jézéquel Action Triskell jezequel@irisa.fr -- http://www.irisa.fr/triskell
UML : l’évolution en cours • Popularité croissante dans l’industrie • Support du développement OO pour A&D • Standard OMG, grand choix d’outils • Interopérabilité à terme, via le format XMI • Efforts soutenus de formalisation • Groupes pUML et « Action-Semantics » • Convergence des formalismes SDL et UML • SDL’2000, « profile » UML-RT
L’approche Triskell • Construction fiable et efficace d’applications « télécom » par composants • Permettre l’utilisation de techniques formelles avec UML • Model checker basé sur la logique XTL • Simulation interactive ou intensive • Génération de tests (outil TGV) • Si tu ne vas pas à Lagardère…
Dans les objectifs de Triskell • Donner une (famille de) sémantique à UML • préciser l’existant • agir au sein de l ’OMG sur le futur : • Action Semantics, UML-RT • Adapter des techniques formelles existantes • Identifier les problèmes spécifiques à UML • Prouver la faisabilité avec un prototype • UMLAUT
Intégration de la validation dans un cycle de vie OO Simulation Validation Results Model Checking Validation code UML Analysis Model Validation Framework UMLAUT/Simulator UML Design Model Implementation Test Cases TGV Graph API Test Results Test purpose Schéma d’utilisation Problem
Le simulateur UMLAUT • Compilation de la spécification • Objectif : « tisser » entre eux les différents aspects sémantiques d’un modèle UML en les projetant sur le sous-ensemble {statique + AS} • Stockage et comparaison d’états • Etat local pour chaque objet • Topologie du réseau d’objets • Autorise la création dynamique d’objets
Cohérence entre diagrammes :Implémentation d’une opération ma(b:B) / (b->mb())->mc(); A in S1 A in S2
Sémantique des diagrammes d’état • La notion de classe-état permetd’intégrer la notion d’état au typage • L’effet d’une transition associedes actions aux opérations
Sémantique dynamique (1) • Sémantique de la concurrence : entrelacements • fondée sur les Labelled Transition Systems • Evolutions du système -> transitions du LTS • Evolutions dues aux actions exécutées • spontanément par les objets actifs dans le système • en réponse aux stimuli provenant de l’environnement
Sémantique dynamique (2) • Evolutions du système spécifiées à l’aide d’un langage d’actions • pas encore de standard (« Action Semantics » WG) • remplacé par des fragments de programmes • nécessite des hypothèses sur l’atomicité • ceci permet de transposer sans les analyserles fragments de code représentant des actions directement depuis le domaine syntaxique vers le domaine sémantique
Vérification de propriétés • Cas des assertions OCL classiques • Les pré et post-conditions des routinesainsi que les invariants de classessont compilés en transitions spéciales • Cas des propriétés exprimées à l’aided’une logique temporelle • XTL est trop éloignée de UML/OCL • Les propositions portant sur les étatsdevraient pouvoir être écrites en OCL
Génération de tests • Repose sur le produit synchrone entre la spécification et un automate objectif de test • Un objectif de test permet de construire des cas de test en guidant l’exploration de la spécification selon certains critères • Objectifs et cas de test sont représentés en UML par des collaborations / interactions • Limitation : données traitées par énumération...
Objectifs de test • D’un Use-Case UML au IO/LTS pour TGV
Cas de test UMLAUT Simulateur TGV TGV UMLAUT Editeur d’objectifs
Semi-automatic or manual UML/AS UML metamodel Impl. Tests Commercial tool 1 * Contracts XMI / MDL Commercial tool Application of transformation rules ... * Validation framework Java/Eiffel/C(++) GUI (Applet) 1 Outil commercial UMLAUT Protocol Validation engines La boîte à outils UMLAUT www.irisa.fr/UMLAUT
Travaux de recherche • Conception par aspects, patterns & frameworks • UMLAUT=weaver UML, ASL, UMLAUT en UML • Composant Contractualisable • Générés par UMLAUT pour e.g. EJB, CCM, .NET • Composants auto-testables & analyse mutations • process, qualification des tests, mesures de fiabilité • Synthèse de tests à partir d’UML • combinant analyse statique (données) et dynamique
Informations et contacts • Action Triskell • http://www.irisa.fr/triskell • Outil UMLAUT • http://www.irisa.fr/UMLAUT • Fonctionnalités : • Validation et génération de tests • Transformations de modèles UML • Interpréteur/Compilateur OCL/AS (niveaux modèle et méta) • Modélisation et utilisation de design patterns