Transcript
Page 1: «   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)

Page 2: «   Validation Formelle de Systèmes Interactifs  »

Sommaire

- Introduction

- Approche Proposée

- Extraction d'un modèle B

- Validation Formelle

- Conclusions

Page 3: «   Validation Formelle de Systèmes Interactifs  »

IHM = Domaine d'étude de l' Interaction Homme-Machine

✗Système Interactif✗Utilisateur

IU NF

I - Introduction : Terminologie

Page 4: «   Validation Formelle de Systèmes Interactifs  »

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)

Page 5: «   Validation Formelle de Systèmes Interactifs  »

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.

Page 6: «   Validation Formelle de Systèmes Interactifs  »

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

Page 7: «   Validation Formelle de Systèmes Interactifs  »

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

Page 8: «   Validation Formelle de Systèmes Interactifs  »

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

Page 9: «   Validation Formelle de Systèmes Interactifs  »

I - Introduction : Exemple « jouet »

Page 10: «   Validation Formelle de Systèmes Interactifs  »

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

Page 11: «   Validation Formelle de Systèmes Interactifs  »

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

Page 12: «   Validation Formelle de Systèmes Interactifs  »

II - Approche Proposée

Vue globale de l'approche proposée :

Page 13: «   Validation Formelle de Systèmes Interactifs  »

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

Page 14: «   Validation Formelle de Systèmes Interactifs  »

III - Extraction d'un modèle B-Event

Techniques utilisées pour l'extraction du modèle comportemental :

Intervention de l'opérateur

Page 15: «   Validation Formelle de Systèmes Interactifs  »

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)

Page 16: «   Validation Formelle de Systèmes Interactifs  »

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);}}

Page 17: «   Validation Formelle de Systèmes Interactifs  »

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

Page 18: «   Validation Formelle de Systèmes Interactifs  »

I - Validation Formelle

Page 19: «   Validation Formelle de Systèmes Interactifs  »

I - Validation Formelle

Etape 1 : Concrétisation et Formaisation du modèle de tâche

Page 20: «   Validation Formelle de Systèmes Interactifs  »

IV - Validation Formelle

Couplage des modèles par raffinement

Couplage des modèles Btask et BapplM par raffinement :

Page 21: «   Validation Formelle de Systèmes Interactifs  »

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)

Page 22: «   Validation Formelle de Systèmes Interactifs  »

QESTIONS ?


Top Related