• Aucun résultat trouvé

OIDE, notre environnement de prototypage

La description de l’assemblage permet également de définir les aspects de

dis-tribution à l’exécution du composant. Par exemple, un composant peut être exécuté

de localement ou à distance (sur une autre machine).

Compilation et exécution

Une fois les composants et l’assemblage décrits par les fichiers CIDL et PDCL

res-pectifs, la plate-forme gère la compilation et l’exécution de l’assemblage. La

com-pilation permet de générer les proxies des composants utilisés. L’exécution va

ins-tancier chaque composant et gérer les connexions.

7.2 OIDE, notre environnement de prototypage

Dans cette section, nous présentons notre environnement OIDE (OpenInterface

Interaction Development Environment) développé au dessus de la plate-forme à

composants de la section précédente. Pour cela, nous décrivons d’abord son

archi-tecture et son modèle logiciel. Nous présentons ensuite son interface graphique et

l’intégration de composants. Nous finissons en soulignant les deux types

d’utilisa-tion de notre outil.

7.2.1 Architecture et modèle logiciel

Notre environnement graphique noté OIDE (OpenInterface Interaction

Develop-ment EnvironDevelop-ment) est construit au dessus de la plate-forme à composants

Ope-nInterface. Nous avons appelé l’ensemble de cette architecture la plate-forme

Ope-nInterface(OI framework) et nous utilisons le termenoyau OpenInterface(kernel OI)

pour désigner la plate-forme à composants sous-jacente, présentée à la section

pré-cédente (Figure 7.3).

OIDE NOYAU OI

PLATE_FORME OPENINTERFACE

Concepteur

F

IGURE

7.3 – Architecture globale de la plate-forme OpenInterface : environnement

gra-phique de prototypage (OIDE) + plate-forme à composants sous-jacente (noyau OI).

L’éditeur a été implémenté en Java afin d’assurer le même niveau de

portabi-lité que le noyau. Nous avons implémenté l’architecture Modèle-Vue-Contrôleur

(MVC) (section 3.3.4 du chapitre 3), de la Figure 7.4, afin de séparer l’interface

gra-phique de la description fonctionnelle des composants. Le contrôleur (C) gère la

synchronisation entre la vue et le modèle. La vue (V) englobe l’interface graphique

de l’éditeur, les différents menus et les aspects graphiques du graphe de

l’assem-blage de composants. Le modèle (M) inclut notre modèle conceptuel de la

multimo-dalité et le modèle à composants du noyau (Figure 7.4). En effet, afin de clairement

168 CHAPITRE 7. NOTRE OUTIL POUR LE PROTOTYPAGE MULTIMODAL :OPENINTERFACE INTERACTION DEVELOPMENT ENVIRONMENT

dissocier l’OIDE du noyau OI, le modèle logiciel de l’éditeur considère deux

par-ties : le modèle de la multimodalité et le modèle technique du noyau. Le modèle

de la multimodalité implémente notre modèle conceptuel (chapitre 4). Ce modèle

est décrit dans un fichier xml nommé MCDL (Multimodal Component Description

Language) que nous présentons à la section 7.3.1. Le modèle technique implémente

la description technique (CIDL, PDCL) des composants et des assemblages OI.

Contrôleur

de dialogue

GUI de l'éditeur

+

Graphe de l'assemblage

Modèle de la multimodalité

+

Modèle du noyau OI

VUE

MODÈLE

CONTRÔLEUR

changement

d'état

Sélection de la

vue

actions

utilisateur

requête

d'état

notification

changement

F

IGURE

7.4 – Architecture MVC de l’éditeur graphique.

Ainsi, la partie Modèle de notre outil manipule avant tout des composants de

type multimodal. Un composant multimodal est composé d’une description selon

notre modèle conceptuel dédié à la multimodalité et d’une description technique.

La description technique dépend de l’approche à composants sous-jacente utilisée.

Dans notre cas, la description technique implémente le modèle logiciel du noyau

OI (CIDL + PDCL). La Figure 7.5 schématise le modèle logiciel du OIDE.

