• Aucun résultat trouvé

Liaison entre les interactions et les actions

Partie III Définition d’actions, d’interactions et d’instruments avec Malai

7.5 Instrument

7.5.3 Liaison entre les interactions et les actions

La partie statique d’un instrument se compose d’une classe dotée d’un ensemble d’attributs le décrivant (cf. figure 7.14). La classe Instrument possède un attribut activé dont le but est de définir si l’instrument est actif ou non. Lorsqu’un instrument n’est pas actif, il ne peut être utilisé dans le SI et ses éventuels composants graphiques ne sont plus visibles ou accessibles par l’utilisateur. Dans notre éditeur XML, si un nœud ne possède pas de fils, son déplieur est désactivé et n’est alors plus visible. Un instrument possède un ensemble de liaisons établies entre

7.5 Instrument

des actions et des interactions. Une liaison possède un attribut exécution définissant si l’action doit être exécutée au cours de l’interaction ou lorsqu’elle se termine.

Fig. 7.14: Métamodèle d’instrument

L’instrument Main de l’éditeur de documents XML a pour but de sélectionner, déplacer et dupliquer les nœuds de l’arbre. La partie statique de cet instrument est définie par le diagramme de classes de la figure 7.15a. L’instrument Main possède un unique paramètre : la présentation concrète de l’arbre (ArbreUI) dans laquelle la « main » opère. La figure 7.15b définit les liaisons établies entre les interactions et les actions de l’instrument Main. Les deux premières liaisons stipulent que l’interaction GlisserDéposer crée une action DupliquerNoeud ou DéplacerNoeud. L’interaction PressionBouton engendre, quant à elle, une action SélectionnerNoeud. La partie dynamique de l’instrument décrit la manière dont ces interactions et ces actions sont liées.

(a) Diagramme de classes

(b) Liaisons entre les interactions et les actions

7.6 Conclusion

Dans ce chapitre, nous avons présenté les parties statiques des interactions, actions, ins-truments et interfaces, lesquelles définissent leurs données et non leur fonctionnement. Le dia-gramme de classes UML est le principal formalisme utilisé dans ce cadre. Il a pour avantage de travailler à un niveau abstrait, indépendamment de toutes plates-formes d’IHM et de données. Nous avons également étendu ce type de diagramme en proposant : une relation de nécessité qui s’établit entre différentes actions ; une relation de liaison établissant le pont entre interactions et actions.

Le chapitre suivant complète la présentation du modèle Malai en décrivant la partie dyna-mique des interactions, des actions et des instruments. Elle a pour but de définir leur compor-tement en se fondant sur la partie statique.

Chapitre 8

Malai : partie dynamique des

actions, des interactions et des

instruments

Sommaire 8.1 Introduction . . . 123 8.2 Interaction . . . 123 8.2.1 Définition et principe . . . 124 8.2.2 Cycle de vie . . . 125 8.2.3 Exemple . . . 126 8.3 Action . . . 126 8.3.1 Définition et cycle de vie . . . 126 8.3.2 Exécution, annulation et ré-exécution . . . 128 8.3.3 Avortement et recyclage . . . 129 8.4 Instrument . . . 130 8.4.1 Définition et principe . . . 130 8.4.2 Feed-back intérimaire . . . 133 8.4.3 Exemple . . . 133 8.5 Conclusion . . . 135

8.1 Introduction

8.1 Introduction

Nous présentons dans ce chapitre la partie dynamique de Malai, laquelle décrit le compor-tement des actions, des interactions et des instruments ainsi que le comporcompor-tement des liaisons établies par les instruments entre ces dernières. Ce chapitre complète ainsi la partie statique décrite dans le chapitre précédent. Etant entièrement définies par la partie statique, l’interface et ses présentations ne sont pas présentes ici.

La figure 8.1 reprend la vue d’ensemble de Malai en mettant en exergue les parties dy-namiques des interactions, des instruments et des actions. La machine à états de l’interaction (flèche®) décrit le comportement de l’interaction à partir d’évènements. La liaison entre une in-teraction et une action se compose (flèche¯) : d’une condition liant l’interaction à l’action ; d’un éventuel feed-back intérimaire de l’instrument pour une présentation concrète donnée (flèche°). L’action peut être exécutée, annulée ou réexécutée sur la présentation abstraite (flèche±) ; ces différentes étapes sont spécifiées à l’aide d’un pseudo-langage.

Données Présentation Présentation abstraite Présentation concrète Action Interaction Instrument Interface Feedback intérimaire Evènement Abstrait Concret exécuter() { ... } peutExécuter() { ... } liaison action-présentation touches[1]==’a’ condition machine à états b b c b c b c b c b c #modifierCurseur( main.curseur,cur)

Fig. 8.1: Organisation des parties dynamiques

Ce chapitre s’organise de la manière suivante : la section 8.2 présente la partie dynamique des interactions ; la section 8.3 décrit la partie dynamique des actions ; la section 8.4 est dédiée à la partie dynamique de l’instrument ; la section 8.5 conclut la présentation du modèle conceptuel Malai.

8.2 Interaction

Cette section se consacre à la présentation de la partie dynamique d’une interaction, c.-à-d. au formalisme utilisé pour décrire son cycle de vie.

8.2.1 Définition et principe

La partie dynamique d’une interaction est définie par une machine déterministe à nombre fini d’états. Les transitions de cette dernière assurent le passage d’un état à un autre si une condition donnée est respectée. Dans notre contexte de modélisation d’une interaction, une condition est un prédicat composé de deux parties. La première se réfère au nom d’un évènement produit par un HID, tel que l’évènement pressionTouche produit par un clavier. La seconde, optionnelle, utilise les paramètres de l’évènement pour servir de filtre. Par exemple, la condition pressionTouche | touche==’a’ stipule que le changement d’état s’effectue lorsqu’un évènement pressionTouche survient et que la touche « a » est pressée, touche étant un paramètre de l’évènement. Malai n’est pas pourvu d’un modèle de HID dont le but serait de décrire les HID et les évènements qu’ils produisent.

La modélisation à l’aide de machines à états fournit un moyen simple et efficace de décrire des comportements, en particulier des interactions homme-machine [Appert et Beaudouin-Lafon, 2008]. Ce principe permet également la spécification d’interactions complexes indépendamment des actions et des instruments des SI. Un développeur dispose ainsi d’une librairie d’interactions prédéfinies facilement intégrables dans différents SI, comme les interactions relatives à la souris et au clavier. Il peut également définir de nouvelles interactions venant enrichir cette librairie.

Fig. 8.2: Métamodèle d’interaction

Le métamodèle de la figure 7.14 décrit la machine à états de l’interaction. Elle se compose d’états et de transitions : chaque transition est établie entre un état source et un état cible. La classe abstraite Etat représente un état qui peut être :

8.2 Interaction

– Un Etat Terminal : ce type d’état ne peut être la source d’une transition puisqu’il n’est plus possible de changer d’état lorsque l’interaction arrive à son terme. Une machine à états doit disposer d’au moins un état terminal.

– Un Etat Initial : une machine à états ne doit posséder qu’un seul état initial à partir duquel débute l’interaction.

– Un Etat Avortant : de même qu’un état terminal, un état avortant ne peut être la source d’une transition. Le but d’un état avortant est de préciser qu’un évènement termine prématurément l’interaction.

– Un Etat Standard : il s’agit d’un état intermédiaire entre l’état initial et les états termi-naux et avortants.