• Aucun résultat trouvé

Chapitre 2 : Faciliter la conception des modèles de tâches complexes

3.3 Génération d’interfaces de contrôle : Proposition de génération conjointe de la présentation et des trois types de dialogue 110

3.3.2 Génération du modèle de présentation

3.3.2.2 Une bibliothèque de widgets spécifiques

Dans la littérature, il existe plusieurs boites à outils de widgets telles que GUI toolkit, layout

manager, Swing (java) qui sont utilisées pour la description de la présentation des applications

(Ramón et al. 2016). Cependant, ces boites à outils ne sont pas adaptées à la conception des systèmes de contrôle-commande car ce type de système est construit avec des logiciels

114

Généralement, les widgets permettent d’effectuer des tâches élémentaires d’interactions. Pour aider l’opérateur à réaliser les tâches de supervision, nous avons défini une bibliothèque de widgets conçus avec un logiciel type SCADA. La définition des widgets avec ce logiciel est justifiée par le fait que le système de supervision est conçu avec ce logiciel. L’intérêt de la définition des widgets est qu’ils permettent d’établir des styles d’interaction standard pour faciliter l’apprentissage et la réutilisation de code.

Pour formaliser et définir une bibliothèque de widgets, nous nous sommes assurés de la définition des principaux types de widgets en nous basant sur les formalisations faites dans la bibliothèque Qt (Qt 2016). Qt est une bibliothèque dédiée au développement des applications multiplateformes et plus spécifiquement des interfaces graphiques (GUI). Les principaux types de widgets définis dans la bibliothèque Qt sont : les fenêtres, les boutons, les afficheurs, les champs, les conteneurs. Nous nous sommes appuyés sur ces principaux types pour formaliser notre bibliothèque de widgets.

Les widgets de type fenêtre sont des widgets qui ne sont contenus dans aucun autre widget. Par exemple, un widget qui n’a pas de parent sera considéré comme fenêtre. Une boîte de dialogue est une fenêtre, généralement de petite taille, dans laquelle il y a peu d'informations. Les widgets de type Button (bouton) se distinguent en trois catégories : les PushButton (les boutons classiques), les CheckButton (les boutons case à cocher, on considère que c'est un bouton en conception GUI) et les RadioButton (les boutons radio). Nous connaissons tous les boutons classiques car c’est l'élément le plus classique et le plus commun des fenêtres. Un bouton case à cocher est quant à lui, généralement associé à un texte de libellé. Un bouton radio permet de faire un choix parmi une liste. C'est une case à cocher particulière car une seule case peut être cochée à la fois parmi une liste. Les boutons radio qui ont le même widget parent sont mutuellement exclusifs. Si un est coché, les autres seront automatiquement décochés.

Les widgets de type afficheurs (display) permettent d'afficher du texte ou une image ou encore une barre de progression.

Les widgets de type Champs (Field) permettent de saisir des données. Ce type de widgets est organisé en plusieurs catégories : Edit (un champ de saisie d’un texte, d’un nombre entier ou réel), Slider (un curseur qui permet de sélectionner une valeur numérique) et drop-down list (liste déroulante), TextBox etc.

Les widgets de type Conteneur (containers) ont été créés spécialement pour pouvoir en contenir d'autres.

Type de

widget Windows Button Display Field container

Catégorie de widget

PushButton TextDisplay Edit CheckButton ImageDisplay Slider RadioButton ProgressBar drop-down list

TextBox

115 Le Tableau 4 présente un récapitulatif des types et catégories de widgets définis pour notre bibliothèque de widgets. La bibliothèque de widgets regroupe l’ensemble des widgets nécessaires à la conception d’un système interactif de contrôle-commande.

Afin de pouvoir utiliser la bibliothèque dans notre processus de génération des interfaces de contrôle, basé sur les techniques de l’IDM, nous avons défini un méta-modèle pour la bibliothèque de widgets (Figure 57), afin de permettre l’expression des règles de transformations de modèles.

Figure 57 Métamodèle de la bibliothèque de widgets décrit avec EMF

Sur cette Figure 57, la bibliothèque de widgets (WidgetLibrary) contient des widgets. Chaque widget est caractérisé par les attributs Type, Category, Description, State, width, height et est

composé d’une présentation rattachée au widget par l’attribut LinkPres qui est un URI14.

Figure 58 Structure de la bibliothèque de widgets

La Figure 58 présente la structure de la bibliothèque de widgets. Toutes les données sont définies dans un fichier qui est conforme au métamodèle défini sur la Figure 57. Chaque widget de la bibliothèque dispose d’un sous-répertoire contenant un répertoire pour

Presentation et un répertoire pour Dialog. Le répertoire Dialog est composé de trois

14 Uniform Ressource Identifier (dans notre cas il s’agit d’une chaine de caractère représentant le chemin d’accès à la présentation et aux dialogues).

116

répertoires Intra-widget dialog, Intra-window dialog et Inter-window dialog. Le répertoire

Presentation contient les fichiers décrivant la vue du widget. Le répertoire Dialog contient une

partie des données dérivées des spécifications (de tâches interactives de l’utilisateur sur le système et la réaction du système par rapport à ces tâches), qui sont liées au widget.

La seule connaissance des widgets utilisables sur l’interface et des PTS ne suffit pas à la conception de la présentation car la présentation qui permet de structurer les différents widgets d’une interface contrôle n’est pas encore définie. La structure des widgets est essentielle pour la génération des interfaces de contrôle. Cette structure peut varier en fonction de l’application. Pour ce faire, nous proposons un modèle pour la structure de la présentation que nous appelons modèle d’interface de fonction. Ce modèle sera générée automatiquement à partir des modèles précédemment obtenus (PTS, modèle d’interaction, bibliothèque de widgets). Pour permettre cette génération nous avons défini le méta-modèle auquel il est conforme.