7.2.2 Composants logiciels, éléments de base du OIDE

Les composants logiciels décrits selon le modèle introduit ci-dessus constituent les

unités élémentaires manipulées par l’OIDE. Dans un contexte de conception rapide

de prototypes multimodaux, notre objectif est de définir un processus efficace et

flexible pour ajouter des composants logiciels au sein de notre outil de prototypage.

Pour viser une intégration efficace d’un nouveau composant, nous définissons

un processus avec un nombre réduit d’étapes (entre une et trois étapes). De plus

le processus d’intégration est flexible et certaines étapes sont optionnelles. Ainsi

l’OIDE permet la manipulation de composants partiellement décrits.

Le processus complet d’intégration commence avec le code source d’un

compo-sant. La Figure 7.6 illustre ce processus avec un composant c++ comme exemple. Il

faut ensuite générer la librairie correspondante (dll en c++, jar en java, etc.). Notons

qu’il est possible de commencer directement à partir d’une libraire. Puis

l’utilisa-teur doit décrire le composant et son interface dans le langage CIDL afin de le

rendre opérationnel au sein du noyau OI. À ce point, le composant est prêt à être

7.2. OIDE, NOTRE ENVIRONNEMENT DE PROTOTYPAGE 169

Modèle Noyau OI

Modèle de la

Multimodalité

Composant

Multimodal

MCDL

Assemblage

Multimodal

Description

Technique

Composant

*

1

*

1

Description

Technique

Assemblage

*

1

Modèle

Assemblage OI

PDCL

Modèle

Composant OI

CIDL

*

1

F

IGURE

7.5 – Modèle logiciel du OIDE composé d’un modèle multimodal et d’un modèle

technique.

utilisé dans l’OIDE, même si la description selon notre modèle de la

multimoda-lité (MCDL) n’est pas réalisée. Cela permet d’intégrer et de tester rapidement des

composants techniques.

Code source du composant

Librairie du composant

Description technique CIDL

Description multimodale MCDL .h + cpp .h + dll xml CIDL xml MCDL

début possible

composant

technique

composant

d'interaction

multimodale

début possible

F

IGURE

7.6 – Étapes de l’intégration d’un nouveau composant (c++ dans l’exemple) dans

la plate-forme. À gauche les départs possibles et à droite les points d’intégration.

Lorsque l’utilisateur veut décrire complètement un composant outre la

descrip-tion CIDL, elle/il doit décrire le composant selon le langage MCDL, que nous

pré-sentons en détail à la section 7.3.1. Le composant ainsi décrit peut être déposé en

ligne et exploité au sein du OIDE. Nous notons (1) les composants partiellement

dé-crits (uniquement la description CIDL), des composants techniques et (2) les

com-170 CHAPITRE 7. NOTRE OUTIL POUR LE PROTOTYPAGE MULTIMODAL :OPENINTERFACE INTERACTION DEVELOPMENT ENVIRONMENT

posants complètement décrits (description CIDL et MCDL) des composants

d’in-teraction multimodale. Afin de faciliter la création des descriptions, il est possible

d’éditer facilement une description MCDL d’un composant (formulaire).

Afin de gérer les composants ainsi décrits et intégrés à la plate-forme, nous

avons établi deux dépôts de composants

2

: un dépôt local et un dépôt en ligne.

Le dépôt local de composants est un stockage localisé sur la même machine que

l’installation du OIDE. Ainsi, chaque installation du OIDE possède son propre

dé-pôt local. Le dédé-pôt local est composé de deux stockages distinguant les composants

partiellement décrits (composants techniques décrits selon le CIDL), de ceux décrits

complétement (composants d’interaction multimodale décrits selon le CIDL et le

MCDL). L’OIDE gère donc ces deux types de composants (Figure 7.7). Les

compo-sants du dépôt local comprennent les compocompo-sants installés par défaut avec l’OIDE,

des composants que l’utilisateur a développé et intégré à la plate-forme ainsi que

des composants que l’utilisateur a téléchargé du dépôt en ligne.

Local Repository Model Component Repository Interaction Component Repository OI Component Repository

décrit selon

