« Validation Formelle de Systèmes Interactifs »
description
Transcript of « Validation Formelle de Systèmes Interactifs »
« Validation Formelle de Systèmes Interactifs »
Alexandre Cortier (ONERA) Bruno d’Ausbourg (ONERA)
Yamine Aït-Ameur (LISI-ENSMA)
Sommaire
- Introduction
- Approche Proposée
- Extraction d'un modèle B
- Validation Formelle
- Conclusions
IHM = Domaine d'étude de l' Interaction Homme-Machine
✗Système Interactif✗Utilisateur
IU NF
I - Introduction : Terminologie
I - Introduction : Généralités
Complexification des interfaces :
● Type d'interaction : les modalités
-Windows,Icons, Menus, Pointer,
- Manipulation directe, Voie, Toucher
● Applications plus volumineuses et critiques :
- Contrôle de centrale, Cockpit de l'A380
Développement coûteux:
● IHM = 80% de l'effort global de développement
● Vérification = Tests (50% du coût de développement)
I - Introduction : GénéralitésI - Introduction : Généralités
Pragmatique :
Peu de méthodologies de conception et de validation pourles IU qualifiées de critiques…(utilisation d’outils graphiques)
Conséquence :
• code peu lisible et difficile à entretenir • comportement final de l’application difficile à prévoir
Proposition :
Explorer la mise en œuvre de nouvelles méthodes pour assurer la
CORRECTION de la partie interactive du système.
I - Introduction : ObjectifsI - Introduction :
Code Source
JAVA
Modèle de Tâche
CTT (Concur Task Tree)
Spécification Abstraitedu comportement de l'IHM.
Comportement réel de l'application
L'implémentation respecte t-elle la spécification abstraite ?
Validation Formelle
I - Introduction : Modèle de Tâche CTT
CTT :
● Structure hiérarchique de tâches
- Différents types de tâche
- Opérateurs temporels
● Définition en compréhension
I - Introduction : Méthode B-Event MODEL
NameMVARIABLESx1,x2,...INVARIANTp(x1),p(x2),...INITIALISATION…EVENTS
evt_1= SELECT GTHEN SEND;
evt_2= ANY xWHERE p(x)THEN S2END;
.....END
B-event :
- Adapté à la modélisation des Systèmesréactifs
- Notion de raffinement
- Obligations de Preuve
I - Introduction : Exemple « jouet »
I - Introduction : Exemple « jouet »
JVMTraitemen
t
listenerpublic void actionPerformed(ActionEvent e) { output.setVisible(true); if (e.getSource()==EF){ EF.setEnabled(false); FE.setEnabled(true); ...} else { FE.setEnabled(false); EF.setEnabled(true); ...} output.setText(result);}}
Modification durendu de l’IU
Méthode
Click !
événement
II - Approche Proposée
Hypothèse de travail :
- Prise en compte d'un sous-ensemble de Java
- Pas de contraintes de synchronisation entre thread
- Pas de création dynamique d'instances de widget pendant l'exécution
II - Approche Proposée
Vue globale de l'approche proposée :
III - Extraction d'un modèle B-Event
Extraire un modèle formel de l’application par Analyse Statique du code source.
Ce modèle capture l’aspect comportemental de l’interface :
- Abstraction totale du noyau fonctionnel :nécessite une bonne séparation du NF et de l’IU…
- Extraction des éléments pertinents : widgets, listeners,méthodes listeners…
Notamment :
Clause INITIALIZATION : méthode main()Clause EVENTS : méthodes listeners ActionPerformed, KeyPressed
III - Extraction d'un modèle B-Event
Techniques utilisées pour l'extraction du modèle comportemental :
Intervention de l'opérateur
III - Extraction d'un modèle B-Event
Modélisation de la bibliothèque Swing :
MODEL BSwingSETS
WIDGETS, LISTENERS,EVENT_TYPE={ActionPerformed, KeyPressed, KeyReleased,...}
VARIABLES
widgets, listeners, Jbutton, Jtextfield, ...widgets_att, Jbutton_att ,Jtextfield_att ,
UA
INVARIANT
widgets WIDGETS & listeners : LISTENERS & Jbutton widgets_att : widgets struct(enabled : BOOL, visible : BOOL, lists : P(listeners))
Jbutton_att : widgets ...Jtextfield_att : widgets ...
UA : struct(source : widgets, Evt_type : EVENT_TYPE)
III - Extraction d'un modèle B-Event
Taduction des méthodes listener :- In-lining des méthodes- Abstraction- Traduction des structures de contrôle (conditionnelle, séquencement,...)
public void actionPerformed(ActionEvent e) { output.setVisible(true); if (e.getSource()==EF){ EF.setEnabled(false); FE.setEnabled(true); ...} else { FE.setEnabled(false); EF.setEnabled(true); ...} output.setText(result);}}
IV - Validation Formelle
Méthode : Montrer que le modèle du système est un raffinement correctedu modèle de tâche CTT.
Réalisation en trois étape :
1. Concrétisation et Formalidation du modèle de tâche
2. Couplage du modèle BapplM avec Btask par raffinement
3. Obligations de preuves
I - Validation Formelle
I - Validation Formelle
Etape 1 : Concrétisation et Formaisation du modèle de tâche
IV - Validation Formelle
Couplage des modèles par raffinement
Couplage des modèles Btask et BapplM par raffinement :
I - Conclusion
Nous avons mis en place une approche permettant de validerun système interactif en terme d’utilisabilité.
Pour cela nous avons utilisé :- Un modèle de tâches : exigences du cahier des charges- Code source de l’application
Notre approche :-Utilise un unique langage formel pour la validation-A été utilisée avec succès sur une étude de cas simple
Perspectives à court terme :- Réalisation d’un outil permettant l’automatisation de la démarche
Perspectives à long terme :- Étendre la démarche (multimodalité, multi-threading)
QESTIONS ?