Upload
ksena
View
22
Download
0
Embed Size (px)
DESCRIPTION
Validation de conceptions UML de logiciels embarqués : emprunts aux approches formelles. Alain Le Guennec Jean-Marc Jézéquel Action Triskell. [email protected] -- http://www.irisa.fr/triskell. UML : l’évolution en cours. Popularité croissante dans l’industrie - PowerPoint PPT Presentation
Citation preview
Validation de conceptions UML de logiciels embarqués :
emprunts aux approches formelles
Alain Le Guennec
Jean-Marc Jézéquel
Action Triskell
[email protected] -- 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
Schéma d’utilisation
Problem
Validation code
Test Cases
Test Results
TGV Graph API
UML Analysis Model
Implementation
UML Design ModelValidation Framework UMLAUT/Simulator
Validation ResultsSimulation
Model Checking
Test purpose
Intégration de la validationdans un cycle de vie OO
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
a:A b:B c:C
mb()
mc()
ma(b)
return c
a:A b:B
c:Cc
1:mb()
2:return c <<parameter>>
3:mc()
This association is a consequence ofthe dataflow coming as a result of the call to mb().But what kind of association is this?It is neither <<global>>, <<parameter>> nor <<local>>.Is it derived from the other two associations?
This association has a parameter as one of its association-end.But how exactly does the association-end relate tothe corresponding formal parameter of the represented operation?Is it just by name matching, or is a meta-association missing somewhere?
b:B
call to mb()
H
call to mc()
c:C
H
This ObjectFlowState stands for the formal parameter'b' of the represented operation.The "parameter" meta-association of thisObjectFlowState hence points to the parameter 'b'.
This ObjectFlowState is the result of the call to mb().Hence its "parameter" meta-association points tothe 'result' parameter of the mb operation.It subsequently serves as the target for the call to mc().
ma
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 routines
ainsi 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 états
devraient 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
TGV
UMLAUTSimulateur
TGV
UMLAUTEditeur d’objectifs
La boîte à outils UMLAUT
Commercial tool
Commercial tool
XMI /MDL
www.irisa.fr/UMLAUT
1 *
UML metamodel
Idle
Active
start stop
Java/Eiffel/C(++)
...Outil commercial GUI (Applet)
UMLAUTProtocol *
1
Application of
transformationrules
Semi-automatic or manual
Impl.
Contracts
Tests
Validation framework
Validation engines
UML/AS
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