MCDL

décrit selon

CIDL

F

IGURE

7.7 – Dépôt local de composants divisé en deux : un stockage de composants

d’in-teraction multimodale et un stockage de composants techniques.

L’Université de Glasgow (partenaire du projet OpenInterface) a développé un

dépôt de composants en ligne, leOpenInterface repository, qui permet d’ajouter ou

de télécharger des composants. Le dépôt en ligne exploite la description des

com-posants MCDL reposant sur notre modèle conceptuel (section 7.3.1), ce qui permet

entre autre de chercher des composants selon des caractéristiques de notre modèle,

comme le type de composant (dispositif, transformation, composition ou tâche)

(Fi-gure 7.8).

Le dépôt en ligne est intégré à notre outil : la commande de recherche de

com-posants en ligne du OIDE permet de télécharger et installer automatiquement un

composant (qu’il soit technique ou d’interaction multimodale) dans le dépôt local.

7.2.3 Editeur graphique (Vue)

L’interface graphique de l’outil (partie Vue de la Figure 7.4) a été implémentée avec

Java Swing, la bibliothèque graphique de Java, afin de bénéficier de sa portabilité

sur différents systèmes d’exploitation. L’interface graphique est composée de 4

es-paces principaux : la librairie de composants techniques (zone A à la Figure 7.9),

7.2. OIDE, NOTRE ENVIRONNEMENT DE PROTOTYPAGE 171

F

IGURE

7.8 – Interface web duOpenInterface repository.

la librairie de composants d’interaction multimodale (zone B à la Figure 7.9), la

li-brairie d’outils (zone C à la Figure 7.9) et la zone de conception (zone D à la Figure

7.9).

A

B

C

D

F

IGURE

7.9 – Interface graphique du OIDE.

La libraire de composants (A) contient tous les composants techniques

dispo-nibles dans le dépôt local. La libraire de composants (B) contient tous les

compo-sants d’interaction multimodale disponibles dans le dépôt local. Ainsi, notre outil

admet l’utilisation mixte de composants caractérisés et non-caractérisés, dans le

but de doter notre outil d’une plus grande flexibilité et d’inter-opérabilité. Comme

nous l’avons expliqué, cela permet aussi de rendre plus rapide l’ajout d’un

compo-sant par exemple pour le tester au sein d’une interaction multimodale. La librairie

172 CHAPITRE 7. NOTRE OUTIL POUR LE PROTOTYPAGE MULTIMODAL :OPENINTERFACE INTERACTION DEVELOPMENT ENVIRONMENT

d’outils (C) contient tous les composants utilitaires disponibles dans le dépôt local,

comme le composant DataViewer, qui permet de voir textuellement des données

numériques ou textuelles. Nous présentons à la section 7.4 les composants

utili-taires développés.

Au sein de la barre d’outils de l’interface se trouvent les commandes

essen-tielles de l’OIDE. Quatre boutons rassemblent les principales actions utilisées par

le concepteur pendant la création d’une interaction multimodale (Figure 7.10) :

Compilation : permet de compiler l’assemblage afin de générer les proxies

des composants utilisés. Cette opération doit seulement se faire si on utilise

un composant pour la première fois.

Exécution: permet d’exécuter l’assemblage conçu.

Connexion au dépôt de composants distants : permet de se connecter à la

base de composants en ligne, distante pour télécharger des composants.

Changement de mode d’exécution: permet de passer du mode d’exécution

statique au mode dynamique. Nous expliquons ces différents modes

d’exécu-tion dans la secd’exécu-tion suivante.

Compilation Execution Changement

Mode

Execution

Chercher

Composants

Distants

F

IGURE

7.10 – Commandes principales du OIDE.

7.2.4 Utilisation du OIDE et dynamicité du prototype développé

Pour développer un prototype multimodal, l’utilisateur assemble des composants

dans la zone de conception de l’éditeur (zone B de la Figure 7.9). Nous distinguons

deux modes d’utilisation :

Mode statique de conception : dans ce mode, les phases de conception

(construction de l’assemblage) et l’exécution sont séquentielles.