La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

« Validation Formelle de Systèmes Interactifs »

Présentations similaires


Présentation au sujet: "« Validation Formelle de Systèmes Interactifs »"— Transcription de la présentation:

1 « Validation Formelle de Systèmes Interactifs »
Alexandre Cortier (ONERA) Bruno d’Ausbourg (ONERA) Yamine Aït-Ameur (LISI-ENSMA)

2 Sommaire - Introduction - Approche Proposée - Extraction d'un modèle B
- Validation Formelle - Conclusions

3 I - Introduction : Terminologie
IHM = Domaine d'étude de l' Interaction Homme-Machine IU NF Utilisateur Système Interactif

4 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)

5 I - Introduction : Généralités
Pragmatique : Peu de méthodologies de conception et de validation pour les 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.

6 CTT (Concur Task Tree) JAVA
I - Introduction : I - Introduction : Objectifs Modèle de Tâche CTT (Concur Task Tree) Code Source JAVA Spécification Abstraite du comportement de l'IHM. Comportement réel de l'application Validation Formelle L'implémentation respecte t-elle la spécification abstraite ?

7 I - Introduction : Modèle de Tâche CTT
Structure hiérarchique de tâches - Différents types de tâche - Opérateurs temporels Définition en compréhension

8 I - Introduction : Méthode B-Event
MODEL NameM VARIABLES x1,x2,... INVARIANT p(x1),p(x2),... INITIALISATION EVENTS evt_1= SELECT G THEN S END; evt_2= ANY x WHERE p(x) THEN S2 ..... END B-event : - Adapté à la modélisation des Systèmes réactifs - Notion de raffinement - Obligations de Preuve

9 I - Introduction : Exemple « jouet »

10 I - Introduction : Exemple « jouet »
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);} } listener Méthode JVM Traitement Modification du rendu de l’IU événement Click !

11 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

12 II - Approche Proposée Vue globale de l'approche proposée :

13 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

14 III - Extraction d'un modèle B-Event
Techniques utilisées pour l'extraction du modèle comportemental : Intervention de l'opérateur

15 III - Extraction d'un modèle B-Event
Modélisation de la bibliothèque Swing : MODEL BSwing SETS 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)

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

17 IV - Validation Formelle
Méthode : Montrer que le modèle du système est un raffinement correcte du 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

18 I - Validation Formelle

19 I - Validation Formelle
Etape 1 : Concrétisation et Formaisation du modèle de tâche

20 IV - Validation Formelle
Couplage des modèles Btask et BapplM par raffinement : Couplage des modèles par raffinement

21 I - Conclusion Nous avons mis en place une approche permettant de valider un 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)

22 QESTIONS ?


Télécharger ppt "« Validation Formelle de Systèmes Interactifs »"

Présentations similaires


Annonces Google