intÉgration et exploitation d’outils de …niveau de compréhension de l’humain dans de telles...

123
OLIVIER TYE GINGRAS INTÉGRATION ET EXPLOITATION D’OUTILS DE VISUALISATION Compréhension de situations complexes Mémoire présenté à la Faculté des études supérieures de l’Université Laval dans le cadre du programme de maîtrise en génie électrique pour l’obtention du grade de Maître ès sciences (M. Sc.) DÉPARTEMENT DE GÉNIE ÉLECTRIQUE ET DE GÉNIE INFORMATIQUE FACULTÉ DES SCIENCES ET GÉNIE UNIVERSITÉ LAVAL QUÉBEC 2011 © Olivier Tye Gingras, 2011

Upload: others

Post on 29-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

OLIVIER TYE GINGRAS

INTÉGRATION ET EXPLOITATION D’OUTILS DE

VISUALISATION Compréhension de situations complexes

Mémoire présenté

à la Faculté des études supérieures de l’Université Laval

dans le cadre du programme de maîtrise en génie électrique

pour l’obtention du grade de Maître ès sciences (M. Sc.)

DÉPARTEMENT DE GÉNIE ÉLECTRIQUE ET DE GÉNIE INFORMATIQUE

FACULTÉ DES SCIENCES ET GÉNIE

UNIVERSITÉ LAVAL

QUÉBEC

2011

© Olivier Tye Gingras, 2011

Page 2: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

Résumé

La compréhension de situations complexes s’avère de plus en plus nécessaire, notamment

dans les domaines militaires. En réponse à cette demande, le projet IMAGE, en cours à

Recherche et Développement pour la Défense Canada – Valcartier, vise à développer un

environnement interactif offrant des outils logiciels aidant à augmenter la vitesse et le

niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands

modules : Scénarisation, Simulation, Exploration et Représentation. Le projet présenté

dans ce mémoire a trait au développement d’un prototype pour la partie Exploration, qui

regroupe principalement des outils de visualisation. Cette plateforme servira à des

expérimentations en psychologie cognitive visant à mesurer l’augmentation de la

compréhension offerte par ces outils.

L’humain étant au centre de l’environnement développé, certaines théories qui lui sont

reliées, touchant notamment la psychologie cognitive, les interfaces personne-machine ainsi

que la visualisation d’information, sont d’abord présentées. Une revue de diverses

plateformes logicielles existantes, susceptibles d’offrir des fonctionnalités intéressantes

pour l’implémentation, est également effectuée. Suite à une évaluation plus approfondie des

outils retenus ainsi que plusieurs tests avec ces derniers, une première problématique, ayant

trait au transfert de multiples flots de données XML partant du module Simulation vers le

module Exploration, est alors abordée; la création de l’application ImageDataServer

s’ensuit, faisant usage du framework ACE pour la gestion de multiples connexions et le

traitement de données en parallèle. Suite à cette réalisation, des premiers jets de

représentations visuelles, basés sur un scénario tactique de convoi militaire, sont

développés à partir des données de simulation de ce scénario transférées vers Eye-Sys, une

application de visualisation générique. Une scène 3D montrant l’évolution spatiale et

temporelle ainsi que les interactions entre les agents de la simulation, véhicules militaires,

explosifs et insurgés, y est mise en action grâce à des données provenant d’une base de

données MySQL. La vue est également synchronisée à une application de simulation

interactive, Multichronia, servant de point de contrôle principal pour l’utilisateur. Une

évaluation des performances du système et une discussion sur divers aspects de

développement complètent ce mémoire.

Page 3: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

À mes parents, qui depuis toujours m’appuient dans mes projets,

À mon amour Émilie, ma grande complice et mon soutien moral,

À tous mes collègues, en particulier à Frédéric et François,

merci pour votre support spécial.

Page 4: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

Table des matières

Résumé ..................................................................................................................................... i Table des matières ................................................................................................................ iii Liste des figures ...................................................................................................................... v

1 Introduction ..................................................................................................................... 7 1.1 Contexte général ..................................................................................................... 7 1.2 Projet IMAGE ......................................................................................................... 8

1.2.1 Description et objectifs ....................................................................................... 8 1.2.2 Défis et préoccupations ..................................................................................... 10

1.2.3 Identification des besoins .................................................................................. 11

1.2.4 Élaboration de scénarios ................................................................................... 13 1.2.5 Expérimentations avec utilisateurs ................................................................... 15

2 État de l’art .................................................................................................................... 17 2.1 Connaissance ........................................................................................................ 17

2.1.1 Aspects théoriques ............................................................................................ 17 2.1.2 Cognition humaine ............................................................................................ 18

2.1.3 Compréhension ................................................................................................. 22 2.2 Complexité ............................................................................................................ 24

2.2.1 Définition : complexe versus compliqué ........................................................... 24 2.2.2 Caractéristiques de la complexité ..................................................................... 25

2.3 Ingénierie des systèmes ........................................................................................ 27

2.3.1 Profil des utilisateurs ........................................................................................ 28

2.3.2 Systèmes cognitifs ............................................................................................ 29 2.4 Exploration ............................................................................................................ 33

2.4.1 Visualisation d’information .............................................................................. 34

2.4.2 Techniques de visualisation .............................................................................. 35 2.4.3 Considérations de design .................................................................................. 44

3 Module Exploration ...................................................................................................... 46 3.1 Plateformes logicielles .......................................................................................... 46

3.1.1 ACE .................................................................................................................. 46

3.1.2 MySQL ............................................................................................................. 48 3.1.3 Tableau Software .............................................................................................. 51 3.1.4 Eye-Sys ............................................................................................................. 53

3.1.5 Multichronia ...................................................................................................... 56 3.2 Explorations préliminaires .................................................................................... 57

3.2.1 Simulation et transfert de données .................................................................... 57 3.2.2 Application Eye-Sys .......................................................................................... 59 3.2.3 ACE .................................................................................................................. 65 3.2.4 Application Tableau Desktop ........................................................................... 67

3.3 Tests et prototypes – Traitement des données ...................................................... 67

3.3.1 Plug-ins Eye-Sys ............................................................................................... 68 3.3.2 Prototypes COM / C++ ..................................................................................... 69

3.4 Application ImageDataServer .............................................................................. 70 3.4.1 Gestion des connexions .................................................................................... 71 3.4.2 Traitement des données XML ........................................................................... 73

Page 5: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

iv

3.4.3 Connexion et interactions COM avec Eye-Sys ................................................. 75 3.5 Tests et prototypes – Visualisation ....................................................................... 77

3.5.1 Plug-in « History Concatenator » ..................................................................... 77 3.5.2 Scène tactique 3D ............................................................................................. 78

3.6 Migration vers la base de données MySQL .......................................................... 80 3.6.1 Mode de connexion à la base de données ......................................................... 81 3.6.2 Modifications logicielles ................................................................................... 83

3.7 Vue tactique .......................................................................................................... 85 3.7.1 Éléments visuels de la vue 3D principale ......................................................... 85 3.7.2 Panneaux informatifs et interface de contrôle .................................................. 89 3.7.3 Graphique d’évolution ...................................................................................... 91 3.7.4 Vue « Distribution des simulations » ................................................................ 93

3.7.5 Exploration tactique finale ................................................................................ 94 3.7.6 Vue tactique allégée (groupe contrôle) ............................................................. 95

3.8 Synchronisation avec Multichronia ...................................................................... 96

3.8.1 Protocole de communication ............................................................................ 97

3.8.2 Plug-in « Driver Regulator » ............................................................................ 98 3.9 Amélioration des performances avec MySQL ...................................................... 99

3.9.1 Plug-in « MySQL Database » ......................................................................... 100 3.10 Système de « logs » ............................................................................................ 101

4 Évaluation ................................................................................................................... 104

4.1 Test du système intégré ....................................................................................... 104 4.1.1 Exemple d’utilisation ...................................................................................... 104

4.1.2 Débogage du scénario ..................................................................................... 106 4.2 Discussions ......................................................................................................... 107

4.2.1 Améliorations possibles et recommandations ................................................. 107 4.2.2 Plateforme Eye-Sys ......................................................................................... 112

5 Conclusion .................................................................................................................. 115 6 Bibliographie .............................................................................................................. 118 Annexe A : Schéma de la base de données du projet IMAGE ........................................... 119

Page 6: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

Liste des figures

Figure 1-1 : Diagramme conceptuel du projet IMAGE .......................................................... 9 Figure 1-2 : Environnement virtuel immersif CAVE ........................................................... 13 Figure 1-3 : Vues 2D du simulateur Pythagoras pour scénarios « pucerons » et « convoi » 14

Figure 2-1 : Modèle du système cognitif .............................................................................. 18 Figure 2-2 : Patrons visuels .................................................................................................. 19 Figure 2-3 : Performance d’une tâche en fonction de l’allocation en ressources ................. 20 Figure 2-4 : Principe de la triade .......................................................................................... 30 Figure 2-5 : Google Earth, représentation de trajets aériens et de densité de population ..... 36

Figure 2-6 : Représentations hyperbolique et radiale ........................................................... 37

Figure 2-7 : Représentation circulaire imbriquée ................................................................. 37 Figure 2-8 : TreeMap (SequoiaView) ................................................................................... 38

Figure 2-9 : Empreinte littéraire de la Bible ......................................................................... 38 Figure 2-10 : Exemples de représentations sémantiques ...................................................... 39 Figure 2-11 : Vues globale et rapprochée d'une représentation de données par densité ...... 40 Figure 2-12 : Diagramme « rivière » .................................................................................... 40

Figure 2-13 : Représentation circulaire ................................................................................ 40 Figure 2-14 : Visualisation à 2 dimensions temporelles ....................................................... 41

Figure 2-15 : Ligne du temps ................................................................................................ 42 Figure 2-16 : Mur en perspective .......................................................................................... 42 Figure 2-17 : Exploration tabulaire avec loupe sur les données ........................................... 43

Figure 2-18 : Effet de distorsion ........................................................................................... 43

Figure 2-19 : Effet de flou .................................................................................................... 43 Figure 2-20 : Coordonnées parallèles ................................................................................... 44 Figure 3-1 : Logo ACE ......................................................................................................... 46

Figure 3-2 : Structure du framework ACE ........................................................................... 48 Figure 3-3 : Logo MySQL .................................................................................................... 48

Figure 3-4 : Logo MySQL++ ............................................................................................... 49 Figure 3-5 : Hiérarchie de la classe mysqlpp::Connection ................................................... 50 Figure 3-6 : Logo Tableau .................................................................................................... 51

Figure 3-7 : Saisies d'écran de Tableau Desktop .................................................................. 52 Figure 3-8 : Interface principale de Tableau Desktop .......................................................... 53 Figure 3-9 : Logo Eye-Sys .................................................................................................... 53

Figure 3-10 : Interface principale de Eye-Sys ...................................................................... 55 Figure 3-11 : Saisie d'écran commentée de Multichronia .................................................... 56

Figure 3-12 : Extrait d'un document XML de données de simulation .................................. 58 Figure 3-13 : Schéma conceptuel de Multichronia ............................................................... 59 Figure 3-14 : Exemples d’une scène de convoi .................................................................... 61 Figure 3-15 : Fenêtre de conception de la scène de convoi .................................................. 61 Figure 3-16 : Exemple d'une vue analytique ........................................................................ 61

Figure 3-17 : Hiérarchie partielle des classes d'interfaces COM Eye-Sys ........................... 62 Figure 3-18 : Fenêtre d'édition du plug-in Script .................................................................. 64 Figure 3-19 : Hiérarchie partielle des classes du SDK Eye-Sys ........................................... 65 Figure 3-20 : Patron de design Reactor dans le contexte serveur/client ACE ...................... 66 Figure 3-21 : Diagramme d'héritage de la classe ACE_Svc_Handler .................................. 67

Page 7: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

vi

Figure 3-22 : Extrait d'un programme test COM en C++ ..................................................... 70 Figure 3-23 : Diagramme de classes – partie Connexion ..................................................... 71

Figure 3-24 : Diagramme séquentiel – Démarrage ............................................................... 72 Figure 3-25 : Diagramme séquentiel – Connexion et réception de messages ...................... 73 Figure 3-26 : Diagramme de classes – partie Traitement ..................................................... 74 Figure 3-27 : Diagramme de classes – partie Eye-Sys / COM .............................................. 76 Figure 3-28 : Propriétés du « History Concatenator » et historiques de données ................. 78

Figure 3-29 : Saisie d'écran de la vue tactique préliminaire ................................................. 79 Figure 3-30 : Configuration du plug-in « Database » ........................................................... 82 Figure 3-31 : Schéma partiel de la base de données IMAGE - Données tactiques .............. 83 Figure 3-32 : Modèles 3D des agents de la simulation ......................................................... 86 Figure 3-33 : Éléments visuels de la vue 3D principale ....................................................... 87

Figure 3-34 : Icônes d'état des lanceurs de RPG .................................................................. 87 Figure 3-35 : Fenêtre de conception – LAV ......................................................................... 88 Figure 3-36 : Fenêtre de conception – IED ........................................................................... 89

Figure 3-37 : Fenêtre de conception – RPG ......................................................................... 89

Figure 3-38 : Panneaux informatifs et de contrôle ............................................................... 90 Figure 3-39 : Panneaux d’informations de type « Data Gadget » ........................................ 91

Figure 3-40 : Graphique d'évolution ..................................................................................... 92 Figure 3-41 : Fenêtre de conception - Graphique d'évolution .............................................. 93 Figure 3-42 : Vue « Distribution des simulations » .............................................................. 93

Figure 3-43 : Agencement final de la vue tactique ............................................................... 95 Figure 3-44 : Vue tactique allégée ........................................................................................ 96

Figure 3-45 : Exemple type de messages envoyés par Multichronia ................................... 97 Figure 3-46 : Fenêtres de propriétés - Plug-ins « Driver » et « Driver Regulator » ............. 99

Figure 3-47 : Fenêtre de propriétés du plug-in "MySQL Database" .................................. 100 Figure 3-48 : Exemple de contenu de la table « ExplorationTacticalLog » ....................... 101

Figure 3-49 : Fenêtre de conception – Scripts Tableau et logs ........................................... 102 Figure 3-50 : Fenêtres de conception et de propriétés – Log des sélections ...................... 102 Figure 4-1 : Saisie d'écran du système intégré .................................................................... 105

Figure 4-2 : Organisation structurelle actuelle des objets Eye-Sys pour la visualisation ... 109 Figure 4-3 : Organisation structurelle alternative pour le système de visualisation ........... 110

Page 8: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

1 Introduction

1.1 Contexte général

De plus en plus d’organisations, civiles et militaires, de même que des chercheurs et

scientifiques, doivent faire face à des situations ou des problèmes qualifiés de complexes.

Ces situations sont caractérisées par des non-linéarités, des interactions, des hiérarchies, des

boucles de rétroaction, des comportements émergents, etc. Les éléments composant une

situation complexe sont souvent combinés les uns aux autres et font en sorte que l’humain,

dû à ses capacités d’analyse limitées, a beaucoup de difficulté à comprendre les

mécanismes qui gèrent ces situations. La gestion de la sécurité et des unités d’intervention

lors de grands événements comme les jeux olympiques ou la planification d’un budget

national de relance en temps de crise économique comptent parmi les exemples de telles

situations auxquelles doivent faire face les gouvernements. La planification militaire, autant

aux niveaux stratégique, tactique qu’opérationnel, comporte également plusieurs éléments

de complexité. Dans les domaines scientifiques, on peut penser à l’étude de la propagation

d’une maladie dans une population. L’étude des changements climatiques est également un

problème complexe colossal sur lequel il est pratiquement impossible de faire des

prédictions précises à cause du manque de compréhension et de l’ignorance d’innombrables

interrelations qu’il comporte.

Un autre problème largement répandu est la difficulté à manipuler de très grandes quantités

de données, souvent en raison de lacunes liées aux systèmes servant à les gérer. On peut

penser par exemple à la recherche sur Internet où les limites des systèmes actuels font en

sorte que certaines informations importantes ou utiles restent cachées sous une montagne

de données redondantes ou non-pertinentes. L’extraction de connaissances de haut niveau à

partir de très larges bases de données peut également être un défi de taille. Heureusement,

certains logiciels apportant des solutions intéressantes à ce problème commencent à voir le

jour. Dans ces derniers cas le simple accès à l’information n’est pas un problème mais ce

n’est pas suffisant; il faut pouvoir la discriminer selon des critères de qualité, de type de

données et de domaine d’application notamment.

Page 9: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

8

Face à ces problèmes, le besoin de développer de nouveaux outils d’aide à la

compréhension et à la décision se fait sentir, notamment dans le domaine militaire où les

situations complexes sont nombreuses et variées.

1.2 Projet IMAGE

En réponse au type de problème décrit précédemment, IMAGE, un projet visant à créer un

environnement dynamique et interactif offrant des outils génériques pour augmenter la

compréhension de situations complexes variées, a été initié. IMAGE est un fonds

d’investissement technologique (FIT) alloué à la section Système de Systèmes (SdS) au

centre de Recherche et Développement pour la Défense Canada – Valcartier (RDDC-

Valcartier) (Lizotte, et al. 2008).

1.2.1 Description et objectifs

Le diagramme de la Figure 1-1 montre les concepts faisant partie du projet IMAGE et les

liens qui les unissent. Au centre du schéma, on retrouve des preneurs de décision,

commandants ou gestionnaires de projets qui doivent faire face à une situation complexe

quelconque, ainsi que des experts de divers domaines d’étude : scientifiques, ingénieurs,

stratèges, historiens, psychologues, etc. Les outils proposés par IMAGE s’adressent

principalement à ces personnes dans le cadre de divers types de situations comme la

planification, le support ou l’entraînement.

Au départ, la représentation mentale de la situation complexe est floue et peu ou pas

organisée. À l’extérieur du noyau, on retrouve les quatre grandes étapes de la démarche que

suivront les experts, chacune supportée par des outils proposés par IMAGE :

Scénarisation : Il s’agit de l’étape de départ où, à partir de connaissances que l’on

possède et d’hypothèses sur les liens unissant les entités, agents et composants

faisant partie de la situation complexe, on définit un scénario, typiquement basé sur

des modèles mathématiques que l’on pourra simuler et voir évoluer dans le temps à

la prochaine étape. Suite aux analyses qui seront faites aux étapes suivantes du

premier cycle d’analyse, le modèle défini initialement est sujet à subir des

changements lors des cycles ultérieurs.

Page 10: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

9

Simulation : Une fois les modèles définis, ils sont exécutés dans un simulateur en

ayant comme objectif de reproduire une version synthétique dynamique de la

situation complexe. On vise principalement à faire ressortir des comportements

émergents et des interactions entre les modèles qui sont difficiles ou impossibles à

prévoir lorsque étudiés individuellement ou en mode statique. Il existe plusieurs

techniques de simulation présentées dans la littérature : data mining, data farming,

computational steering, simulation cloning, etc. L’approche retenue pour IMAGE

est interactive, c’est-à-dire que l’utilisateur a la possibilité de lancer plusieurs

Figure 1-1 : Diagramme conceptuel du projet IMAGE

(Mokhtari, et al. 2007)

Page 11: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

10

simulations sur demande, de les interrompre et de les ré-exécuter. Il peut donc

observer l’évolution de la simulation en cours d’exécution et a également la liberté

de modifier la valeur de certains paramètres du modèle ou du scénario s’il le désire.

Exploration : De grandes quantités de données sont générées par les simulations à

l’étape précédente, et l’Exploration en permet une analyse en profondeur. La

principale fonction de cette partie est de convertir les données en une ou plusieurs

représentations visuelles, permettant d’exploiter les capacités du système perceptuel

de l’humain. Pour cela, diverses techniques de visualisation scientifique et de

visualisation d’information peuvent être utilisées en fonction des types de données à

analyser. Les développements du présent projet étant au cœur de cette partie, nous y

reviendrons plus en détails dans les sections ultérieures.

Représentation : C’est à l’étape de Représentation que l’utilisateur formalise sa

compréhension du modèle étudié et exprime sous forme visuelle le modèle mental

de la situation complexe qu’il s’est forgé lors de son analyse à l’aide des outils de

Simulation et d’Exploration. Cette représentation, typiquement sous forme de

graphe conceptuel, a pour but de l’aider à synthétiser ses idées et aussi de les

partager avec ses collaborateurs. La qualité du modèle obtenu ainsi que le niveau de

confiance envers celui-ci amèneront souvent l’utilisateur à raffiner le ou les modèles

définis à l’étape de Scénarisation.

Le tout se veut un processus itératif où, peu à peu, la représentation mentale des utilisateurs

se précise, passant d’idées floues à des concepts bien définis, d’incompréhension à de

nouvelles connaissances émergentes. Le but est à la fois d’augmenter le niveau de

compréhension et d’accélérer le processus d’analyse grâce à des technologies innovatrices.

Comme illustré sur le schéma, les outils sont liés et participent à un seul et même

processus. Cette synergie entre les composants est primordiale pour l’atteinte des objectifs

visés par le projet.

1.2.2 Défis et préoccupations

Au commencement du projet, quoique la description du projet et de ses objectifs était assez

bien définie, plusieurs préoccupations liées au niveau de connaissance et à l’état de l’art

Page 12: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

11

dans des domaines relatifs au projet ont été soulevées. Il a été déterminé qu’une bonne

connaissance des outils et technologies déjà existants et disponibles concernant les grands

modules d’IMAGE (Simulation, Exploration, Représentation) s’avérait nécessaire avant de

s’immiscer trop en avant dans le développement. En effet, dans le contexte d’un projet

ambitieux, avant-gardiste, multidisciplinaire mais aux ressources de développement

limitées tel qu’IMAGE, exploiter au maximum la technologie actuelle afin de minimiser

l’effort de développement s’avère primordial. En contrepartie, un défi de taille est à prévoir

au niveau de l’intégration de modules qui, étant définis pour fonctionner de manière

indépendante a priori, devront faire partie du processus d’IMAGE.

L’aspect multidisciplinaire d’IMAGE amène un autre défi important : la coordination de la

compréhension des objectifs du projet et de sa terminologie entre les membres de l’équipe

provenant de différentes disciplines (informatique et génie, mathématiques, psychologie) et

des utilisateurs civils et militaires. Les principes de base du projet IMAGE peuvent être

difficiles à expliquer, à saisir, et être la source de confusion dans l’équipe. De plus, des

termes utilisés dans différents domaines d’étude qui ont potentiellement des significations

différentes doivent correspondre aux mêmes concepts lorsqu’utilisés dans le vocabulaire

d’IMAGE.

D’autres lacunes ont été identifiées comme devant être comblées pour certains membres de

l’équipe, notamment en ce qui concerne les connaissances en psychologie cognitive, la

définition des besoins et le développement d’un scénario.

1.2.3 Identification des besoins

Pour chacune des grandes parties du projet, une liste de besoins a été dressée. Comme de

nombreux éléments ont été mentionnés pour chacune de ces parties, nous nous

concentrerons ici sur ceux du module Exploration dont les développements font l’objet du

présent document.

D’abord, les besoins relatifs aux objectifs du projet stipulent que l’exploration doit

présenter des paradigmes de visualisation qui correspondent au scénario, aux capacités

cognitives de l’utilisateur ainsi qu’aux besoins des expérimentations avec les utilisateurs

(décrits plus en détails à la section 1.2.5).

Page 13: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

12

Au niveau de l’architecture, l’intégration et l’exploitation de plusieurs outils de

visualisation sont au cœur des priorités, augmentant ainsi le nombre de possibilités offertes

à l’utilisateur pour l’analyse. Ces outils devront recevoir et manipuler des données

provenant de la simulation et fournir des options d’aide à l’utilisateur. Les actions

effectuées, c’est-à-dire toutes les créations, modifications et manipulations dans les vues

d’exploration devront être enregistrées dans le but de conserver la trace du cheminement

emprunté par l’utilisateur dans sa démarche. Ces données serviront principalement à

l’interprétation de résultats d’expérimentations, mais seront, comme dans la plupart des

applications logicielles, une fonctionnalité indispensable du produit final pour la

sauvegarde de l’état de projet, permettant l’interruption et la reprise d’une session de travail

ou le partage des résultats avec d’autres utilisateurs.

Un dernier objectif architectural majeur poursuivi par IMAGE est d’intégrer les

technologies développées dans un environnement virtuel immersif de type CAVE (CAVE

Automated Virtual Environment). Ce système consiste à immerger l’utilisateur en le

plaçant à l’intérieur d’un espace de forme cubique entouré de trois murs et d’un plancher

servant de surfaces de projection (voir Figure 1-2). La stéréoscopie et le repérage de la

personne en « off-axis », qui sont utilisés dans l’environnement afin d’ajuster le point de

vue en 3D, contribuent également à augmenter le sentiment de présence et le degré

d’immersion. Une augmentation de la compréhension avec ces technologies novatrices par

rapport aux outils de bureau traditionnels est attendue.

Finalement, des besoins relatifs aux utilisateurs ont également été soulevés : la création de

vues sur demande, la manipulation, la comparaison et l’exploration de données ainsi que la

possibilité de prendre des notes, des saisies d’écran et d’archiver du contenu. Cependant, la

synchronisation des actions avec les autres modules a été identifiée comme étant

primordiale dans cette catégorie. Par exemple, la sélection d’un élément dans le module

Simulation (comme un nœud représentant une branche de simulation) doit se refléter dans

les vues de l’Exploration par un paradigme visuel quelconque appliqué aux données

concernées qui les met en évidence ou vice-versa.

Page 14: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

13

1.2.4 Élaboration de scénarios

L’élaboration d’un ou de plusieurs scénarios pour la première version d’IMAGE a été

identifiée comme une tâche de premier plan et à juste titre; les premiers développements du

module Exploration doivent se baser sur les caractéristiques et les données du scénario afin

de bien y être adaptés.

Pour les premières itérations de développement, quelques possibilités ont été identifiées et

deux ont été retenues pour la première version d’IMAGE. Un premier scénario simulant

l’évolution d’une maladie causée par des pucerons se propageant dans une population

d’arbres servira d’outil de familiarisation pour les utilisateurs lors des expérimentations.

Afin de mieux répondre aux besoins du client principal du projet, les Forces armées

canadiennes, dans le contexte du déploiement militaire en Afghanistan, un deuxième

scénario plus approprié a été choisi. Il s’agit d’une situation où un convoi militaire,

composé de véhicules blindés légers (LAV), doit parcourir un tronçon de route sur lequel il

Figure 1-2 : Environnement virtuel immersif CAVE

(Laboratoire d'immersion virtuelle, RDDC Valcartier 2006)

Page 15: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

14

peut être attaqué soit par des engins explosifs improvisés (IED) placés sous la chaussée,

soit par des opérateurs de lance-grenades (RPG). Le niveau de défense des véhicules est

assuré pour ces deux types d’attaque par une quantité variable d’armures sous-plancher et

latérale respectivement, en fonction d’un nombre variable d’attaques possibles d’IED et de

RPG. La quantité d’armure influence la vitesse du convoi, ce qui se répercute sur la

possibilité de détecter et de désarmer un IED et sur l’efficacité des attaques des tireurs de

RPG. Ces scénarios sont mis en action par le simulateur Pythagoras et les simulations

contrôlées de manière interactive à l’aide du logiciel Multichronia, développé dans le cadre

du projet de recherche de doctorat de François Rioux (Rioux, 2009).

Le scénario de convoi militaire comporte deux volets : tactique et stratégique (ou

procédural). Dans le premier volet, le problème à résoudre est axé sur l’action immédiate

sur le terrain et la principale préoccupation de tous les jours des soldats, c’est-à-dire de

maximiser le transfert d’un chargement du point A au point B tout en minimisant les pertes.

L’analyse vise donc à trouver la meilleure combinaison d’armures possible permettant

d’atteindre cet objectif. Pour la partie stratégique, le problème se situe à un niveau de

planification plus élevé. On observe l’évolution dans le temps de plusieurs paramètres

comme le renseignement (quantité d’information obtenue de la population locale),

Figure 1-3 : Vues 2D du simulateur Pythagoras pour scénarios « pucerons » et « convoi »

(Bernier et Rioux 2008)

Page 16: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

15

l’allégeance (la confiance de cette population envers les militaires) et le support aux bleus

(nos propres forces), où chaque pas de temps représente les résultats d’une simulation de

déplacement de convoi; lors de ces simulations, les paramètres sont contrôlés par un

algorithme d’adaptation qui priorise soit la vie des membres du convoi ou la quantité de

cargo (plus d’armure peut favoriser la vie mais diminue le cargo disponible). L’analyste

peut faire varier la quantité de cargo transporté et le type de priorité selon un ou plusieurs

critères d’optimisation visés.

1.2.5 Expérimentations avec utilisateurs

L’augmentation du niveau de compréhension de l’utilisateur face à une situation complexe

est l’un des principaux enjeux du projet IMAGE. À cet égard, la démonstration d’un tel

accomplissement doit pouvoir être faite à l’aide d’observations et de mesures appropriées

lors d’expérimentations avec des utilisateurs. Ce type d’évaluation relevant du domaine de

la psychologie cognitive, une équipe de chercheurs possédant une expertise en la matière

collabore activement au projet.

Il n’est pas nécessairement évident de prendre de telles mesures contrairement à d’autres

types d’expérimentations dans le domaine des sciences où l’on peut mesurer directement

une ou des variables dans un environnement contrôlé. Ici, le gain à mesurer est au niveau de

la compréhension humaine; cela peut cependant être évalué indirectement par plusieurs

moyens comme l’analyse de prise de décisions, le suivi des actions et des événements lors

de l’expérimentation et l’évaluation de la performance pour une tâche donnée. Une

attention particulière aux conditions d’expérimentation doit être portée afin d’éviter le plus

possible les biais dans les mesures.

Les expérimentations seront réalisées à l’aide de trois groupes de personnes jouant le rôle

d’analyste utilisateur d’IMAGE qui doit comprendre une situation complexe. Le premier

est le groupe « IMAGE Desktop », pour lequel est proposée une suite d’outils dont

Multichronia pour la partie Simulation, ainsi que Eye-Sys et Tableau pour l’Exploration

(décrits dans des sections ultérieures), utilisés dans un environnement de bureau multi-

écran afin de favoriser la synergie entre les sous-systèmes. Le deuxième groupe, « IMAGE

CAVE », utilise la même suite d’outils mais adaptée à l’environnement virtuel de type

Page 17: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

16

CAVE. Finalement, le « groupe contrôle » présente une version simplifiée de Multichronia

et de la vue Eye-Sys, dans laquelle les interactions et la visualisation avancées sont retirées,

tout en conservant un minimum de fonctionnalités nécessaires à l’exécution de la tâche. Les

utilisateurs ont cependant accès à des outils de bureautique standards tels Microsoft Word

et Excel. La comparaison des résultats des sessions d’expérimentations avec ces différents

groupes d’utilisateurs permettra d’évaluer les bénéfices en termes de la compréhension du

scénario offerts par les outils d’IMAGE ainsi que du potentiel des technologies immersives

en cette matière (Lafond, Gagnon et Tremblay 2009).

Ce mémoire fait état des développements réalisés dans le cadre du projet IMAGE décrit

précédemment, principalement au niveau du design de la visualisation dans la partie

Exploration, pour le volet tactique du scénario de convoi militaire.

Page 18: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

17

2 État de l’art

Comme nous l’avons mentionné dans l’introduction, IMAGE, dans son ensemble, couvre

une grande variété de domaines d’étude et un grand éventail de connaissances. Des

informations provenant notamment de recherches personnelles, de cours ainsi que de

l’expertise des membres de l’équipe du projet sont regroupées dans ce chapitre, touchant

divers sujets comme la connaissance, la complexité, la conception de systèmes, la

visualisation scientifique et la visualisation d’information. Plusieurs aspects de la

psychologie cognitive liés à ces domaines y sont également abordés.

2.1 Connaissance

2.1.1 Aspects théoriques

La connaissance est un phénomène complexe et difficilement définissable. Elle peut être

considérée comme un mélange de données, d’expérience et d’information contextuelle qui

s’incorpore dans les normes d’une société. Il peut aussi s’agir d’intégration d’expérience.

Les points de vue sur la question peuvent être très différents dépendamment du domaine

d’étude (psychologie, langues, science, philosophie, religion, etc.). On peut toutefois la

définir d’une manière très générale comme étant une organisation dynamique de la

mémoire.

Il est possible de classifier la connaissance de diverses manières. L’une d’elles, plutôt

générale et intuitive, consiste à la séparer en trois catégories : le quoi, qui représente des

connaissances déclaratives ou des faits; le pourquoi, la raison des choses; le comment, la

connaissance procédurale ou habileté acquise par expérience (Judelman 2004).

D’un point de vue plus formel, on peut considérer les connaissances comme pouvant se

manifester sous deux formes : explicite ou déclarative, facilement descriptible et

transmissible entre individus, et implicite ou procédurale, qui est surtout inconsciente et

difficile à articuler et transmettre. Elles peuvent de plus être classées selon les types

suivants : la connaissance perceptuelle, qui a trait à l’état des choses et de l’environnement,

la connaissance structurelle, qui se rapporte aux aspects dynamiques et aux relations entre

Page 19: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

18

les variables, et la connaissance stratégique, l’influence que l’on porte sur un système afin

d’obtenir l’effet désiré. Ces derniers trois concepts peuvent s’apparenter intuitivement aux

catégories du quoi, du pourquoi et du comment, énoncées plus tôt.

Les connaissances structurelles d’un système impliquent ses composantes, les

caractéristiques comportementales de ces dernières, leurs connexions ainsi que les

comportements du système entier. L’acquisition ou l’apprentissage de ce type de

connaissances est le résultat d’un processus d’énonciation d’hypothèses combiné à une

évaluation (Funke, 1991). Ceci est nécessaire au processus de raisonnement pour

l’application de solutions au système en question. Un intérêt particulier est porté à ces

concepts en raison de l’un des objectifs du projet IMAGE consistant à favoriser la

découverte et l’explicitation des relations entre les composants d’un système complexe.

2.1.2 Cognition humaine

L’humain étant au cœur du processus d’acquisition de connaissances, l’identification des

principaux aspects de son système cognitif et de certaines de leurs caractéristiques

importantes s’avère pertinente. Le schéma de la Figure 2-1, élaboré d’après le modèle

d’Atkinson-Shiffrin, résume les concepts abordés dans cette section.

Figure 2-1 : Modèle du système cognitif

d’après (Atkinson et Shiffrin 1968)

Page 20: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

19

2.1.2.1 Système perceptuel

Le système perceptuel (ou visuel) humain est sans doute le plus utilisé et le plus puissant de

son registre sensoriel, et il lui confère un avantage certain par rapport à la machine, à

l’inverse d’autres facultés telles que la rapidité de calcul. Il lui permet de détecter

facilement et rapidement des patrons visuels dans les images, les formes ou les

représentations de données qu’il regarde et analyse. La théorie de la Gestalt (Judelman

2004), stipulant qu’il se forme un équilibre entre les processus d’isolation et de

regroupement spatial des formes en entités conceptuellement cohérentes, vient expliquer en

grande partie ce phénomène. La similarité de couleur ou de taille, la proximité, la continuité

et la symétrie de composants d’un patron visuel font en sorte qu’on les considère comme un

tout et non pas comme une partie (illustrés à la Figure 2-2). Le contexte joue également un

grand rôle à ce titre sans lequel une situation ne peut prendre de véritable sens (Ware 2000).

D’autres facteurs relevant de la physiologie caractérisent le système de vision humain.

L’acuité visuelle, entre autres, fait que seule la vision fovéale, une petite zone au centre de

l’image perçue, a une résolution nette et optimale. La vision périphérique est donc moins

précise mais, en contrepartie, très efficace pour la détection de mouvement. Également, la

disparité binoculaire confère une fonctionnalité très importante au système perceptuel : la

vision 3D et la perception de la profondeur.

2.1.2.2 Attention et charge mentale

L’attention est le processus par lequel l’humain consacre et oriente ses ressources mentales

à l’exécution d’une ou plusieurs tâches données. L’attention peut être sélective, c’est-à-dire

consacrée à une seule tâche ou source d’information en éliminant les autres qui sont non-

pertinentes, ou partagée, étant alors divisée entre plusieurs tâches ou sources traitées

Figure 2-2 : Patrons visuels

d’après (Tufte 1990)

Page 21: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

20

simultanément. À l’exécution d’une tâche particulière est associée une certaine demande en

ressources attentionnelles, et un opérateur qui l’exécute utilise une partie de sa capacité ou

de son expertise pour l’atteinte d’un certain niveau de performance. La charge mentale est

l’effort requis pour traiter cette tâche et est évaluable comme une fonction des demandes en

ressources et de la capacité de l’opérateur. À ce titre, un opérateur expérimenté a besoin de

moins de ressources pour l’atteinte d’un niveau de performance donné, sa charge mentale

de travail est donc plus légère. Lorsque deux tâches sont exécutées en même temps et

qu’elles demandent toutes les ressources disponibles, il y a division des ressources entre ces

tâches, ce qui résulte en une diminution d’allocation pour chacune (Johnson et Proctor

2003).

Ces concepts sont souvent étudiés à l’aide de la fonction performance-ressources (FPR),

dont un exemple est illustré à la Figure 2-3. Dans ce graphique, on peut voir que la tâche B

est plus facile que la tâche A puisqu’elle requiert moins de ressources de la part d’un

utilisateur pour l’atteinte d’un niveau de performance équivalent. Le plateau de la fonction

B indique que l’utilisateur est limité en termes de données ou que la tâche comporte un

niveau de complexité élevé, ce qui résulte en un plafonnement de la performance même

lorsque les ressources allouées augmentent (Wickens et Hollands 2000).

2.1.2.3 Mémoire

On sépare la mémoire en deux parties qui jouent des rôles bien différents. D’abord, la

mémoire à court terme ou mémoire de travail contient de façon temporaire l’information

d’une tâche en cours de traitement. Elle possède les caractéristiques suivantes :

Figure 2-3 : Performance d’une tâche en fonction de l’allocation en ressources

d’après (Wickens et Hollands 2000)

Page 22: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

21

Capacité limitée (typiquement 7 ± 2 items) mais un temps d’accès court (Miller

1956);

Durée limitée (volatile) et taux d’oubli sensible à la complexité de la tâche, à la

quantité d’information et aux distractions (Hitch 1987);

Retient davantage les éléments initiaux et finaux d’une série d’items.

Étant donné ces caractéristiques et la quantité d’informations qu’elle reçoit (environ

100 000 fois plus qu’elle ne peut en traiter), la mémoire à court terme est souvent le goulot

d’étranglement du système cognitif.

La mémoire à long terme, quant à elle, contient de l’information permanente qui a été

assimilée suite à un processus d’apprentissage. Elle est caractérisée de la manière suivante :

Capacité et durée illimitées mais temps d’accès plus long que la mémoire à court

terme;

Information stockée de façon complexe, dynamique et en constante réorganisation

(réseaux sémantiques);

Effort requis pour traiter, organiser et enregistrer l’information ainsi que pour

l’extraire par la suite. L’intensité de l’effort varie selon le niveau d’expertise et la

fréquence d’utilisation.

2.1.2.4 Cognition externe

Pour palier à ses limites cognitives, notamment celles de la mémoire à court terme,

l’humain a recours à des objets et des représentations externes qu’il manipule en vue

d’accomplir des tâches complexes, principe que l’on nomme cognition externe. Des

artéfacts physiques comme du simple papier et un crayon, en passant par la calculatrice

jusqu’à l’ordinateur, lui permettent d’augmenter ses capacités cognitives. On considère

également le langage, l’arithmétique et autres formalismes logiques comme des artéfacts

mentaux.

Page 23: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

22

Considérant tous ces faits sur la cognition, il conviendra d’en tenir compte lors de la

conception de systèmes d’information centrés sur l’humain.

2.1.3 Compréhension

2.1.3.1 Définitions

Comme pour la connaissance, la compréhension peut se définir de plusieurs manières

dépendant du point de vue. Purement et simplement, on peut dire que la compréhension est

de la connaissance assimilée. Elle implique la découverte de certaines relations logiques

autour d’un concept concernant sa nature même. Plus formellement, la compréhension peut

être définie comme un processus psychologique relié à une entité physique ou abstraite

(une personne, une situation, un message) sur laquelle on peut poser une réflexion et

utiliser des concepts permettant d’interagir avec elle. C’est le fait d’être conscient qu’il

existe des interrelations entre les informations et de pouvoir mettre la connaissance en

pratique.

En considérant ces liens entre concepts comme unité de base de la compréhension, on peut

lui appliquer l’échelle suivante où chaque échelon correspond à un niveau de

compréhension plus approfondi que le précédent (Funke, 1993) :

Relationnel : Existence ou non-existence d’une relation ou d’un lien quelconque

entre des concepts;

Signe : Identification de la ou des directions de ce lien;

Numérique : évaluation quantitative où l’on peut mettre un certain poids sur son

intensité ou son importance.

L’échelle de classification des niveaux de compréhension présentée ci-après se base plutôt

sur les étapes progressives d’une démarche d’analyse que l’on peut faire sur des

connaissances à propos d’une situation (Levels of Understanding 2009):

Littéral : Se limite simplement à l’information connue, aux faits et à la description

des facteurs impliqués dans la situation analysée;

Page 24: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

23

Latéral : Mise en contexte des faits (histoire, politique, géographie); comparaison

avec d’autres situations du même type et analyse de ses effets; mise en relation des

parties impliquées;

Critique : Réflexion sur ce qui se produit réellement, ainsi que sur les origines et les

causes de la situation, ce qu’elle implique;

Spéculatif : Hypothèses sur ce qui se produira dans l’avenir et sur les effets

possibles de certains changements éventuellement apportés, qui pourraient empirer,

améliorer ou même résoudre le problème.

En psychologie, on définit le « sensemaking » comme un processus de prise de conscience

d’une situation et de sa compréhension de manière à pouvoir agir de manière informée et

selon des principes définis (Alberts et Hayes 2006).

2.1.3.2 Modèle mental

Un modèle mental est un ensemble de mécanismes par lequel les humains peuvent décrire

la forme et l’utilité d’un système, expliquer son fonctionnement ainsi que ses états

observés, pour ensuite pouvoir prédire ses états futurs. C’est un outil interne dynamique,

relativement durable et accessible mais limité, qui permet de percevoir, simplifier et mettre

en contexte des problèmes complexes (Rouse et Morris 1986). Comme tout modèle, il

s’agit d’une représentation imparfaite ou incomplète de la réalité qui se limite à une portion

de cette dernière (Doyle et Ford 1998).

Il s’agit cependant d’un outil utile mais seulement observable de manière indirecte. Il peut

être inféré par l’observation de comportements, d’actions, ou de verbalisations de la

personne sous forme d’interviews ou questionnaires. Il peut également être explicité par

l’utilisateur lui-même à l’aide de diagrammes, schémas heuristiques ou cartes conceptuelles

(mind map).

2.1.3.3 Heuristiques

Les heuristiques sont des raccourcis mentaux permettant d’arriver rapidement à un

jugement ou une prise de décision satisfaisante. Elles permettent de diminuer le temps et

l’effort requis pour l’exécution d’une tâche ainsi que le traitement d’une plus grande

Page 25: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

24

quantité d’information dans des contextes complexes. Quoiqu’utiles et souvent essentielles

dans des situations où s’exerce une certaine pression temporelle, l’utilisateur doit s’en

méfier car cela peut mener à de mauvais jugements et être la source d’erreurs. Dans des cas

où l’on désire mesurer le niveau de compréhension, il faut aussi s’en méfier car elles

peuvent mener à de bonnes performances de la part d’un utilisateur sans que ce dernier ait

une véritable compréhension du système (Jobidon 2008).

2.2 Complexité

Alors que la complexité a toujours fait partie des activités humaines, son niveau a

considérablement augmenté suite aux avancées majeures qu’ont connus de nombreux

domaines dont les technologies de l’information. La rapidité avec laquelle ces avancées se

produisent est également une conséquence des nouvelles interactions qui se sont créées

entre des domaines de recherche à l’origine indépendants; ces nouveaux liens de plus en

plus nombreux contribuent également à l’augmentation du niveau de complexité (Poussart

2006).

Les systèmes complexes englobent une grande variété de situations pour lesquelles il n’y a

pas vraiment de théorie unifiée; chaque domaine approche la complexité selon ses besoins,

et c’est ce que nous tenterons de faire le mieux possible dans ce mémoire.

L’incapacité de bien interagir avec une situation complexe mène souvent à une perte de

contrôle ou à des prises de décision non-optimales, d’où l’intérêt grandissant de trouver des

moyens pour améliorer la compréhension et l’interaction avec ce type de situation.

2.2.1 Définition : complexe versus compliqué

D’abord, il est impératif de faire la distinction entre une situation qui est complexe ou qui

ne l’est pas. Les auteurs (Kurtz et Snowden 2003) proposent la classification suivante :

Situation simple (connue) : les patrons qui régissent la situation sont connus et les

relations de cause à effet sont perceptibles et prédictibles;

Situation compliquée : les relations sont non-linéaires, impliquent des variables

intermédiaires ou font intervenir de très grandes quantités de données. Les patrons

Page 26: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

25

qui régissent la situation peuvent être découverts par inférence et une analyse

approfondie;

Situation complexe : Les relations ne sont cohérentes qu’après une analyse

rétrospective de la situation et ne se répètent pas au cours du temps.

Situation chaotique ou aléatoire : Il n’y a pas de relations ou de patrons perceptibles

dans les données.

Certaines situations, en apparence compliquées, sont difficiles à analyser en raison du très

grand nombre d’éléments qui les composent; ce peut n’être cependant qu’une question de

temps pour que la situation vienne à portée de compréhension, grâce à de nouvelles

théories, à des modèles ou ressources de calcul disponibles. Dans de tels cas, le principe de

réductionnisme, c’est-à-dire la segmentation du système complet en composantes

individuelles et leur isolation à la manière de « boîtes noires », peut être appliqué. Ainsi, le

comportement du système entier peut être prédit de manière fiable et précise (Poussart

2006).

Une situation dite complexe, selon notre définition, ne peut être analysée selon cette

méthode. Les composantes individuelles, s’il est possible de les identifier, ne peuvent pas

prédire correctement le comportement du système entier à cause d’autres phénomènes et

interactions qui interviennent. Ces caractéristiques, propres aux situations complexes, sont

décrites dans la section qui suit.

2.2.2 Caractéristiques de la complexité

La complexité peut se manifester sous de nombreuses formes et dans une très grande

variété de contextes, comme en témoignent les caractéristiques suivantes (Hübler 2005),

(Poussart 2006) :

Boucles de rétroaction et patrons de comportement non-linéaires : Les composants

d’un système complexe comportent des liens circulaires et entrelacés, des fonctions

de croissance ou de décroissance exponentielles, des oscillations, des délais, ainsi

que des combinaisons multiples de ces derniers éléments, rendant impossible

l’analyse linéaire de cause à effet. Souvent, les valeurs quantitatives de ces

Page 27: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

26

comportements ne sont pas tangibles, c’est-à-dire que l’on ne peut pas les mesurer à

l’aide d’instruments. Les systèmes complexes relevant des domaines symbolique et

social en sont des exemples;

Récursivité : Un système complexe, vu à l’échelle macroscopique, peut être

composé de nombreux sous-systèmes qui sont également complexes à une échelle

microscopique (un organisme vivant, par exemple);

Sensibilité aux conditions initiales : Un très léger changement au niveau des

conditions initiales peut engendrer de grandes variations dans le comportement

futur du système, le rendant tout à fait imprévisible;

Frontières floues : La frontière entre le fonctionnement interne du système

complexe et son interaction avec l’extérieur n’est pas claire et précise, mais plutôt

arbitraire. La segmentation du système interne en plusieurs entités pose un

problème de même nature;

Compréhension – complexité et observateur : La complexité sera perçue

différemment tout dépendant de l’échelle de temps ou d’espace de laquelle elle est

observée. Également, l’observateur, en fonction de son expérience et de son

domaine d’étude, amène une dimension très subjective à l’évaluation d’une

situation complexe, que l’on ne retrouve pas dans les démarches réductionnistes;

Système en évolution : Les actions posées sur un système complexe influencent non

seulement ses entités mais aussi l’ensemble des connexions qui les unissent. Ce

dynamisme fait en sorte que la nature même du système complexe évolue avec le

temps; l’application d’une quelconque forme de contrôle sur cette évolution est

donc un défi de taille;

Lien traditionnel de cause à effet perturbé : À cause des nombreuses interactions

imprévisibles entre les agents, il est pratiquement impossible d’isoler

individuellement les causes et leurs effets;

Page 28: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

27

Opacité : Il est difficile ou impossible de mesurer certaines données ou relations

entre ces dernières et d’observer les effets des interactions avec le système. Certains

paramètres restent cachés ou sont plus ou moins pertinents, ce qui brouille le

portrait d’analyse;

Pas de contrôle centralisé : En général, les systèmes complexes n’obéissent pas à

une entité maîtresse qui dirige toutes les opérations. Quoique cela puisse être un

avantage du point de vue de la robustesse puisqu’il n’y a pas d’élément critique

pouvant causer une défaillance majeure, cela peut être une source d’instabilité à

cause d’une plus grande sensibilité aux perturbations légères.

Lorsque l’on recherche des aspects plus déterminants, communs à tous les systèmes

complexes, ce sont les deux caractéristiques suivantes qui se distinguent :

Auto-organisation : C’est un processus dynamique par lequel le système complexe

peut s’adapter et maintenir sa structure sans intervention extérieure;

Émergence : On considère qu’il y a émergence lorsque des patrons, des structures,

des comportements ou d’autres propriétés cohérentes de haut-niveau apparaissent

suite aux interactions de bas-niveau entre les composants du système.

2.3 Ingénierie des systèmes

Dans cette section sont regroupés des aspects théoriques et des recommandations en ce qui

a trait à la conception de systèmes contrôlés par des utilisateurs humains. À ce titre, les

aspects cognitifs y prennent une place importante. On présente en premier lieu un portrait

des utilisateurs de systèmes d’information, des points de vue général et spécifique aux

experts, dans un contexte de design d’interfaces. Par la suite, une liste de besoins auxquels

un système centré sur l’humain devrait répondre est dressée. Finalement, divers principes

de design concernant les interfaces personne-machine ainsi que des recommandations

visant à réduire la charge mentale sont présentés.

Page 29: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

28

2.3.1 Profil des utilisateurs

2.3.1.1 Considérations générales

Le succès de développement d’une interface pour un système est souvent difficile à

atteindre pour de multiples raisons, notamment à cause d’une incompréhension entre

concepteurs et utilisateurs en ce qui a trait aux besoins, aux spécifications fonctionnelles du

système et aux possibilités technologiques. En général, on peut difficilement se fier aux

futurs utilisateurs concernant la conception, l’optimisation et la prévision de contraintes à

venir. Ils pensent en termes de logique d’utilisation alors que les concepteurs pensent en

termes de logique de fonctionnement. Cependant, les utilisateurs peuvent faire preuve de

créativité, d’imagination et de jugement.

2.3.1.2 Experts

Quoique les informations précédentes amènent certains faits généraux sur de potentiels

utilisateurs, il importe de mentionner que le système d’aide à la compréhension développé

sera également utilisé par des gens possédant une expertise dans un domaine donné qui sont

confrontés à des situations complexes et savent les gérer, ou du moins y faire face, en

fonction de cette expertise.

Ces experts se distinguent d’abord par des traits psychologiques forts comme une confiance

en soi élevée, un bon sens des responsabilités ainsi qu’une grande aisance pour la

communication à l’usage formel de vocabulaire spécialisé. Ils ont également des

compétences pour prendre des décisions difficiles en situation de stress; ils ont des

aptitudes à déceler les cas d’exception en plus de savoir délibérer de façon naturelle sur un

plan d’action. Ils sont également habiles à utiliser des stratégies décisionnelles en suivant

des processus rigoureux, en sachant décomposer les problèmes complexes et en anticipant

des décisions d’action, tout en gardant une bonne vue d’ensemble du problème.

Les experts, malgré leurs nombreuses qualités, sont avant tout des humains et ils sont

assujettis à certaines limitations cognitives, notamment au niveau de la charge mentale.

Leur expérience et leurs solides connaissances peuvent leur jouer des tours en ce qui a trait

aux heuristiques, comme appuyer une décision sur des signes contradictoires

(représentativité), simplifier à l’excès une situation problématique (disponibilité) et résister

Page 30: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

29

aux changements (ancrage). Des études ont enregistré des baisses de performance dans

l’exécution de tâches comportant les caractéristiques suivantes : stimuli dynamiques vs

statiques, décisions sur des comportements vs des choses, tâches uniques vs répétitives, etc.

(Shanteau 1992). En ce qui a trait aux phénomènes complexes, il a été souvent observé que

les gens éprouvent des difficultés à traiter un système impliquant des relations entre plus de

4 variables, de prédire des comportements et de porter des jugements adéquats, même s’il

s’agit d’évaluateurs expérimentés et que toute la structure et les paramètres du système sont

connus.

2.3.2 Systèmes cognitifs

Les théories présentées dans cette section s’apparentent au domaine de la macrocognition,

qui délaisse l’étude approfondie de composantes élémentaires de la cognition humaine pour

s’intéresser aux systèmes dans leur globalité et ce qui touche de plus près des tâches de la

vie réelle. Le principe du « cognitive fit », qui consiste à présenter l’information de manière

conforme au type de traitement que l’humain doit en faire, résume bien l’objectif recherché

par ces théories (Hollnagel et Woods 1983).

2.3.2.1 Triade

Il s’agit d’un modèle stipulant que la performance atteinte avec un système dépend de trois

éléments interconnectés : le monde externe ou le domaine, les agents humains et artificiels

qui y interagissent et les artéfacts ou représentations externes. Le monde englobe des

caractéristiques qui influencent la charge cognitive requise à l’exécution de la tâche et qui

peuvent être de nature complexe. Le nombre d’éléments à contrôler, les embûches à éviter,

les risques, la dynamique et le couplage entre les éléments sont des facteurs appartenant à

cette partie. Les facteurs relatifs aux agents regroupent les aspects cognitifs humains et les

communications avec les agents artificiels. Les artéfacts touchent les modes de

représentation de l’information provenant du monde (Woods et Roth 1988).

Page 31: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

30

2.3.2.2 Besoins de support fondamentaux

Un système cognitif devrait répondre aux cinq besoins suivants correspondant à des

fonctions cognitives spécifiques qui y sont associées (Christoffersen et Woods 2002):

Observabilité : Surveillance adéquate de la situation. Doit être efficace en termes de

détection de changements (« change blindness »);

Dirigeabilité : Concerne la planification et la coordination. Doit permettre

d’entreprendre, d’interrompre et de reprendre des tâches concurrentes de façon

dynamique selon les priorités;

Attention dirigée : Contrôle de l’attention et de la direction vers laquelle elle est

portée. C’est une fonction importante pour les tâches où l’utilisateur doit par

exemple choisir une cible à l’intérieur d’un court laps de temps. Doit éviter les

sources de distractions (auditives notamment);

Résilience : Doit être adaptable et résistant aux perturbations;

Monde Agents

Artéfacts

Stratégies

Dem

andes

Repré

senta

tions

Discipline

d’application

Figure 2-4 : Principe de la triade

(d’après Woods & Roth, 1988)

Page 32: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

31

Travail d’équipe : Supporte une certaine dimension sociale qui facilite le partage et

la communication de l’information. La capacité cognitive d’une équipe est en

général plus élevée que la somme des capacités individuelles de ses membres.

2.3.2.3 Principes HCI

Les principes HCI (Human-Computer Interfaces ou Interfaces Personne-Machine) ont pour

objectif de guider la conception de la meilleure interface possible pour un système en

fonction des contraintes de tâches et de la classe d’utilisateurs, et peuvent s’appliquer à une

large sphère de domaines (Tremblay, Lafond et Gagnon 2008).

« Affordance » (ou potentialité): Utilisation d’éléments visuels clairs et selon les

attentes de l’utilisateur;

Structure : Regroupement spatial des items suivant leur similarité ou le type de

fonctionnalité;

Consistance : L’apparence, la position et le comportement des éléments sont faciles

à apprendre et à retenir;

Tolérance aux fautes : Permet de revenir facilement en arrière en cas d’erreur ou

avertit l’utilisateur de manière élégante lorsque cela est impossible. Implante des

mécanismes qui préviennent et empêchent les occurrences d’erreurs;

Facilité de navigation : Utilise des métaphores de contrôles adaptées, permet à

l’utilisateur de prendre des raccourcis et de créer ses propres patrons.

2.3.2.4 Réduction de la charge mentale

Comme il a été mentionné dans une section précédente, la charge mentale est l’effort requis

pour l’exécution d’une tâche, ce qui demande à l’utilisateur une certaine quantité de

ressources qui sont limitées. Il peut donc devenir rapidement surchargé à cause de

limitations au niveau de la mémoire de travail notamment. Un mauvais design d’interface

ou une mauvaise utilisation de la technologie peuvent augmenter inutilement la charge

mentale, diminuant ainsi les ressources disponibles pour l’exécution de la tâche principale.

Dans les cas où ces tâches visent la compréhension de situations complexes, il est impératif

Page 33: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

32

de ne pas surcharger mentalement l’utilisateur. On présente donc ici une série de

recommandations concernant le design d’interface visant à minimiser cette

charge (Shneiderman 1998):

1. Privilégier la clarté visuelle : La théorie sur le système visuel nous a appris les

tendances de l’humain à regrouper visuellement les éléments. Il peut donc être

avantageux de tirer parti de cela en regroupant ensemble les éléments (chunking). Il

faut également éviter les écarts informationnels : une plus grande quantité de

données affichées n’équivaut pas nécessairement à une plus grande quantité

d’informations assimilées.

2. Prévoir des valeurs par défaut et permettre l’annulation et le rétablissement

d’actions de l’utilisateur (fonctions « undo » et « redo ») : Ceci s’inscrit dans les

politiques de réduction et de tolérance aux erreurs et concerne principalement les

interfaces où l’on doit entrer des données, mais peut inclure toute manipulation

modifiant l’état du système.

3. Soulager la mémoire à court terme : Lorsque l’utilisateur doit suivre une certaine

procédure et surtout s’il n’est pas familier avec cette dernière, il convient de l’inciter

le plus simplement possible à entrer un choix ou une commande lorsque nécessaire

afin de limiter l’effort pour se souvenir ou deviner ce qu’il doit faire.

4. Fournir de la rétroaction visuelle : Il est important de fournir des informations sur

l’état du système afin que l’utilisateur ne soit pas perdu : repères de navigation, type

d’action en cours, autres actions possibles, messages informatifs pendant le

traitement de données, etc.

5. Privilégier la reconnaissance ou la reconstruction plutôt que le rappel : La

reconnaissance exploite des métaphores souvent apparentées au monde réel et se

fait rapidement; la reconstruction fait appel à un certain encodage de l’information;

le rappel implique la récupération d’informations apprises par cœur. Il est plus

facile pour l’humain de se rappeler de la signification des choses plutôt que sa

représentation exacte (pour les acronymes, par exemple).

Page 34: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

33

6. Offrir la possibilité de raccourcis : Leur utilisation peut devenir rapidement

automatique avec la fréquence d’utilisation et permet donc d’augmenter l’efficacité.

Évidemment, la conformité aux standards de l’industrie est, dans la mesure du

possible, à privilégier.

7. Privilégier une syntaxe de type objet-action : Comme pour l’approche de

développement orienté objet, il est souvent plus naturel d’offrir des interactions et

des choix associés à un objet alors qu’il est pratiquement inutile de connaître les

actions invalides sur ce dernier (comme les options grisées dans les menus).

8. Utiliser des métaphores du monde réel : Pour les métaphores, quoiqu’elles facilitent

les analogies et le transfert de connaissances, une certaine prudence doit être

exercée dans leur utilisation et une validation auprès de vrais utilisateurs est

encouragée pour s’assurer qu’elles sont correctement interprétées.

9. Privilégier la découverte progressive des fonctions offertes : Il s’agit principalement

de ne montrer à l’utilisateur que ce qui est utile lorsqu’il le souhaite, surtout s’il est

un novice, ce qui lui donne un meilleur sentiment de contrôle. Ceci peut se réaliser

en offrant des listes d’options simples et avancées.

2.4 Exploration

L’un des principaux problèmes auquel les gens de plusieurs disciplines font face est la

croissance et la complexification de l’espace d’information. De plus, la plupart des

systèmes actuels ne sont pas correctement optimisés pour le transfert, l’organisation et la

navigation à travers cette information. Or, on voudrait pouvoir aller explorer au cœur de ces

données et y découvrir des relations, des patrons, en somme des connaissances

approfondies et de haut niveau. Ce genre de tâche étant souvent difficile à réaliser

automatiquement à l’aide d’ordinateurs, il faut se tourner vers les capacités d’analyse de

l’humain. Comme il a déjà été mentionné plus tôt, ce dernier excelle au niveau de la

perception et de l’analyse de données visuelles. Le but de l’exploration est de favoriser une

meilleure compréhension à l’aide de représentations visuelles adaptées au contexte et aux

données.

Page 35: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

34

2.4.1 Visualisation d’information

2.4.1.1 Définitions et origines

La visualisation d’information peut être définie comme étant la réduction et la traduction

d’interrelations sémantiques et topologiques de l’espace de connaissances en une

cartographie visuelle interactive tirant avantage des facultés visuelles humaines (Judelman

2004). Il s’agit d’une combinaison entre une représentation visuelle et une interface

utilisateur permettant de manipuler et d’explorer des centaines, voire jusqu’à des millions

d’éléments. Les concepts qui peuvent être représentés sont variés (prix, niveau de stress,

données médicales, taux d’échanges entre organisations, résultats sportifs, etc.) et leurs

représentations visuelles très différentes selon le type de données et l’objectif visé. C’est

d’ailleurs une discipline issue de différents domaines d’étude :

Graphisme;

Statistiques, au niveau de l’analyse de données multidimensionnelles ou à plusieurs

variables;

Visualisation scientifique, qui consiste à reproduire visuellement en 3 dimensions

des phénomènes physiques ou biologiques, notamment en médecine. Les avantages

de ces méthodes sont d’étudier des phénomènes difficiles ou impossibles à observer

à l’état réel, d’améliorer le transfert d’informations disponibles par des

représentations visuelles améliorées par rapport à la réalité, et aussi de remplacer

des expériences coûteuses ou impossibles à réaliser par des simulations visuelles

interactives;

Interfaces personne-machine;

« Data mining », discipline qui étudie la découverte de connaissances par méthodes

mathématiques à des fins de visualisation et d’amplification de la cognition.

2.4.1.2 Objectifs et défis

Pour permettre une compréhension approfondie, une visualisation doit favoriser la

reconnaissance efficace et rapide de patrons dans les données et la révélation de relations a

priori invisibles. Elle devrait en outre suivre les principes suivants :

Agrégation : Regrouper, simplifier et organiser les informations selon leur

apparence, leur forme ou leur structure relationnelle;

Page 36: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

35

Abstraction : Permettre l’omission sélective de données en fonction de leur nombre,

de leur ordre de grandeur et de leur pertinence, selon le contexte.

Hiérarchie : Permettre de passer d’un niveau d’abstraction à l’autre à l’aide de

zoom sur les données.

Appréhension : la structure et le contenu de la visualisation sont perçus et compris

efficacement et correctement.

Congruence : la structure et le contenu de la visualisation correspondent à la tâche

et à la représentation mentale que l’on doit s’en faire (Tversky 2009).

Cependant, comme nous l’avons déjà mentionné, il existe certaines limitations techniques

quand à la quantité de données à gérer et leur accessibilité, mais aussi en ce qui a trait au

développement de théories générales permettant la classification et la standardisation des

types de données, ce qui pourrait s’avérer nécessaire pour la réalisation de systèmes

génériques. L’exploration de données dans des espaces à plusieurs dimensions, la mise à

l’échelle et l’étiquetage posent également difficulté. La personnalisation des interfaces

selon les préférences des utilisateurs, le support du travail collaboratif ainsi que des

méthodologies d’évaluation comptent également parmi les défis à relever (Judelman 2004).

2.4.2 Techniques de visualisation

Cette section se veut un résumé d’état de l’art de techniques de visualisation développées

pour des applications variées et divers types de données, et se termine avec quelques

observations et recommandations de la littérature sur les interfaces 3D et immersives.

2.4.2.1 Représentations géographiques

Des développements récents dans les applications de visualisation géographique ont rendu

une immense quantité de données cartographiques accessibles au grand public, notamment

par le biais d’interfaces web. On pense ici à Google Maps et Google Earth (Figure 2-5), qui

offrent des représentations 2D et 3D interactives de la carte du monde. À l’aide d’outils de

navigation (widgets et souris), l’utilisateur peut parcourir toutes les zones géographiques du

monde à diverses échelles de rapprochement, les plus élevées ne montrant que les

informations de haut niveau comme les frontières politiques internationales, et les plus

Page 37: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

36

rapprochées détaillant les limites municipales et les réseaux routiers de manière plus ou

moins détaillée selon l’échelle. Des vues par photos aériennes et satellites à résolution

variable sont également disponibles, et il existe une panoplie d’applications connexes

(mapplets) et d’extensions au format KML (Keyhole Markup Language) offrant toutes

sortes de fonctionnalités de visualisation que l’utilisateur peut en tout temps activer ou

désactiver, comme le positionnement GPS, les mesures de distance et d’altitude, la

météorologie et les marées, la consommation d’énergie, les trajets aériens, etc. Ces

fonctionnalités suivent un principe très répandu en visualisation d’information : Vue

d’ensemble Zoom et filtre Détails à la demande.

2.4.2.2 Structure, topologie, hiérarchie

Dans cette section, les méthodes de visualisation présentées se concentrent sur les objets et

leurs relations spatiales ou hiérarchiques. C’est pourquoi on y retrouve principalement des

représentations sous forme d’arbres ou de graphes. En plus des représentations

d’arborescences traditionnelles 2D, certaines techniques utilisant le 3D et la géométrie

hyperbolique reconfigurable en temps réel ont été développées afin de maximiser l’espace

utilisé et la quantité de données représentable dans un espace restreint, en ne mettant au

premier plan que l’information demandée par l’utilisateur (Figure 2-6). Le même principe

est également utilisé pour des représentations radiales ou circulaires imbriquées (Figure

2-7).

Figure 2-5 : Google Earth, représentation de trajets aériens et de densité de population

(Google 2009)

Page 38: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

37

Une autre manière ingénieuse de représenter des données hiérarchiques sur un plan 2D est

de diviser cet espace en secteurs où chacun d’eux représente une branche de l’arbre, et sur

lequel on applique un code de couleur qui peut représenter une quantité, une densité ou un

type de données (technique du TreeMap, Figure 2-8). Dans la même lignée de

représentation visuelle cartographique, mais plus inusitée, une représentation de

l’empreinte littéraire de la Bible a été réalisée où chaque rectangle, représentant l’un de ses

livres, est teinté selon un code de couleur exprimant la longueur des phrases. Il est donc

possible d’un seul coup d’œil d’analyser grossièrement le style littéraire utilisé dans

différents livres (Figure 2-9).

Figure 2-7 : Représentation circulaire imbriquée

(Fractal:Edge 2009)

Figure 2-6 : Représentations hyperbolique et radiale

(CAIDA 2007)

Page 39: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

38

2.4.2.3 Relations sémantiques

Exploitant aussi des représentations cartographiques, les techniques de visualisation de

relations sémantiques font ressortir les ressemblances et différences entre les éléments d’un

ensemble de données. La plupart des systèmes implémentant ce type de visualisation sont

des logiciels de recherche de documents ou de pages web permettant de regrouper

visuellement les résultats par mots-clés ou quelque autre critère. Les techniques utilisées

permettent de représenter les relations entre plusieurs critères à la fois en jouant sur les

formes et l’affichage de liens (Figure 2-10).

Figure 2-9 : Empreinte littéraire de la Bible

(Keim et Oelke 2007)

Figure 2-8 : TreeMap (SequoiaView)

(TU/e 2009)

Page 40: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

39

2.4.2.4 Données temporelles

Le paramètre temps est souvent une variable particulière qui est déterminante dans la

manière de visualiser le problème auquel elle se rapporte, d’où l’intérêt de mentionner des

techniques de visualisation qui lui sont spécifiques.

Les graphiques 2D traditionnels sont évidemment très répandus pour voir l’évolution d’une

ou plusieurs variables par rapport au temps, mais certaines techniques permettent

d’améliorer le rendu graphique et l’exploration des données lorsqu’elles sont très

nombreuses. L’exemple de la Figure 2-11 montre une représentation de la densité des

données par rapport au temps, par l’intensité de la couleur, plutôt que chacun des points.

Ceci permet de garder l’intérêt d’une vue globale sur les données qui autrement deviendrait

inutilisable à cause de l’occultation ou du manque de résolution.

Figure 2-10 : Exemples de représentations sémantiques

(Aduna 2007), (Netzpannung 2007)

Page 41: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

40

Une autre manière d’exprimer la densité en fonction du temps est celle du diagramme

« rivière » (Figure 2-12), où la quantité de données en rapport à des catégories données à un

instant donné est représentée par l’épaisseur de traces de couleur. Il est donc possible de

voir rapidement des tendances générales ou spécifiques quand à l’ampleur des données. Le

second exemple, à la Figure 2-13, montre un diagramme formé de cercles concentriques où

sont représentés divers types d’événements d’alertes de sécurité, du plus récent au plus

ancien partant de l’intérieur du cercle.

Il est également possible d’aller plus en détail dans l’exploration temporelle en y consacrant

plus d’une dimension. La Figure 2-14 montre un exemple où les variables X et Y sont

dédiées respectivement à la journée et à l’heure d’observation des données, permettant de

Figure 2-13 : Représentation circulaire

(Foresti, et al. 2006)

Figure 2-12 : Diagramme « rivière »

(ThemeRiver 2009)

Figure 2-11 : Vues globale et rapprochée d'une représentation de données par densité

(Jerding et Stasko 1998)

Page 42: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

41

voir des tendances au fil des jours et d’identifier rapidement les heures de pointe de

consommation d’énergie.

Pour représenter des événements ou d’autres données non numériques, des diagrammes de

type Gantt ou « ligne du temps » sont préférables, et une utilisation judicieuse du 3D

permet de maximiser la quantité d’information affichée dans l’espace disponible. Le

premier exemple en Figure 2-15 en fait usage pour représenter de nombreuses images

associées à une position spécifique sur un plan 2D, mais en utilisant la 3D pour les projeter

constamment vers la caméra. Le second exemple utilise l’effet de perspective pour

visualiser une plus grande partie de la ligne du temps tout en gardant les données d’intérêt

pleinement visibles au centre (Figure 2-16).

Figure 2-14 : Visualisation à 2 dimensions temporelles

(van Wijk et van Selow 1999)

Page 43: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

42

2.4.2.5 Focalisation et contexte

On entend par focalisation et contexte (focus + context) les méthodes qui adaptent la

visualisation de manière à mettre en évidence ou afficher en détails seulement une partie

des données disponibles selon les désirs de l’utilisateur. Ceci est réalisé à l’aide de diverses

techniques permettant de comprimer et d’étendre l’espace d’affichage. La représentation de

données tabulaires de la Figure 2-17 permet l’exploration d’un grand nombre de données

numériques grâce à un système d’histogrammes et seule une zone particulière permet de

représenter les valeurs numériques précises, un peu à la manière d’une loupe. Le même

genre de résultat est obtenu pour un menu de sélection à la Figure 2-18, mais en utilisant

une méthode de distorsion. Enfin, l’usage d’effets de flou peut également être très utile

pour mettre l’accent sur des éléments ou des zones d’affichage spécifiques, comme le

montre la Figure 2-19.

Figure 2-16 : Mur en perspective

(Daassi 2003)

Figure 2-15 : Ligne du temps

(Kullberg 1995)

Page 44: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

43

Figure 2-19 : Effet de flou

(Kosara, et al. 2002)

Figure 2-18 : Effet de distorsion

(Bederson 2000)

Figure 2-17 : Exploration tabulaire avec loupe sur les données

(Rao et Card 1994)

Page 45: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

44

2.4.2.6 Espaces à plusieurs dimensions

Il est relativement aisé de représenter des fonctions de trois variables dans un espace à trois

dimensions; il est également possible de dépasser ce nombre en utilisant d’autres repères

visuels comme la couleur, la forme ou la grosseur des points. Mais lorsque le nombre de

variables est beaucoup plus grand, d’autres méthodes peuvent être nécessaires pour faire

une première analyse permettant d’identifier autour de quels paramètres et de quelles

valeurs de ces derniers on retrouve des patrons, des tendances ou tout autre phénomène

d’intérêt. La technique des coordonnées parallèles vient en réponse à ce problème. Elle

permet de représenter des ensembles discrets de données à n dimensions, où n axes

verticaux représentant chacun des paramètres du problème sont disposés parallèlement

entre eux, et pour chaque donnée multidimensionnelle, une ligne brisée parcourt ces axes

suivant les valeurs correspondantes. Des techniques de brushing, qui sont des méthodes de

sélection de données spécialisées à ce type de graphique, permettent d’isoler des sous-

ensembles de données et de détecter des corrélations.

2.4.3 Considérations de design

Certaines considérations supplémentaires ont été soulevées dans la littérature concernant le

design de systèmes visuels et de leurs interfaces, notamment l’importance de s’approprier

certaines connaissances en psychologie cognitive, ce qui a été démontré dans les sections

précédentes. Le domaine des arts visuels peut également être une source d’inspiration pour

le design de représentations graphiques. Également, l’inclusion de techniques de calcul

Figure 2-20 : Coordonnées parallèles

(Hauser, Ledermann et Doleisch 2002)

Page 46: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

45

permettant de faire un prétraitement des données, basées sur des théories mathématiques, de

l’intelligence artificielle ou autres, n’est pas à exclure si on a affaire à de larges espaces de

paramètres ou d’immenses quantités de données, au point où la limite de « bande

passante » vers le cerveau serait atteinte.

Page 47: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

46

3 Module Exploration

Ce chapitre fait état de la démarche effectuée dans le développement de la première version

du module Exploration du projet IMAGE. On débute par la présentation des plateformes

logicielles retenues pour les développements ainsi qu’un compte rendu des premières

phases de test et de prototypage avec celles-ci. L’implémentation d’une solution pour le

transfert et le traitement de données de simulation XML est par la suite présentée.

Finalement, les paradigmes de visualisation développés pour le volet tactique du scénario

du projet IMAGE ainsi que les mécanismes de gestion de données et de synchronisation

nécessaires sont expliqués.

3.1 Plateformes logicielles

Comme nous l’avons mentionné dans l’introduction, l’utilisation de technologies déjà

disponibles est de mise afin de limiter les efforts de développement. À cet égard, diverses

plateformes logicielles ayant un potentiel intéressant pour répondre à nos besoins ont été

étudiées et utilisées au cours du projet. Cette section présente une description sommaire des

fonctionnalités et caractéristiques générales de chacune de ces plateformes; des détails plus

techniques et spécifiques aux développements seront présentés dans les sections suivantes.

3.1.1 ACE

ACE (Adaptative Communication Environment) est

un framework C++ open-source orienté objet

implémentant plusieurs patrons de base utilisés dans

les processus de communication pour des tâches telles

que la gestion, le routage et la distribution

d’événements et de signaux, les communications

interprocessus, la gestion de mémoire partagée, la

gestion dynamique de services distribués et la

synchronisation. Il vise à simplifier le développement d’applications haute-performance et

temps-réel requérant l’exécution de ces types de tâches, et il supporte une grande variété de

systèmes d’exploitation dont Windows et plusieurs distributions de Linux, ainsi que de

Figure 3-1 : Logo ACE

Page 48: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

47

nombreux compilateurs. C’est un framework ayant plusieurs qualités logicielles comme la

portabilité, la flexibilité, l’extensibilité, la réutilisabilité et la modularité (Schmidt 2009).

3.1.1.1 Composantes logicielles

Comme on peut l’observer sur la Figure 3-2, ACE se divise en plusieurs couches

d’abstraction :

ACE OS Adaptation Layer, qui se situe directement au-dessus de l’API C du

système d’exploitation et qui isole les autres composants de tout ce qui est

spécifique à la plateforme;

C++ Wrappers, qui encapsulent plusieurs aspects de bas niveau et facilitent le

développement en offrant la possibilité d’hériter et d’instancier de nombreuses

classes.

Frameworks, offrant des possibilités supplémentaires pour la programmation haut-

niveau de services et d’applications réseau en utilisant des « templates » C++ ainsi

que des patrons de conception tels que Abstract Factory, Strategy et Service

Configurator.

Page 49: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

48

ACE inclut également d’autres librairies de services distribués de haut niveau et une

implémentation de CORBA (ACE TAO).

3.1.1.2 ACEXML

Il s’agit d’un composant connexe de ACE basé sur la norme SAX 2.0 (Simple API for

XML) permettant d’intégrer des fonctionnalités de filtrage XML à diverses applications. Il

ne supporte pas entièrement pour l’instant toutes les fonctionnalités requises spécifiées par

la norme XML mais des développements à cet égard sont envisagés dans le futur.

3.1.2 MySQL

MySQL est l’un des systèmes de gestion de bases de

données les plus populaires au monde, utilisé autant par le

grand public que par les professionnels, et en particulier les

applications Web dont celles de grandes entreprises telles

que Google, Yahoo, Wikipedia et YouTube. C’est un serveur de BD relationnelles SQL

Figure 3-2 : Structure du framework ACE

(Schmidt 2009)

Figure 3-3 : Logo MySQL

Page 50: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

49

multiutilisateur et multitraitement, axé sur la performance élevée en lecture, la fiabilité et la

robustesse. Il est supporté par une très grande variété de systèmes d’exploitation et de

langages de programmation, mais surtout utilisé conjointement avec Linux, Apache et PHP;

les initiales des noms de ces plateformes, incluant MySQL, se sont d’ailleurs vues

regroupées pour former l’acronyme « LAMP », les désignant comme un ensemble de

logiciels libres permettant de mettre en place des serveurs Web. La popularité de MySQL

vient d’ailleurs en partie du fait qu’elle permet à de nombreuses entreprises de diminuer

significativement leurs coûts en licences, en équipements informatiques, en administration,

en entretien et en support technique.

MySQL doit être utilisé conjointement avec un moteur de BD, pouvant en gérer plusieurs

au sein d’une même base dans des tables différentes, ce qui permet une certaine

optimisation selon l’utilisation. Le moteur de base est MyISAM, il est simple à utiliser mais

il ne supporte pas les transactions ni les clés étrangères, qui sont des mécanismes

nécessaires au maintien de l’intégrité de la BD. Une alternative, qui est souvent adoptée par

défaut, est le moteur InnoDB qui supporte ces mécanismes d’intégrité mais implique

également des fichiers plus volumineux (Sun Microsystems 2009), (MySQL 2009).

3.1.2.1 MySQL Connector/ODBC

Il existe une série de modules nommés Connectors supportés par MySQL permettant à

diverses plateformes comme Java et .NET de s’y connecter et d’y interagir. MySQL

Connector/ODBC permet de le faire par le standard de l’industrie Open DataBase

Connectivity. Certaines applications commerciales offrant des fonctionnalités d’importation

à partir de BDs utilisant ce standard nécessitent que ce module soit installé afin que

MySQL leur soit accessible.

3.1.2.2 MySQL++

Il s’agit d’une librairie de classes C++ qui

encapsulent l’API C de MySQL. Elle se base sur les

principes de fonctionnement de la STL (Standard

Template Library) dans le but de rendre les fonctions

de manipulation de données similaires à celles des

Figure 3-4 : Logo MySQL++

Page 51: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

50

structures STL (std::vector, std::string, etc.). Des fonctionnalités facilitant certaines tâches

MySQL fréquentes et répétitives sont également implémentées.

Sa structure relativement simple permet son intégration et son utilisation faciles et rapides.

Il y a 4 types d’objets principaux : connexion, requête, résultats et exceptions; à chacun de

ces types est associée une hiérarchie de classes dérivées spécialisées. Un objet de type

connexion ou de l’une de ses spécialisations (montrées dans le diagramme de classes de la

Figure 3-5) doit d’abord être instancié. Il permet d’ouvrir la communication avec la BD par

l’appel d’une fonction à laquelle il faut spécifier les paramètres du serveur MySQL à

contacter (adresse, port, etc.). L’objet connexion permet également de créer des instances

de requêtes lorsqu’une commande textuelle SQL lui est fournie par la fonction appropriée.

D’une instance de requête, on peut finalement obtenir un ensemble de résultats dont on

peut parcourir le contenu à la manière d’un std::vector.

Quelques fonctionnalités avancées sont également disponibles comme les Structures SQL

Spécialisées (SSQLS) permettant de créer des structures de données ou classes qui

correspondent aux tables de la BD. Le principe de base est d’avoir une variable membre par

champ de la table en question, mais aussi de fournir d’autres méthodes et opérateurs

facilitant leur manipulation. Il est également possible de mettre en place des patrons de

requêtes un peu à la manière de la fonction printf en C, où l’on définit des emplacements

temporaires pour des noms de champs pouvant être modifiés plus tard.

Il existe une branche de projet ayant divergé de MySQL++, nommée MySQL C++ API,

principalement à cause d’idéologies de design différentes. Selon l’auteur de cette branche,

Figure 3-5 : Hiérarchie de la classe mysqlpp::Connection

(MySQL++ 2009)

Page 52: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

51

les efforts agressifs et prématurés d’optimisation, le grand nombre de possibilités pour faire

les mêmes tâches au lieu de clairement définir une interface et l’utilisation de macros

obscurcissent le design et ne sont pas convenables pour une librairie C++ (MySQL C++

API 2009).

3.1.3 Tableau Software

Il s’agit d’une suite de logiciels permettant

l’analyse visuelle de données en 2 dimensions.

Quoique ciblant principalement une utilisation dans

le monde des affaires, il est possible d’y importer

n’importe quel type de données provenant de feuilles de travail Excel ou de BDs, pour

ensuite les représenter par des graphiques, histogrammes et nuages de points entre autres

(Tableau Software 2009).

Les atouts par excellence de Tableau Desktop, l’application d’analyse principale de la suite

dont des saisies d’écran sont présentées à la Figure 3-7, se situent au niveau de son

interface utilisateur conviviale ainsi que de sa facilité d’apprentissage et d’utilisation. Parmi

les fonctionnalités offertes par le logiciel, on retrouve la technique du glisser-déposer (ou

« drag and drop »), très intuitive et accessible à presque tous les éléments de l’interface.

Les ensembles de données de diverses grandeurs sont pris en charge automatiquement,

rapidement affichés selon une ou plusieurs dimensions et représentés à l’aide de techniques

visuelles comme la couleur, la forme ou la grosseur des points. Les techniques de zoom et

filtre, de regroupements de paramètres et de calcul de sommes ou de moyennes sur le vif

s’ajoutent aux possibilités d’analyse. Des fonctionnalités de publication et de partage de

données sont également disponibles via une application connexe, Tableau Server,

permettant entre autres de mettre des graphiques interactifs sur le web.

Figure 3-6 : Logo Tableau

Page 53: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

52

La Figure 3-8 montre une saisie d’écran commentée de l’interface principale de Tableau

Desktop. À gauche, une fenêtre d’exploration montre une liste des données disponibles

ayant été préalablement chargées, d’où il est possible de faire du glisser-déposer vers les

autres parties de l’interface; les zones des variables ligne et colonne permettent de

déterminer quelles variables seront représentées selon les axes horizontaux et verticaux. On

peut choisir entre plusieurs types de graphiques 2D dont histogrammes, lignes, cercles,

points, etc. Il est possible de filtrer, c’est-à-dire d’enlever certaines données d’un ensemble

particulier de la représentation visuelle en glissant la variable concernée dans la case

Figure 3-7 : Saisies d'écran de Tableau Desktop

(Tableau Software 2009)

Page 54: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

53

« filtre » et en configurant son contenu. Le même principe permet d’appliquer un marquage

de couleur ou de grosseur pour une variable en la

plaçant dans le champ correspondant.

3.1.4 Eye-Sys

Eye-Sys est une application de visualisation dont le

but est de regrouper des données provenant d’une

grande variété de sources et d’offrir d’énormes

possibilités de visualisations contrôlées par ces données. À l’origine, elle a été développée

et financée en collaboration avec le Département de la Défense Américaine et d’autres

organisations de recherche. Il s’agit donc d’une plateforme générique et flexible pouvant

être exploitée par une grande variété de domaines scientifiques ou autres.

Le principe de base est d’ajouter au système diverses composantes offrant chacune des

fonctionnalités différentes et de créer des liens de données entre ces dernières. Il y a quatre

Figure 3-8 : Interface principale de Tableau Desktop

Figure 3-9 : Logo Eye-Sys

Explorateur de données

Variables lignes/colonnes

Zone d’affichage

Filtres et marquage

Page 55: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

54

familles d’objets disponibles, référés dans Eye-Sys en tant que plug-ins, chacune offrant

une catégorie de fonctionnalités :

Input (entrée de données) : Cette catégorie englobe les importations de données de

tous genres (fichiers texte, BDs, connexion à d’autres applications, dispositifs de

contrôle);

Manipulator (manipulation et calculs) : Ce type d’objet permet la modification de

données déjà importées, typiquement par des calculs mathématiques;

Display Object (objet de rendu graphique) : Tout objet responsable du rendu d’une

composante individuelle de visualisation. Parmi ceux-ci, on compte par exemple

des primitives 3D comme des cubes, sphères ou cylindres, mais aussi des textures et

modèles 3D;

Display System (système de rendu graphique) : Il sert de gestionnaire pour le rendu

de données ou d’objets et prend en charge les fenêtres d’affichage et les interactions

utilisateur via clavier et souris.

Il existe également un objet unique de type Driver permettant de générer des visualisations

dynamiques en faisant varier dans le temps les valeurs contenues dans des vecteurs de

données. Ceci permet par exemple de créer une animation en utilisant des vecteurs de

positions branchés sur les propriétés de translation X, Y et Z d’un objet de rendu.

La Figure 3-10 montre une saisie d’écran de l’interface principale de Eye-Sys. Celle-ci

comporte une fenêtre montrant la liste de tous les objets (plug-ins) disponibles, une sortie

de type « console » pour les messages système, une fenêtre de conception dans laquelle on

peut faire du cliquer-glisser à partir de la librairie d’objets et créer des liens de données, un

éditeur de propriétés permettant de modifier les attributs d’un objet sélectionné, ainsi

qu’une ou plusieurs fenêtres de rendu qui peuvent être 2D comme pour des graphiques

(Plotter) ou panneaux de contrôles (Control Panel), ou 3D pour les systèmes d’arbres de

rendu (Scene Graph Renderer).

Page 56: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

55

En complément à ces fonctionnalités, Eye-Sys offre aux utilisateurs la possibilité

d’automatiser ou de personnaliser des comportements grâce à un engin de script ainsi qu’un

SDK pour la programmation C++ ou .NET de plug-ins, ce qui permet aux développeurs de

créer de nouveaux modules sur mesure. De plus, des interfaces COM associées à plusieurs

classes de fonctionnalités permettent à des programmes externes de se connecter sur ces

objets et de contrôler Eye-Sys. Ce dernier offre une grande flexibilité pour son intégration

dans une chaîne d’outils déjà existants. Toutes ces possibilités, offrant généricité et

extensibilité, ont joué un rôle crucial dans l’adoption de Eye-Sys comme outil de

visualisation principal du projet. Ils seront donc expliqués et développés plus en détails

dans la section 3.2.2.

Figure 3-10 : Interface principale de Eye-Sys

(IDV, Inc. 2009)

Page 57: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

56

3.1.5 Multichronia

Il s’agit d’un cadre conceptuel de simulation interactive où l’utilisateur est au centre du

modèle d’exploration. Il implémente une interface graphique pour la représentation d’un

espace de simulation appelé arbre multichronique. Ce dernier permet à l’utilisateur de créer

et d’interagir dynamiquement avec de multiples branches de simulation en parallèle. Il offre

d’intéressantes possibilités pour l’analyse et la comparaison de diverses simulations grâce à

des métaphores de navigation et des modes d’interaction innovateurs.

Chaque branche de simulation est représentée par un nœud dans l’arbre multichronique. Le

nœud d’une branche peut être à tout moment sélectionné et déplacé le long de la ligne du

temps. À n’importe quel instant de la simulation, il est possible d’interrompre l’exécution,

de changer la valeur d’un ou de plusieurs paramètres, de créer une nouvelle branche avec

ces modifications et de poursuivre l’exécution de la simulation par la suite, permettant

d’observer les impacts occasionnés par les variations de valeurs de paramètres. Il est

également possible de visualiser d’autres métriques de performance servant à comparer les

résultats, et ce, en cours de simulation.

Figure 3-11 : Saisie d'écran commentée de Multichronia

(Rioux, Bernier et Laurendeau, 2008)

Page 58: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

57

L’avantage d’utiliser ce genre de méthode interactive est l’apport de l’expertise et de

l’intuition de l’humain, venant en complément aux méthodes formelles comme le Data

Farming. Multichronia, développé et implémenté dans le cadre du projet de doctorat de

François Rioux (Rioux, 2009), sera utilisé comme outil de contrôle principal dans la

première version de l’outil IMAGE.

3.2 Explorations préliminaires

Au tout début du projet IMAGE, les objectifs globaux étaient relativement bien définis; la

manière de les atteindre l’était cependant beaucoup moins, notamment en ce qui a trait au

module Exploration, ne connaissant que peu ou pas la nature du scénario adopté et les

données à visualiser. Les travaux en Simulation, étant ceux qui étaient les plus avancés, ont

constitué un point de départ intéressant contribuant à diriger les efforts de recherche pour la

partie Exploration.

Comme nous l’avons présenté dans l’introduction, les grandes parties du projet sont liées

entre elles par des liens conceptuels. Cependant, entre Simulation et Exploration, il doit

exister un véritable lien physique de transfert de données. Également, afin de minimiser les

efforts de développement, une évaluation en profondeur des plateformes choisies devait

être faite afin de prendre connaissance de toutes leurs possibilités au niveau de la

visualisation et d’évaluer leur niveau de flexibilité en termes d’intégration avec d’autres

modules. Ces aspects ont mené à l’identification de diverses problématiques et

préoccupations ainsi qu’à des solutions possibles. Les résultats de ces recherches

préliminaires sont présentés dans les sections qui suivent.

3.2.1 Simulation et transfert de données

Afin d’être flexible au maximum en termes de scénarios de simulation, de simulateur et de

types de données à traiter, Multichronia offre un pipe-line de données entièrement

configurable en XML pour les paramètres en entrée, les données intermédiaires traitées par

le simulateur, les métriques et les résultats en sortie. Il fait usage de schémas XML qui sont

des fichiers modèles décrivant la structure arborescente et les types des données de

simulation. Un exemple de document partiel contenant des données de simulation est

présenté à la Figure 3-12.

Page 59: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

58

Un nœud principal identifie le type de données ainsi que le nom de la branche de

simulation qui lui est associé. Par la suite, pour chacune des itérations de la simulation, la

liste des variables, métriques et paramètres est donnée de manière hiérarchique selon le

standard XML.

Figure 3-12 : Extrait d'un document XML de données de simulation

Page 60: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

59

L’une des premières problématiques à être abordée est le transfert efficace des données du

module Simulation vers le module Exploration. En effet, à chacune des branches de l’arbre

multichronique correspond un flux unique de données brutes en format XML qui est

envoyé dans le pipe-line de données et qui est également sauvegardé sur disque dans un

fichier (Figure 3-13). Ce flux peut être partiel dans les cas où l’on effectue une création de

branche suite à la modification d’un ou de plusieurs paramètres à un instant t différent de

zéro, sur le nœud d’une branche de simulation déjà existante. Il est également possible de

créer et d’exécuter plusieurs simulations simultanément. Quoiqu’incluse dans le schéma

conceptuel, dans le cadre du projet IMAGE, l’exploration de l’espace visuel par le rendu

graphique n’est pas implémentée et n’est pas gérée directement par Multichronia; les

données doivent donc être transférées à l’externe. Pour ce transfert, Multichronia offre,

grâce à un module de gestion des flots de données, un système de connexion par

client/serveur socket TCP où à chaque flux de données correspond une connexion distincte,

ce qui facilite la gestion des données lors de transferts multiples.

3.2.2 Application Eye-Sys

Le rendu graphique de Eye-Sys est entièrement réalisé avec OpenGL. Cependant, il ne

s’agit pas d’un engin de simulation ou de rendu graphique de type « jeu », et il n’y a donc

pas de support pour les phénomènes physiques comme la gravité ou la gestion de collisions.

Figure 3-13 : Schéma conceptuel de Multichronia

(Rioux, Bernier et Laurendeau 2008)

Page 61: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

60

Toutes les données relatives aux mouvements et aux comportements visuels doivent avoir

été générées au préalable et importées dans Eye-Sys. Cependant, ce dernier offre une

multitude de possibilités pour faire cette importation, pour des manipulations et des calculs

en temps réel sur les données d’entrée fournies; à la limite, il est possible de générer des

ensembles de données manuellement (voir la section 3.2.2.3 sur les scripts).

Les fonctionnalités disponibles sont encapsulées dans divers modules appelés plug-ins

(comme décrit précédemment à la section 0) et l’interaction avec ces derniers se fait par le

biais de propriétés. Celles-ci peuvent être de plusieurs types, s’apparentant à ceux des

langages de programmation : entier, réel, booléen, chaîne de caractères, pointeur d’objet,

etc. Les transferts de données entre les plug-ins se font grâce à des liens unidirectionnels

entre les propriétés, créés et modifiés via la fenêtre d’édition de l’interface (sandbox). Les

valeurs de ces propriétés, numériques ou autres, sont automatiquement transférées de la

propriété source vers la propriété cible et l’état du plug-in cible mis à jour par le framework

si nécessaire.

3.2.2.1 Création de visualisations 2D et 3D

L’intérêt principal d’utiliser Eye-Sys est de pouvoir créer des vues facilement. Des

ébauches de visualisations ont été réalisées lors des premières étapes d’exploration visant

principalement à démontrer les possibilités de la plateforme et pour donner un aperçu du

type de représentations qu’il est possible d’obtenir. Ces résultats sont présentés sur les

figures 3-14 à 3-16.

Sur le thème du convoi militaire, une scène statique faisant l’usage de modèles 3D de

véhicules militaires et de bâtiments, ainsi que de textures désertiques, a été créée (Figure

3-14). Des plug-ins prenant en charge les textures et les modèles au format 3D Studio Max

(3DS) permettent de charger instantanément toutes sortes de modèles dans une scène de

rendu. La Figure 3-15 montre une partie de la fenêtre de conception de cette scène; on y

remarque la présence de plusieurs objets de rendu pour les véhicules et les éléments de la

carte miniature (boîtes bleues), les systèmes de rendu permettant de les afficher (boîtes

roses) ainsi que les liens nécessaires.

Page 62: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

61

Une autre saisie d’écran, à la Figure 3-16, montre certaines possibilités pour la

représentation et l’analyse de données ainsi que pour l’organisation spatiale des éléments

graphiques dans une même fenêtre d’affichage. Les classiques graphiques 2D,

histogrammes et « pie charts » sont déjà implémentés dans des plug-ins directement

Figure 3-16 : Exemple d'une vue analytique

Figure 3-15 : Fenêtre de conception de la scène de

convoi

Figure 3-14 : Exemples d’une scène de convoi

Page 63: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

62

utilisables. Des fonctionnalités pour la représentation de réseaux sociaux sont également

disponibles.

3.2.2.2 Interfaces COM

COM (Component Object Model) est un composant logiciel créé par Microsoft, descendant

des anciennes technologies OLE (Object Linking and Embedding) développées dans les

années 90, permettant à des programmes d’échanger des données. C’est un standard

indépendant de la plateforme qui est principalement utilisé dans Windows; les composants

ActiveX que l’on retrouve dans plusieurs applications web font usage de cette technologie

(Object Linking and Embedding 2009). Grâce à ce standard, il est possible pour un

programme (le serveur COM) de rendre disponible certaines de ses fonctionnalités à

d’autres programmes (les clients) qui peuvent s’y connecter. Eye-Sys utilise cette stratégie

pour permettre à des applications externes de contrôler la majeure partie de ses

fonctionnalités. Le processus de connexion est simple et direct lorsqu’effectué par le biais

d’applications .NET, en C# ou Visual Basic; il est également possible de le faire en C++

mais cela requiert une procédure un peu plus complexe et, d’une manière générale, plus

verbeuse en terme de code.

Le diagramme de classes de la Figure 3-17 montre une partie des interfaces disponibles. On

retrouve notamment des interfaces pour les classes Plugin et PropertyContainer qui

Figure 3-17 : Hiérarchie partielle des classes d'interfaces COM Eye-Sys

(IDV, Inc. 2009)

Page 64: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

63

contiennent la plupart des fonctions permettant d’interagir avec toute instance de plug-in

Eye-Sys, principalement pour la modification de valeurs de propriétés ou la création de

liens de données. Des fonctions spécifiques aux objets et aux systèmes de rendu sont

également disponibles via leurs interfaces spécialisées respectives.

L’inconvénient principal de cette méthode d’interaction est le coût en performance et le

délai de traitement dans les cas de requêtes nombreuses à l’intérieur d’un court laps de

temps. Afin de palier au problème pour le transfert de données, des fonctions permettant de

transférer de nombreuses données à la fois sous forme de vecteurs sont disponibles; pour le

reste, une optimisation ou un filtrage doivent être faits lorsque possible car les requêtes

COM étant bloquantes du côté client, cela peut mener à des délais indésirables et à un

engorgement de la liste d’attente des requêtes.

3.2.2.3 Scripts

Un interpréteur JavaScript permet aux utilisateurs de programmer toutes sortes de

comportements sur mesure. Il supporte l’utilisation des fonctions et structures de données

définies par le standard tels tableaux, chaînes de caractères et fonctions mathématiques. Des

commandes vers les composants Eye-Sys peuvent être réalisées d’une manière semblable à

ce qu’un programme externe pourrait faire puisque les fonctions accessibles sont les mêmes

que celles exposées par les interfaces COM. Toutes les fonctionnalités de ces dernières sont

donc disponibles au niveau des scripts mais sont également soumises aux mêmes

limitations, notamment au niveau de la performance. Les scripts peuvent être utilisés un

peu à la manière de macros, programmés et exécutés par l’utilisateur dans une fenêtre

dédiée de l’interface principale; ils peuvent également être utilisés dans un plug-in de type

Manipulateur et se comporter comme tel, l’exécution se faisant alors en fonction des

changements de propriétés et des mises à jour requises. Un exemple de fenêtre d’édition de

script pour un plug-in est montré à la Figure 3-18.

Page 65: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

64

3.2.2.4 SDK et développement de plug-ins

Comme il a été mentionné précédemment, il est possible de créer de nouveaux plug-ins

grâce à un SDK, en complément à l’application principale. Il permet aux programmeurs de

créer de nouveaux modules semblables à ceux fournis avec l’application. La plateforme de

développement présentement supportée est Visual Studio 2005, et un générateur

automatique de projets C++ ou .NET (C# notamment) est disponible avec l’installation du

SDK pour simplifier la création et la configuration des projets. Ceci permet de créer des

plug-ins dérivant de l’un des quatre types principaux : Input, Manipulator, Display Object

ou Display System. Pour une performance optimale, le langage C++ est recommandé.

Lorsque le projet est compilé, un fichier d’extension .eye, qui est en réalité une librairie

dynamique de type DLL, est créé et peut être chargé par Eye-Sys au démarrage. Le

débogage à l’exécution avec Visual Studio est supporté par la compilation en mode debug

et à condition qu’Eye-Sys démarre en même temps que le débogueur; seul le code du plug-

Figure 3-18 : Fenêtre d'édition du plug-in Script

Page 66: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

65

in est alors disponible pour l’utilisation de points d’arrêts et l’observation de variables, le

reste de l’application restant fermé.

Peu importe le type, la création de plug-ins requiert de remplir les tâches de programmation

suivantes : entrée du nom du plug-in, création de propriétés et de leurs attributs dans le

constructeur, dont les types énumérés et les limites de valeurs numériques; implémentation

de la fonction Calculate( ) où les fonctionnalités principales du plug-in sont implantées ou

exécutées par l’appel d’autres fonctions lorsque nécessaire. Pour les objets de rendu, les

fonctions Draw2D et/ou Draw3D doivent également être implémentées, où le code

OpenGL nécessaire au rendu de l’objet est inséré.

3.2.3 ACE

Comme mentionné à la section 0, le framework ACE offre plusieurs modules génériques

facilitant la création d’applications performantes requérant communications, gestion

d’événements et multitraitement. Son utilisation est donc toute indiquée pour

l’implémentation d’une application répondant aux besoins de gestion de multiples

connexions socket simultanées et de filtrage de flots XML, requis pour le transfert de

données de Simulation vers Exploration.

Figure 3-19 : Hiérarchie partielle des classes du SDK Eye-Sys

(IDV, Inc. 2009)

Page 67: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

66

D’abord, pour la gestion de connexions socket côté serveur, le design pattern Reactor est

utilisé. Il consiste à traiter de manière concurrente des requêtes de service provenant d’une

ou plusieurs sources vers un handler correspondant. L’objet ACE_Reactor est responsable

de recevoir les événements et de les distribuer aux gestionnaires appropriés qui sont

enregistrés; dans l’exemple de la Figure 3-20, les requêtes de connexion sont envoyées à

l’objet ACE_Acceptor qui se charge de créer un ACE_Svc_Handler. Ce dernier

s’enregistre alors auprès du ACE_Reactor qui va par la suite lui transmettre les

événements de réception de données.

Pour ce qui est de l’aspect multitraitement, les gestionnaires d’événements mentionnés

précédemment peuvent hériter de la classe ACE_Task implémentant tous les aspects

nécessaires à la création de threads de manière tout à fait indépendante de la plateforme. Il

est donc possible de créer un gestionnaire d’application pouvant exécuter un service dans

un thread indépendant, qui attend la présence de messages dans une file d’attente venant du

ACE_Reactor. Ceci permet de libérer le thread d’exécution de ce dernier ainsi que de

maximiser avantageusement la capacité de traitement dans les cas où plusieurs

Server

ACE_Reactor

ACE_Acceptor ACE_Svc_Handler

register()

handle_input()

get_handle()

create new Handler()

register()

handle_input()

get_handle()

connection request data connection

Client

Figure 3-20 : Patron de design Reactor dans le contexte serveur/client ACE

d’après (Online ACE Tutorials 2009)

Page 68: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

67

ACE_Svc_Handlers reçoivent du travail et que les ressources de calcul sont grandes,

notamment sur des machines à multiples cœurs d’exécution.

3.2.4 Application Tableau Desktop

La première application officiellement retenue pour le module Exploration et incluse dans

le devis des expérimentations en psychologie cognitive est Tableau Desktop, qui grâce à sa

grande convivialité en termes d’interface utilisateur, sa flexibilité quant aux représentations

de données et aussi sa disponibilité immédiate sur le marché, s’est taillée une place de

choix dans la boîte à outils du projet.

Cependant, Tableau n’offre pas autant de flexibilité qu’Eye-Sys en termes d’importation de

données, d’automatisation, de contrôle externe et d’extensibilité pour l’implémentation de

fonctionnalités sur mesure. Compte tenu des besoins du projet, la mise en place d’une BD

s’est avérée nécessaire pour que l’information requise soit aisément accessible dans

Tableau (plus de détails sur cette partie ainsi que sur l’intégration avec les autres outils

seront présentés à la section 3.6).

3.3 Tests et prototypes – Traitement des données

Comme mentionné plus tôt, la première problématique abordée fut le transfert de données

entre les modules Simulation et Exploration. Les possibilités au niveau du SDK de Eye-Sys

Figure 3-21 : Diagramme d'héritage de la classe ACE_Svc_Handler

(ACE Documentation 5.6.0 2007)

Page 69: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

68

étant très prometteuses, les premiers tests mettent en œuvre des fonctionnalités

implémentées directement dans des plug-ins. Par la suite, une étape de familiarisation avec

le COM en C++ ainsi qu’avec les structures de données qui permettent d’interagir avec les

fonctions de ces types d’interfaces ont permis d’évaluer les possibilités en cette matière.

3.3.1 Plug-ins Eye-Sys

Le premier prototype développé consiste à filtrer un flot de données de simulation XML

provenant d’un fichier. Le SDK de Eye-Sys offre des classes de base dans son framework

permettant de charger des fichiers et de filtrer du XML, ce qui facilite la tâche et évite le

besoin d’inclure d’autres librairies. Par la suite, le problème des communications a été

abordé. La plateforme de simulation Multichronia utilisant un serveur socket, un plug-in de

client pouvant s’y connecter a été implémenté et testé avec succès.

Quoique les résultats obtenus soient relativement satisfaisants, certains problèmes

communs à ces implémentations se posent, découlant principalement du fait que la

réception et le filtrage de données se trouvent directement dans l’outil de visualisation.

Dans l’éventualité où d’autres plateformes seraient utilisées, suivant cette approche, le

traitement de données devrait être ré-implémenté et ré-exécuté dans chacune des nouvelles

applications, ce qui est loin d’être optimal en termes de temps de développement et de

performance. Également, du fait qu’Eye-Sys fonctionne principalement dans un seul thread

d’exécution, lui imposer du travail de traitement relativement lourd et long à réaliser vient

interférer avec les performances de rendu et peut même faire figer l’interface pendant

plusieurs secondes, ce qui est à proscrire.

Les possibilités du framework ACE pour les communications et le multitraitement étant

intéressantes pour venir pallier à ces problèmes, son intégration dans un projet de plug-in

Eye-Sys a été testée et complétée malgré quelques problèmes de compilation et de

chargement dynamique de librairies. La connexion socket et la réception des données y sont

réalisées dans un thread indépendant, évitant ainsi d’accaparer le processus principal de

Eye-Sys.

Cependant, bien que très flexible en termes d’affichage et de rendu graphique, l’engin Eye-

Sys n’offre que des possibilités plutôt limitées pour les interactions avec les objets, du

Page 70: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

69

moins ceux qui sont inclus avec l’application standard. De plus, l’une des limitations

majeures à l’égard du SDK est l’absence des en-têtes contenant le code des interfaces de

ces objets, ce qui rend impossible l’héritage direct à partir d’un objet déjà existant pour lui

ajouter des fonctionnalités ou modifier son comportement.

Pour tenter de contourner le problème, un prototype d’objet de rendu ayant pour but de

s’attacher à un autre objet et d’interagir à sa place a été testé, offrant par exemple la

possibilité de mettre en place un menu contextuel sur mesure remplaçant celui d’origine.

Cela peut fonctionner mais certaines difficultés se posent concernant la sélection des objets

qui est souvent ambigüe.

3.3.2 Prototypes COM / C++

Les interfaces COM pour l’automatisation de tâches dans Eye-Sys constituent un outil de

choix pour les communications et l’intégration avec les autres outils d’IMAGE. Quoique

les possibilités offertes par les langages .NET comme le C# étaient alléchantes pour leur

facilité d’utilisation, pour des raisons de performance et de compatibilité avec d’autres

plateformes existantes dont ACE, le C++ a été préféré.

Comme il a déjà été cité, l’utilisation du COM en C++ Windows n’est pas triviale, que ce

soit pour la connexion COM, les structures de données, la gestion et la vérification des

pointeurs. Typiquement, une fonction COM C++ prend en paramètres des pointeurs de

VARIANT, une structure générique pouvant représenter n’importe quel type de données

(booléen, entier, chaîne de caractères, tableaux, etc.), et retourne un HRESULT qui est un

code d’erreur. Des classes d’encapsulation provenant de la librairie ATL (Active Template

Library) facilitant la manipulation des VARIANTs sont disponibles. Elles permettent de

gérer la création, la destruction et la copie entre différentes structures. Afin d’obtenir un

pointeur vers un objet COM de manière sûre, il faut exécuter une recherche par nom,

vérifier la validité du pointeur générique retourné, faire une requête d’interface vers le type

requis (à la manière d’un « cast » dynamique) et vérifier à nouveau la validité du pointeur

spécifique. Un programme effectuant une simple connexion COM et exécutant une série de

commandes en « batch » a été développé pour tester ces fonctionnalités. Un extrait du code

source de ce programme est montré à la Figure 3-22.

Page 71: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

70

Figure 3-22 : Extrait d'un programme test COM en C++

Suite à tous ces tests, il a été conclu que, compte tenu des besoins du projet, il était

préférable de traiter l’information XML à l’extérieur de Eye-Sys, pour lui envoyer par la

suite les vecteurs de données déjà traités via la connexion COM. À ce stade, une première

version d’une application C++ dédiée à ces tâches, ImageDataServer, a donc été

développée.

3.4 Application ImageDataServer

L’application ImageDataServer sert de lien de communication et de transfert de données

entre Simulation (Multichronia) et Exploration (Eye-Sys). Elle exécute trois types de tâches

principales : la gestion des connexions socket, le traitement des données de simulation

// Get the Class ID for the EyeSysGlobalScript interface

OLECHAR wEyeSysProgID[256];

mbstowcs(wEyeSysProgID, "eyesys.EyeSysGlobalScript", 256);

CLSID clsid;

HRESULT hr = CLSIDFromProgID(wEyeSysProgID, &clsid);

if (FAILED(hr))

{

printf("Error getting ProgID\n", hr);

return -1;

}

// create instance of the Eye-Sys interface class

IEyeSysGlobalScript* pEyeSys = NULL;

hr = CoCreateInstance(clsid, 0, CLSCTX_ALL, __uuidof(IEyeSysGlobalScript), (void**)&pEyeSys);

if (FAILED(hr))

{

printf("Error connecting to the Eye-Sys COM \n", hr);

return -1;

}

// Interface pointers for working

IDispatch* pDispatch = NULL;

IPropertyContainer *pContainer = NULL;

IEyeCommonProperty *pProperty = NULL;

// Display System and basic rendering

pEyeSys->CreateNamedObject(CComBSTR("Scene Graph Renderer"), CComBSTR("SceneGraph"), &pDispatch);

IDisplaySystem* pSceneGraph = NULL;

hr = pDispatch->QueryInterface(__uuidof(IDisplaySystem), (void**)&pSceneGraph);

if (FAILED(hr))

{

printf("Error querying interface [IDisplaySystem] for \"Scene Graph Renderer\": 0x%0x\n", hr);

return -1;

}

// Create Box1

pEyeSys->CreateNamedObject(CComBSTR("Box"), CComBSTR("Box1"), &pDispatch);

IDisplayObject* pBox1;

hr = pDispatch->QueryInterface(__uuidof(IDisplayObject), (void**)&pBox1);

if (FAILED(hr))

{

printf("Error querying interface [IDisplayObject] for \"Box1\": 0x%0x\n", hr);

return -1;

}

// Add Box1 to scene graph

pSceneGraph->AddObject(pBox1);

Page 72: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

71

XML et l’interaction COM avec Eye-Sys. Pour chacune de ces parties, un diagramme de

classes montrant les fonctionnalités pertinentes est présenté et expliqué dans les prochaines

sections.

3.4.1 Gestion des connexions

Les classes relatives à la gestion des connexions sont montrées dans le diagramme de la

Figure 3-23. Comme on peut le constater, plusieurs de ces classes héritent ou utilisent des

éléments du framework ACE, illustrés par des boîtes grises sur le schéma.

Au démarrage du programme, une instance de chacun des objets suivants, ReactorTask et

SocketAcceptor, est créée et leur fonction open( ) est appelée pour l’initialisation (voir le

diagramme séquentiel de la Figure 3-24). Le thread principal de l’application passe ensuite

en mode d’attente de commandes de l’utilisateur. Les fonctionnalités de traitement utile

+open() : int

+close() : int

+handle_input() : int

ACE_Acceptor

+instance() : ACE_Reactor

+handle_events() : int

-reactor_ : ACE_Reactor

ACE_Reactor

+open() : int

+close() : int

+svc() : int

+putq() : int

+getq() : int

ACE_Task

+open() : int

+close() : int

+svc() : int

ACE_Svc_Handler

+enqueue_tail() : int

+dequeue_tail() : int

ACE_Message_Queue

+open() : int

+close() : int

+svc() : int

SocketHandler

+open() : int

+close() : int

SocketAcceptor+open() : int

+close() : int

+svc() : int

ReactorTask

1«uses»

+duplicate() : ACE_Message_Block

+release() : ACE_Message_Block

+rd_ptr() : char*

+wr_ptr() : char*

ACE_Message_Block

+startDocument() : void

+endDocument() : void

+startElement() : void

+endElement() : void

+characters() : void

+error() : void

+fatalError() : void

+warning() : void

-m_pWorkingDataBlock : SimDataBlock*

ACEXML_DefaultHandler

1

«uses»

+ClearBlockData() : void

+IsCompleted() : bool

+GetSimDataType() : int

+m_strStreamName

+m_strParentStreamName

+m_iIteration

+m_vSimVariables

+m_vSimAgents

-m_bIsCompleted

-m_eSimDataType

SimDataBlock

1

0..*

Figure 3-23 : Diagramme de classes – partie Connexion

Page 73: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

72

s’exécutant automatiquement dans d’autres threads, nouvellement initialisés selon les

besoins, ce mode est surtout utilisé pour les tests et le débogage. Au cours du processus

d’initialisation de la fonction open( ), ReactorTask fait une requête pour obtenir un

pointeur vers l’unique instance (singleton) du ACE_Reactor. Par la suite, comme il dérive

de ACE_Task, il démarre l’exécution d’un thread indépendant qui consiste en une simple

boucle infinie bloquante, en attente d’événements à traiter venant du ACE_Reactor. Pour

sa part, le SocketAcceptor s’enregistre auprès du ACE_Reactor, qui lui est fourni par un

paramètre de la fonction open( ), et attend les connexions. Lorsque cela se produit, le

ACE_Reactor qui reçoit l’événement appelle la fonction handle_input( ) du

SocketAcceptor, qui se charge de créer le SocketHandler et de l’initialiser (voir

diagramme séquentiel de la Figure 3-25). Ce dernier, dérivant de ACE_Svc_Handler, est

une classe de traitement spécialisé pour les connexions socket. Dans sa fonction open()

s’effectuent l’enregistrement auprès du ACE_Reactor, l’identification de l’adresse du

client et l’activation d’un thread local. C’est dans ce thread que seront dorénavant traitées

les requêtes de réception de données et l’exécution du filtrage XML. Au premier paquet

reçu, on vérifie le type de données entrantes et on crée la spécialisation appropriée du

ImageDataServer ReactorTask EyeSysManager SocketAcceptor

open()

ACE_Reactor: instance()

this: activate()

open()

CreateInstance(&pEyeSysApp)

this: activate()

register_handler()

open(addr, pReactor, pEyeSysManager)

Figure

3-24 : Diagramme séquentiel – Démarrage

Page 74: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

73

ACEXML_DefaultHandler (ce processus est détaillé à la prochaine section). Les

messages suivants sont directement envoyés à ce module de filtrage XML qui fait le travail

et retourne un SimDataBlock avec toutes les données filtrées, principalement sous forme

de vecteurs STL.

3.4.2 Traitement des données XML

Le traitement XML du ImageDataServer est implémenté à partir de classes du module

ACEXML, comme on peut le constater sur la Figure 3-26. Le module

ACEXML_DefaultHandler implémente des interfaces dont les diverses fonctions seront

ReactorTask SocketAcceptor

activate()

ACE_Reactor

handle_events()

handle_input()

SocketHandler

<<create>>

open(pReactor)

register_handler(this)

handle_events()

handle_input(msg)

putq(msg)

Événement

Connexion

Événement

1er Message

ACEXML_Handler

<<create>>

get_addr()

Figure

3-25 : Diagramme séquentiel – Connexion et réception de messages

Page 75: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

74

+startDocument() : void

+endDocument() : void

+startElement() : void

+endElement() : void

+characters() : void

ACEXML_ContentHandler

+error() : void

+fatalError() : void

+warning() : void

ACEXML_ErrorHandler

+eSimulationLog = 0

+eSimulation

+eMetrics

+eMetric

+eParameters

+eParameter

+eSimulatedAgentList

+eSimulatedAgent

+eLastLoc

+eNowAt

+eNewBehaviorName

+eRed

+eGreen

+eBlue

+eTimeStep

+eOther

«enumeration»

XMLTacticalDataNodeNames

+eSimulationLog = 0

+eStrategicConvoy

+eMetrics

+eMetric

+eParameters

+eParameter

+eIteration

+eOther

«enumeration»

XMLStrategicDataNodeNames

1

1

+ClearVariableData() : void

+m_strVariableName : string

+m_eCategory : int

+m_eDataType : int

-m_strValue : string

SimVariable

+ClearAgentData() : void

+m_strAgentName : string

+m_eCategory : int

+m_strID : string

+m_iPositionX : int

+m_iPositionY : int

+m_iLastPositionX : int

+m_iLastPositionY : int

+m_strBehavior : string

+m_iRed : int

+m_iGreen : int

+m_iBlue : int

+m_vAgentVariables : vector

SimAgent

+duplicate() : ACE_Message_Block

+release() : ACE_Message_Block

+rd_ptr() : char*

+wr_ptr() : char*

ACE_Message_Block

+ClearBlockData() : void

+IsCompleted() : bool

+GetSimDataType() : int

+m_strStreamName

+m_strParentStreamName

+m_iIteration

+m_vSimVariables

+m_vSimAgents

-m_bIsCompleted

-m_eSimDataType

SimDataBlock

+startDocument() : void

+endDocument() : void

+startElement() : void

+endElement() : void

+characters() : void

+error() : void

+fatalError() : void

+warning() : void

-m_pWorkingDataBlock : SimDataBlock*

ACEXML_DefaultHandler

+startDocument() : void

+endDocument() : void

+startElement() : void

+endElement() : void

+characters() : void

+error() : void

+fatalError() : void

+warning() : void

-m_pWorkingDataBlock : SimDataBlock*

XMLStrategicDataHandler

+startDocument() : void

+endDocument() : void

+startElement() : void

+endElement() : void

+characters() : void

+error() : void

+fatalError() : void

+warning() : void

-m_pWorkingDataBlock : SimDataBlock*

XMLTacticalDataHandler

1 1

0..*

«uses» «uses»

Figure 3-26 : Diagramme de classes – partie Traitement

Page 76: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

75

appelées selon les événements de filtrage, comme par exemple les débuts et fins de

document XML, les débuts et fins d’éléments (« tags » XML), les caractères, les espaces

blancs et les erreurs rencontrées, tel que dicté par la norme SAX. Dans le cas présent, du

ACEXML_DefaultHandler dérivent deux spécialisations, XMLTacticalDataHandler et

XMLStrategicDataHandler, traitant chacune leur type de données de simulation et étant

responsables de remplir les structures SimVariables et SimDataBlocks à mesure que les

données sont analysées. Pour faciliter la compréhension et la manipulation du code, on

utilise des types énumérés qui listent les noms des paramètres XML rencontrés dans leurs

données de simulation.

3.4.3 Connexion et interactions COM avec Eye-Sys

La dernière partie du ImageDataServer est consacrée à la connexion COM, aux transferts

de données et aux interactions avec Eye-Sys. Comme on peut le remarquer sur le

diagramme de la Figure 3-27, la plupart des classes développées dérivent de ACE_Task, ce

qui permet à ces modules d’exécuter des tâches qui leur sont spécifiques dans un thread qui

leur est propre.

EyeSysInteractor sert de base pour les classes requérant une interaction avec Eye-Sys; il

possède d’ailleurs un pointeur statique vers l’unique interface IEyeSysGlobalScript, qui

est le point d’entrée de la connexion COM. Il a également accès à d’autres interfaces vers

divers types d’objets Eye-Sys (montrés en bleu sur le schéma). Pour faciliter les requêtes

COM, une série de fonctions encapsulant les fastidieuses procédures C++ relatives aux

créations, requêtes et vérifications d’objets sont implémentées et accessibles à toute la

hiérarchie. Pour diminuer encore davantage le code de vérification, on utilise la classe

HResultExcept qui gère de manière intrinsèque, via un opérateur d’assignation acceptant

un HRESULT, les erreurs retournées par les fonctions COM. Lorsqu’une fonction retourne

un code d’erreur non nul que l’on assigne à une instance de cette classe plutôt qu’à un

simple HRESULT, une exception est lancée. Le traitement de cette exception est cependant

laissé au soin de l’appelant.

EyeSysSimDataHandler et ses dérivées sont responsables de traiter les SimDataBlocks

pour les convertir en EyeSysSimRunDataBlocks, des structures spécialisées contenant les

Page 77: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

76

données de simulation sous forme de vecteurs de type SAFEARRAY, type supporté par les

fonctions COM exposées par Eye-Sys. Ces traitements sont exécutés dans des threads

indépendants appartenant à ces modules pour favoriser le calcul en parallèle.

EyeSysView et ses dérivées sont responsables de gérer les vues; dans ce cas-ci, deux

spécialisations existent, une pour chaque contexte de simulation. Ces modules ne

nécessitent pas de thread dédié car la quantité de travail est minime, d’autant plus que

l’interface COM Eye-Sys ne peut pas traiter des demandes en parallèle. On retrouve dans

+open() : int

+close() : int

+svc() : int

+putq() : int

+getq() : int

ACE_Task

+InitializeComponents()

+CreateDisplayObject()

+CreatePropertyContainer()

+GetDisplayObject()

+GetPropertyContainer()

+CreateProperty()

+GetProperty()

+ConnectProperties()

-m_pEyeSysApp : IEyeSysGlobalScript*

EyeSysInteractor

+GetParent() : HRESULT

+GetChild() : HRESULT

+CanDraw2D() : HRESULT

+CanDraw3D() : HRESULT

«interface»

IDisplayObject

+ActivateWindow() : HRESULT

+ZoomAll() : HRESULT

+AddObject() : HRESULT

+RemoveObject() : HRESULT

«interface»

IDisplaySystem

+CreateProperty() : HRESULT

+GetProperties() : HRESULT

+DeleteProperty() : HRESULT

«interface»

IPropertyContainer

+GetName() : HRESULT

+Value() : VARIANT

+History() : SAFEARRAY

+AppendHistory() : HRESULT

«interface»

IEyeCommonProperty

+eEyeSysUndefined = -1

+eEyeSysPropertyContainer

+eEyeSysSceneGraphRenderer

+eEyeSysCompositeDisplaySystem

+eEyeSysMultiDisplaySystem

+eEyeSysCamera

+eEyeSysFocalPoint

+eEyeSysGriddedSurface

+eEyeSysHistoryConcatenator

+eEyeSys3DModel

+eEyeSysSphere

+eEyeSysCone

+eEyeSysNullObject

«enumeration»

EEyeSysObjectType

+HandleSimDataBlock() : int

+AddBranchedData() : int

+ProcessSimDataBlock() : int

EyeSysSimDataHandler

+ProcessSimVariable() : int

+ProcessIntValue() : int

+ProcessDoubleValue() : int

+ProcessStringValue() : int

EyeSysStrategicDataHandler

+ProcessSimVariable() : int

+ProcessSimAgent() : int

EyeSysTacticalDataHandler

+SetupConvoyData()

+SetupConvoyAgents()

+SetupDataDriver()

-m_vDisplaySystem

GeospatialConvoyView

+ProcessSimRunDataBlock()

EyeSysView

-m_mapEyeSysSimDataHandlers

-m_mapEyeSysSimRunDataBlocks

-m_pGriddedSurfaceMoeView

-m_pGeospatialConvoyView

EyeSysManager

+GetStreamName()

+GetSimDataType()

+GetNbTimeSteps()

+ClearBlockData()

-m_mapVariantParameters

-m_mapVariantMetrics

-m_mapConvoyVehicles

-m_mapIEDs

-m_mapRPGs

-m_mapOthers

#m_strStreamName

#m_eSimDataType

EyeSysSimRunDataBlock

+ClearAgentData()

+AssignDataRange()

+GetNbTimeSteps()

+IsAgentActive()

+m_saPositionX

+m_saPositionY

+m_saBehavior

-m_bIsAgentActive

EyeSysSimRunAgent

-m_vDisplaySystem

GriddedSurfaceMoeView

1

1

1

0..*

«uses»

«uses»

«uses»

«uses» «uses»

+CreateObject() : HRESULT

+FindObject() : HRESULT

+GetAllObjects() : HRESULT

+TestConnection() : HRESULT

+ImportEspFile() : HRESULT

+GetSelectedObjects() : HRESULT

+RedrawAllDisplaySystems() : HRESULT

«interface»

IEyeSysGlobalScript

1

+operator=() : HResultExcept

HResultExcept«uses»

Figure 3-27 : Diagramme de classes – partie Eye-Sys / COM

Page 78: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

77

ces classes des fonctions permettant la création automatique des instances de plug-ins Eye-

Sys requis pour leurs vues respectives ainsi que pour le transfert de données vers ces

dernières.

EyeSysManager exécute un thread indépendant qui gère toutes les requêtes entrantes

relatives aux interactions avec Eye-Sys : réception des SimDataBlocks provenant du

SocketHandler et leur routage vers les modules de traitement Eye-Sys, ainsi que

l’exécution des commandes d’interaction provenant du module de Simulation.

3.5 Tests et prototypes – Visualisation

Des données de simulation étant maintenant disponibles dans Eye-Sys, une première phase

de développements en visualisation a été entamée.

3.5.1 Plug-in « History Concatenator »

N’étant pas relié directement à la visualisation, ce prototype a été développé suite à un

besoin d’adapter des vecteurs de données de simulation passées à un plug-in Eye-Sys de

rendu de surface 3D pour une vue préliminaire. Il est ainsi nommé en raison du format

requis par le plug-in de surface; alors que les données arrivent dans des vecteurs séparés

pour chacune des branches de simulation, il est requis que toutes les données en Z soient

fournies dans un seul vecteur. Le plug-in exécute donc une concaténation des vecteurs de

données qui lui sont fournis en entrée. Cette procédure a permis de maîtriser davantage le

développement avec le SDK ainsi que l’utilisation efficace des historiques de propriétés

Eye-Sys.

La Figure 3-28 montre la fenêtre de propriétés d’un « History Concatenator » et un tableau

partiel des données d’historique qu’il contient. Les propriétés sont regroupées par

catégorie : entrée (Input History), sortie (Output History) et statistiques. Les entrées sont les

vecteurs à concaténer et sont définies comme des propriétés multiples (appelées

« Multiproperties » dans Eye-Sys), ce qui permet que leur nombre soit variable et

configurable dans l’interface utilisateur ou par fonctions COM. Les propriétés en sortie sont

fixes et calculées par le plug-in, soient les index de longueur et de largeur ainsi que le

vecteur concaténé; elles se branchent directement sur les entrées appropriées du plug-in de

Page 79: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

78

surface. Les statistiques, tenant lieu de rétroaction informative seulement, rapportent les

longueurs des vecteurs traités. Dans le cas illustré, nous avons trois branches de simulation

ayant chacune 101 données, ce qui donne un vecteur concaténé de 303 éléments prenant

des valeurs entre 0 et 10. On peut également observer que les valeurs de la colonne

« Output History:Values » correspondent à celles des « Input Histories », mises à la suite

ligne par ligne.

3.5.2 Scène tactique 3D

Pour le scénario tactique, c’est une représentation de l’environnement physique et des

agents de simulation dans une scène de rendu 3D qui a été retenue comme première

visualisation principale. Une saisie d’écran de cette vue dans ses premières versions de

conception est montrée à la Figure 3-29.

Les objets de base visibles dans cette scène sont créés à partir de plug-ins Eye-Sys déjà

existants. On y retrouve une scène 3D principale observable par caméra mobile, ainsi

qu’une mini-carte dans le coin inférieur gauche où la caméra est fixe et orthogonale au plan

XY. Ceci est réalisé grâce à deux « Scene Graph Renderers », utilisant chacun leur caméra,

qui sont branchés dans un plug-in de type « Multi-Display » permettant l’agencement de

plusieurs systèmes de rendu dans une même fenêtre maîtresse. Le sol est formé par un plan

Figure 3-28 : Propriétés du « History Concatenator » et historiques de données

Page 80: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

79

2D prenant en charge les textures, et une image de sable lui a été assignée pour donner un

effet désertique. Le même principe est utilisé pour la route, formée de plusieurs plans

rectangulaires, sans texture toutefois. Les véhicules sont représentés à l’aide d’un plug-in

de type « 3D Model » prenant en charge un modèle de LAV III (Light Armoured Vehicle)

des Forces canadiennes, en format 3DS; le même procédé est utilisé pour les bâtiments dont

la position est fixée selon les spécifications du scénario. La vue étant en cours de

développement, les positions des explosifs et des lanceurs de grenades ne sont tenues que

par des sphères et des cônes. Ils sont cependant identifiés par leur nom grâce à un plug-in

de type « Callout » affichant une fenêtre de texte mobile qui leur est attachée. La flexibilité

du pipe-line de données Eye-Sys permet de représenter les éléments visuels de manière

Figure 3-29 : Saisie d'écran de la vue tactique préliminaire

Page 81: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

80

identique ou différente dans plus d’une vue : par exemple, des modèles de bâtiments et plan

texturé dans la vue principale versus des plans non-texturés dans la mini carte. Finalement,

une ébauche d’effet de particules visant à illustrer une explosion est visible sur l’un des

explosifs.

Lorsqu’une nouvelle branche de simulation est créée, les données sont traitées par le

ImageDataServer et les objets graphiques nécessaires à la visualisation de la branche en

question sont créés dynamiquement. Ceci implique les modèles 3D des véhicules (au

nombre de 10 par branche), des explosifs (entre 0 et 5) et des lanceurs de grenades (entre 0

et 5). Les éléments de base du scénario qui ne changent pas en fonction de la branche de

simulation, c’est-à-dire le sol, la route et les bâtiments, sont sauvegardés dans un fichier de

projet Eye-Sys, instanciés une seule fois au démarrage et utilisés pour toutes les vues,

branchés simultanément dans plusieurs systèmes de rendu différents si nécessaire.

3.6 Migration vers la base de données MySQL

Cette étape déterminante pour la suite du projet est due à plusieurs changements dans le

mode de fonctionnement des outils de l’Exploration et de l’interaction avec la Simulation,

et les choix de design retenus ont grandement influencé les développements subséquents.

Les modifications concernant l’utilisation d’une base de données MySQL ainsi que les

adaptations logicielles nécessaires pour l’automatisation des vues Eye-Sys sont expliquées

dans les prochaines sous-sections.

Comme il a été mentionné plus tôt, une BD MySQL avait été mise en place et était utilisée

par le module de Simulation qui y inscrivait toutes les données relatives au scénario, dans le

but de les rendre disponibles pour l’application Tableau. Cependant, des besoins

grandissants en termes d’échanges de données entre les grands modules du projet ont

favorisé la centralisation de toute l’information dans la BD MySQL. À partir de ce

moment, toutes les branches de simulation tactique possibles du scénario de convoi (au

nombre de 726) sont pré-simulées par une application automatique qui gère le simulateur

Pythagoras, qui était jusqu’à maintenant contrôlé en temps réel par Multichronia. Cette

application se charge de peupler la BD avec les résultats XML de toutes les branches de

simulation, mais effectue également un travail d’analyse supplémentaire dans le but

Page 82: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

81

d’extraire d’autres informations à partir de ces données brutes, non-explicites ou non-

disponibles dans le XML, mais nécessaires pour l’analyse et les objectifs de compréhension

du scénario. Tout ceci vise principalement à accélérer et faciliter le fonctionnement du

système. Un schéma de la structure de cette BD est inclus à l’annexe A.

3.6.1 Mode de connexion à la base de données

En réponse aux changements décrits plus haut, pour la partie Exploration, la tâche

principale à réaliser est de modifier le mode de transfert et de traitement de données XML

venant directement de la simulation pour plutôt aller chercher les données requises dans la

BD lorsque nécessaire. Il faut donc que les données de la BD soient transférées dans Eye-

Sys; les deux solutions suivantes ont été envisagées.

3.6.1.1 Plug-in « Database » Eye-Sys

Il existe un plug-in déjà implémenté dans Eye-Sys permettant l’accès à de nombreux types

de sources de données. Il permet de se connecter sur plusieurs types de fournisseurs

Microsoft OLE DB, un API générique pour la connexion à des types d’archives de données

très variées. Cependant, il n’existe pas de fournisseur permettant de se connecter

directement sur MySQL. Cela doit être fait par le biais d’un connecteur ODBC pour

MySQL installé et configuré au préalable. Lorsque c’est fait, il est possible d’extraire des

données en entrant textuellement une requête SQL dans la propriété du plug-in prévue à

cette fin. Les résultats sont placés dans des historiques de propriétés portant le nom des

champs correspondants de la table. Il est également possible d’enregistrer de nouvelles

données avec des instructions d’insertion. La Figure 3-30 montre un exemple de fenêtre de

configuration et de propriétés pour le plug-in « Database ».

Quoique cette configuration ne soit pas tout à fait triviale à réaliser, une fois mise en place,

elle constitue à prime abord une méthode de choix, ceci étant dû à la facilité avec laquelle il

est possible d’aller chercher des données ainsi que leur disponibilité immédiate pour la

visualisation dans Eye-Sys.

Page 83: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

82

3.6.1.2 Connexion vers MySQL via un API C++

La seconde option consiste plutôt à exécuter les requêtes MySQL dans un programme C++

externe à Eye-Sys, typiquement à l’aide d’une connexion TCP ou d’un « pipe » de données.

Les essais effectués pour cette avenue ont consisté à intégrer l’API MySQL++ à

l’application ImageDataServer et à tester les fonctionnalités en créant une connexion et une

requête de données. Cette tâche a été réalisée assez aisément; il est en effet possible de

récupérer des données en quelques lignes de code seulement. Il reste toutefois nécessaire de

traiter et de formater les résultats obtenus dans des vecteurs de données supportés par les

fonctions COM de Eye-Sys, pour pouvoir les transférer par la suite.

Dû à des contraintes temporelles importantes au niveau des échéanciers du projet, c’est la

première méthode utilisant le plug-in Eye-Sys, pour laquelle une preuve de concept a été

réalisée rapidement, qui a été retenue.

Figure 3-30 : Configuration du plug-in « Database »

Page 84: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

83

3.6.2 Modifications logicielles

3.6.2.1 Importation de données MySQL via script Eye-Sys

Toutes les données étant maintenant directement accessibles dans Eye-Sys par le plug-in de

BD, il faut trouver un moyen de récupérer ce qui est nécessaire selon les besoins, c’est-à-

dire les données pertinentes aux branches de simulation demandées par l’utilisateur. Pour la

visualisation tactique, nous avons besoin d’attributs relatifs aux agents du scénario, LAVs,

IEDs et RPGs, comme leur position XY et leur état d’action courant, qui peuvent varier à

chaque pas de temps.

Afin de pouvoir exploiter efficacement les possibilités de rendu graphique et l’engin

d’animation de Eye-Sys, les données doivent être regroupées en vecteurs et assignées à un

historique de propriétés où chaque élément correspond à un pas de temps. Cependant, dû à

la structure adoptée par la BD, il est impossible de récupérer en une seule requête les

données d’une table pour tous les pas de temps relatifs à une branche en particulier. Une

solution simple mais coûteuse en temps est d’effectuer une boucle de traitement et d’aller

chercher les données requises pour chaque pas de temps, de les accumuler dans des

vecteurs et de les assigner à des historiques de propriétés lorsque terminé. Les objets scripts

Eye-Sys étant flexibles et offrant beaucoup de possibilités, c’est cette solution qui a été

retenue pour l’implémentation du code nécessaire à ce traitement, d’autant plus que le

Javascript offre également une syntaxe beaucoup plus simple d’utilisation que le C++ pour

les interactions avec Eye-Sys. Un script dédié a donc été implémenté pour l’importation de

données, automatisant les requêtes SQL et l’extraction des résultats à l’aide d’un plug-in

Figure 3-31 : Schéma partiel de la base de données IMAGE - Données tactiques

Page 85: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

84

« Database » de Eye-Sys. Lorsqu’exécuté, le script fournit un conteneur de propriétés avec

toutes les données de simulation relatives à une branche, formatées correctement.

3.6.2.2 Création automatique d’objets et synchronisation

Peu importe la méthode d’accès aux données qui est utilisée, dans le nouveau contexte

d’opération, la vocation du ImageDataServer est forcément changée car ce dernier n’a plus

à traiter des flots de données XML; sa tâche s’en trouve donc largement allégée.

Cependant, afin de maintenir une synchronisation efficace entre Simulation et Exploration,

le lien par connexion socket entre ces modules est conservé pour l’échange de messages

concernant les événements et les actions de l’utilisateur provenant de Multichronia. Un

protocole très simple et extensible utilisant des éléments XML a été mis en place afin de

communiquer des informations comme le contexte de simulation, le nom des branches, leur

état et leur position. Cependant, les informations transmises par ce biais sont restreintes et

puisque les données de simulation ne passent plus par le ImageDataServer, certaines

informations requises pour la création des objets ne sont plus disponibles. Ici encore, la

solution la plus facile est d’effectuer la création des objets lors de la déclaration de

nouvelles branches dans un script Eye-Sys où toutes les données sont facilement

accessibles, plutôt qu’en C++.

Le désavantage d’utiliser des objets scripts pour effectuer ce genre de tâches est la difficulté

à contrôler leur exécution et à les synchroniser lorsque plusieurs d’entre eux doivent

effectuer des tâches de manière consécutive; l’importation des données suivie de la création

des objets en est un exemple. Les objets scripts se comportent comme des plug-ins

ordinaires et leur exécution est gérée automatiquement par le framework Eye-Sys, ce que

l’on ne désire pas ici. On peut cependant contrôler l’exécution en créant une propriété

servant de variable de contrôle, comme une valeur booléenne, dont on peut changer la

valeur manuellement ou par commande COM. On vérifie son état au début du script et s’il

est à « vrai », l’exécution se poursuit normalement et on termine en réinitialisant l’état de la

variable à « faux »; dans le cas contraire, on termine immédiatement.

Pour ce qui est de la synchronisation, le déclenchement de l’exécution d’un script à partir

d’un autre ne garantit pas un traitement séquentiel correct. Une solution possible est de

signaler la fin d’un script dans une propriété observable de l’extérieur et de démarrer le

Page 86: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

85

script suivant lorsque requis. Cependant, un autre détail doit être pris en compte dans la

commande de déclenchement; même si on assigne une nouvelle valeur à une propriété d’un

script, ce dernier ne s’exécutera pas nécessairement immédiatement si le framework Eye-

Sys ne détecte pas que des résultats de sa part sont requis à ce moment; cela se produit

généralement lorsqu’il n’y a aucune de ses propriétés qui est connectée à un autre objet.

Dans ce cas, il faut donc, immédiatement après avoir assigné la propriété, faire une autre

commande sur l’objet tel qu’une requête de propriété ou sa sélection pour déclencher

l’exécution.

3.7 Vue tactique

Cette section traite des développements et améliorations apportées à la vue tactique

proprement dite, tirant parti des données nouvellement disponibles.

3.7.1 Éléments visuels de la vue 3D principale

3.7.1.1 Modèles 3D

Une illustration des modèles 3D utilisés pour représenter les agents du scénario dans la

visualisation tactique est montrée à la Figure 3-32. Le premier est un véhicule blindé léger

(LAV), le second, un engin explosif improvisé (IED), et le dernier, un lanceur de grenades

(RPG). Ils proviennent d’une librairie de modèles militaires ayant été convertis au format

3DS pour être compatibles avec le plug-in Eye-Sys.

Lors de la création d’une branche de simulation, les instances requises de ces modèles sont

créées selon les paramètres de la branche de simulation demandée. Quoique les LAVs

soient toujours au nombre de 10, le scénario est défini tel que le nombre des IEDs et des

RPGs varie entre 0 et 5, la somme totale de leurs unités combinées pour une branche étant

toujours de 5. L’emplacement de ces unités sur le terrain est déterminé par des données de

position venant de la simulation. En réalité, seuls les LAVs se déplacent au cours du temps,

les positions des IEDs et RPGs étant statiques et possédant des positions précises,

également définies par le scénario.

Page 87: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

86

3.7.1.2 Actions et états

Comme nous l’avons décrit dans l’introduction, le scénario met en scène un convoi

militaire pouvant subir des dommages causés par des engins explosifs et être attaqué par

des lanceurs de grenades. Ces attaques ainsi que leurs conséquences doivent être clairement

représentées dans la visualisation 3D, autant que possible selon les données de simulation

disponibles. Une saisie d’écran de la vue tactique en action est présentée à la Figure 3-33.

D’abord, les LAVs peuvent détecter la présence d’ennemis. Lorsqu’un lanceur de RPG

entre dans le champ de vision d’un LAV, il est repéré et cela est représenté par une flèche

jaune pointant sur l’ennemi en question, qui reste visible jusqu’à ce que ce dernier soit

éliminé. Le moment de la détection est influencé par la distance qui sépare le LAV de

l’ennemi et l’obstruction causée par la présence de bâtiments. Ensuite, un LAV peut

attaquer l’ennemi détecté et l’éliminer; cette action est représentée par un ruban animé de

couleur bleue. Alors que plusieurs véhicules peuvent détecter un même opposant, un seul

d’entre eux entreprend une action d’attaque (comme on peut l’observer sur la figure). Le

scénario est défini tel que les LAVs ont une efficacité de tir de 100% en tout temps,

éliminant d’un seul coup tous les ennemis qu’ils attaquent. Ils peuvent en contrepartie être

endommagés par les attaques ennemies. Lorsque cela se produit, leur couleur change selon

une gradation passant du vert au jaune puis au rouge, en fonction de leur intégrité (ou

quantité de vie restante); les teintes du vert au jaune indiquent une intégrité de 99% à 50%,

et du jaune au rouge de 49% à 0%. Lorsque l’intégrité du véhicule atteint 0, il cesse

d’avancer et est accompagné d’un effet de fumée.

Figure 3-32 : Modèles 3D des agents de la simulation

(Laboratoire d'immersion virtuelle, RDDC Valcartier 2006)

Page 88: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

87

Les RPGs quant à eux passent à l’attaque aussitôt qu’un LAV entre dans leur ligne de mire;

la détection et l’attaque ne sont pas différenciées et un ruban animé de couleur rouge,

semblable à celui utilisé pour les LAVs, est utilisé. Étant toujours éliminés d’un seul coup,

ils n’ont pas besoin d’une échelle d’intégrité; ils peuvent prendre 3 états distincts : en

recherche de cible, en attaque ou éliminé. Alors que l’attaque est montrée par la présence

du ruban rouge, les deux autres états sont indiqués par des icônes 2D placés au-dessus du

modèle 3D, tel qu’illustré à la Figure 3-34.

Figure 3-34 : Icônes d'état des lanceurs de RPG

Figure 3-33 : Éléments visuels de la vue 3D principale

Page 89: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

88

Les IEDs peuvent prendre, selon les circonstances, les états suivants : armé, représenté par

la couleur normale du modèle; en désamorçage, par une teinte de rouge clignotant;

désamorcé, par une teinte de vert; explosé, par un effet d’explosion avec fumée.

3.7.1.3 Implémentation

Les fonctionnalités décrites ci-haut sont réalisées grâce aux agencements d’objets Eye-Sys

présentés aux figures 3-35 à 3-37. Pour chaque agent de chaque branche de simulation, un

ensemble de ces objets est instancié, regroupant tout ce qui est nécessaire aux

fonctionnalités visuelles individuelles de chacun; en plus du modèle 3D, on retrouve les

plug-ins servant aux flèches de détection, aux rubans d’attaque et aux effets de fumée. La

gestion des éléments visuels, c’est-à-dire quand et comment ils doivent être affichés, est

gérée principalement par des scripts qui observent constamment l’état des agents au pas de

temps courant et qui activent les éléments visuels appropriés. Par exemple, lorsque le script

de gestion d’état détecte que l’intégrité du véhicule atteint 0, il fait apparaître l’effet de

fumée. Un conteneur et un script de génération de données sont également présents pour

calculer et sauvegarder des valeurs complémentaires nécessaires à la visualisation, qui ne

sont pas dans la BD. Par exemple, des données dictant le comportement visuel des rubans

d’attaque, qui n’ont rien à voir avec les données de simulation, doivent être générées par un

script qui détecte les pas de temps où les attaques se produisent et qui crée un nouveau

vecteur de données dictant le comportement du tracé de l’arc.

Figure 3-35 : Fenêtre de conception – LAV

Page 90: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

89

D’autres ajouts et corrections de données se sont avérés nécessaires, notamment en ce qui

concerne la position XY des véhicules. En effet, à cause du manque de contrôle sur le

comportement des véhicules dans le simulateur, ces derniers adoptaient des mouvements

erratiques en début de parcours, non typiques de véhicules en mouvement dans une

direction donnée. Un filtrage systématique est donc effectué sur toutes les données de

position de véhicules pour les premières itérations de simulation. Également, aucune

donnée n’était disponible concernant l’orientation des véhicules, les agents n’étant simulés

qu’à titre de pastilles en mouvement sans direction; un angle associé à chaque pas de temps

est donc évalué durant ce processus de calcul, se basant sur les positions aux pas de temps

précédent et suivant.

3.7.2 Panneaux informatifs et interface de contrôle

Ces éléments font partie de la couche d’informations superposée à la visualisation 3D,

affichant des informations pertinentes à la branche de simulation présentement visualisée

(voir la Figure 3-38). Ceci est réalisé à l’aide d’un plug-in de type « Multi-Display »

regroupant des « Control Panels », qui sont des systèmes de rendu exclusivement 2D dans

lesquels sont branchés des éléments textuels. Les valeurs numériques des éléments qui y

sont affichés sont mises à jour automatiquement par le script de démarrage à la création

d’une nouvelle branche. Le panneau Configuration énumère les paramètres de la branche

Figure 3-37 : Fenêtre de conception – RPG

Figure 3-36 : Fenêtre de conception – IED

Page 91: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

90

de simulation, c’est-à-dire les quantités d’armures latérale et sous-plancher, ainsi que le

nombre d’IEDs et de RPGs. Le cargo est une valeur définie par le scénario qui est

simplement fonction des quantités d’armure; plus il y a d’armure, moins il y a de cargo

transporté et vice-versa. Le panneau Performance affiche les résultats finaux des

principales mesures de performance associées à la branche courante. Dans le coin supérieur

droit est affiché le nom de la branche, tel que défini dans Multichronia. Directement en

dessous, le panneau Exploration branches(s) permet d’ouvrir l’application Tableau

Desktop avec les données de simulation relatives à la branche courante ou à toutes les

branches explorées jusqu’à maintenant, en cliquant sur le bouton approprié. Le panneau

Suppression branche(s) fonctionne de la même manière pour supprimer une ou des

branches. Un bouton Sélection branche permet de montrer ou de cacher un autre panneau

de sélection de type « bouton radio » permettant de passer d’une visualisation de branche à

une autre; en effet, à cause d’une certaine surcharge liée à l’ouverture de multiples fenêtres

de rendu dans Eye-Sys, il a été choisi de ne permettre la visualisation que d’une seule

branche à la fois.

Un autre type de panneau d’information est utilisé pour les agents de simulation, affichant

des données numériques sur ces derniers. La Figure 3-39 montre un exemple de fenêtre de

données pour chaque type d’agent. Les éléments textuels représentent les valeurs de

variables au pas de temps courant, et les petits graphiques en arrière plan montrent

l’historique de leurs 50 dernières valeurs. Ces panneaux d’information, visibles seulement

pour les agents sélectionnés dans la vue, sont réalisés à l’aide d’un plug-in Eye-Sys de type

Figure 3-38 : Panneaux informatifs et de contrôle

Page 92: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

91

« Data Gadget », qui se comporte de la même manière qu’un « Callout » dans la vue 3D.

On peut d’ailleurs remarquer les instances de ces objets dans les fenêtres de conception des

agents, aux figures 3-35 à 3-37.

3.7.3 Graphique d’évolution

Alors que le panneau Performance présente les valeurs finales des mesures d’intégrité, de

cargo et de ponctualité pour une branche de simulation donnée, le graphique présenté à la

Figure 3-40 montre plutôt l’évolution des valeurs intermédiaires de la vitesse, de l’intégrité

et de la quantité de cargo (sur l’axe des Y) en fonction du pas de temps de la simulation

(sur l’axe des X). Ces valeurs n’étant pas préalablement calculées et stockées dans la BD,

elles sont entièrement générées dans un script à partir des données reçues, suivant les

formules mathématiques correspondantes spécifiées par le scénario. Les temps

correspondant aux pertes de véhicules, c’est-à-dire lorsque ces derniers atteignent une

valeur d’intégrité nulle et cessent d’avancer, sont également détectés lors de ce processus

de calcul et représentés par un astérisque sur le graphique.

Figure 3-39 : Panneaux d’informations de type « Data Gadget »

Page 93: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

92

Au bas du graphique se trouve une barre d’état montrant l’activité courante du convoi

militaire. Cet état varie selon les événements rencontrés par ce dernier; lorsqu’il subit une

attaque par un RPG, il se met en mode Combat et ralentit; lorsqu’il détecte un IED sur la

chaussée, il se met en mode Désamorçage et arrête complètement pendant quelques pas de

temps. Le reste du temps, il avance à sa vitesse de croisière en mode Déplacement. Ces

états sont montrés par des bandes de couleur oranges et violettes en plus d’être explicités

par un élément textuel à droite. Une barre verticale indique le pas de temps courant et se

déplace automatiquement avec l’animation de la scène.

Avec ces informations, il est facile de voir la correspondance entre les ralentissements et les

états du convoi, ainsi que les pertes de véhicules et donc de cargo.

3.7.3.1 Implémentation

Le graphique d’évolution et la barre d’état utilisent des plug-ins de type « Plotter ».

Cependant, leurs fonctionnalités sont plutôt limitées; pour les autres éléments graphiques

comme les astérisques et les éléments textuels, des « Scene Graph Renderers » dont

l’arrière-plan est transparent sont superposés aux graphiques, avec des caméras

judicieusement positionnées de manière à ce que les systèmes de coordonnées des deux

fenêtres soient parfaitement superposés et à la même échelle. Ceci permet entre autres

d’assigner directement aux symboles d’astérisque la position XY correspondant au pas de

temps et à la valeur d’intégrité requises pour qu’ils se positionnent et se mettent à l’échelle

correctement sur le graphique. La plupart des objets de conception de la Figure 3-41, les

« Manipulators » notamment, servent à mettre en place ce stratagème de telle sorte que les

Figure 3-40 : Graphique d'évolution

Page 94: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

93

échelles restent cohérentes en tout temps en s’adaptant automatiquement à la grandeur de la

fenêtre principale.

3.7.4 Vue « Distribution des simulations »

Cette vue est rendue possible grâce à un plug-in Eye-Sys développé à l’interne pour le volet

stratégique de l’analyse du scénario, mais dont l’utilité s’étend avantageusement à l’analyse

tactique. Un exemple est montré à la Figure 3-42.

Figure 3-42 : Vue « Distribution des simulations »

Figure 3-41 : Fenêtre de conception – Graphique d'évolution

Page 95: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

94

Il s’agit d’un graphique à trois dimensions dans lequel les données sont représentées sous

forme de sphères colorées. Dans le cas tactique, à chaque axe correspond un paramètre de

configuration d’une branche de simulation : blindage latéral, blindage sous-plancher et

nombre d’explosifs (le nombre de roquettes est en tout temps complémentaire pour obtenir

5 ennemis au total). Toutes les combinaisons de paramètres de simulation possibles peuvent

donc être représentées dans ce graphique.

Dans le cadre des expérimentations, un certain nombre de branches par défaut sont visibles

à tous les utilisateurs au début de leur session d’analyse et déjà disponibles dans les outils

d’IMAGE; ces branches sont représentées par des sphères grises. Comme nous l’avons

mentionné précédemment, la création de nouvelles branches de simulation est entièrement

gérée à l’aide de Multichronia. Son interface graphique permet à l’utilisateur de maintenir

plusieurs arbres multichroniques simultanément pendant une session d’analyse et de les

explorer en alternance à l’aide d’un mécanisme d’onglets. Il n’y a qu’un seul onglet, et

donc un seul arbre multichronique, qui soit visible en tout temps. Quoique toutes les

branches créées, tous onglets confondus, soient présentées sur le graphique de la

distribution des simulations, les sphères correspondant aux branches de l’onglet

présentement sélectionné dans Multichronia sont visibles en turquoise et celles des autres

onglets, en bleu foncé. La branche de la visualisation courante dans la vue Eye-Sys est

identifiée par un objet de type « callout ».

L’utilité de ce graphe réside surtout dans le fait de voir rapidement les régions de l’espace

de simulation ayant été plus ou moins explorées jusqu’à maintenant, pouvant guider

l’utilisateur dans la poursuite de son analyse.

3.7.5 Exploration tactique finale

La vue tactique finale, incluant tous les éléments décrits précédemment en tenant compte de

la rétroaction des intervenants du projet, est montrée à la Figure 3-43. Les panneaux

informatifs y sont agencés de manière à maximiser l’espace utilisé tout en ayant un souci

d’esthétisme et de clarté visuelle. Certains panneaux ont été abandonnés, notamment ceux

servant à sélectionner et à supprimer les branches car dans la version finale, ces interactions

sont entièrement exécutées dans l’explorateur de simulations Multichronia et synchronisées

Page 96: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

95

avec Eye-Sys (mécanismes décrits plus en détails à la section 3.8). Un petit panneau a

cependant été ajouté en bas à droite, permettant à l’utilisateur de choisir entre deux types de

prise de vue grâce à des caméras préconfigurées, la première offrant une navigation libre et

l’autre étant fixe mais suivant le déplacement du convoi en tout temps. Un autre bouton

permettant de montrer ou cacher la vue Distribution des simulations a également été ajouté.

3.7.6 Vue tactique allégée (groupe contrôle)

Une version allégée de la vue tactique a également été mise en place pour les besoins de

l’expérimentation. Elle sera utilisée par le groupe contrôle pour lequel les fonctionnalités

sont réduites, servant de point de comparaison avec les versions « IMAGE Desktop » et

« IMAGE CAVE ».

La vue tactique allégée, montrée à la Figure 3-44, fonctionne de la même manière que la

vue régulière sauf qu’il n’y a qu’une seule caméra dont l’orientation est fixée en position

orthogonale au plan XY de la scène. Les modèles 3D des RPGs et IEDs sont également

remplacés par de simples icônes 2D, et les textures du sol sont enlevées pour des raisons

Figure 3-43 : Agencement final de la vue tactique

Page 97: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

96

d’esthétisme et de clarté visuelle. Les diagrammes d’analyse, graphiques et vue de la

distribution des simulations, sont enlevés et seuls les panneaux Configuration, Performance

et le nom de la branche courante restent visibles.

3.8 Synchronisation avec Multichronia

Il importe de rappeler que la synchronisation entre les divers outils a été identifiée comme

étant l’un des besoins primordiaux du projet IMAGE. C’est pourquoi un effort soutenu en

ce sens a été fourni par les développeurs des différents modules. Comme nous l’avons

décrit à la section 3.6, le passage de toute l’information relative aux simulations vers une

BD centrale a été une étape déterminante de cet accomplissement. Cependant, au niveau

des actions de l’utilisateur et de la cohérence entre les éléments visuels pendant

l’expérimentation, des mécanismes plus adaptés, plus efficaces et plus rapides sont

nécessaires. Voilà donc l’intérêt de conserver et d’exploiter le lien de connexion socket

existant entre Simulation et Exploration, via le ImageDataServer. Comme nous l’avons

mentionné plus tôt, ce lien sert d’intermédiaire à un protocole de communication simple

que nous décrivons dans la section qui suit.

Figure 3-44 : Vue tactique allégée

Page 98: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

97

3.8.1 Protocole de communication

Dans la version tactique finale servant aux expérimentations, toutes les interactions

relatives au contrôle des branches de simulation sont reléguées à l’application

Multichronia. Cependant, les actions comme la création, la destruction, la sélection et le

déplacement temporel des nœuds de simulation doivent avoir des répercussions sur la vue

tactique de l’Exploration. La création doit déclencher le processus de requêtes à la BD et

l’instanciation des objets; la destruction doit les supprimer; la sélection doit faire apparaître

la fenêtre de visualisation appropriée; le déplacement temporel d’un nœud, exécuté

manuellement par l’utilisateur ou automatiquement par le simulateur, doit faire bouger et

positionner le convoi de la vue tactique au pas de temps spécifié. Un échantillon

représentatif de messages utilisés dans ce processus de synchronisation est présenté à la

Figure 3-45.

Toutes les informations sont transmises via des éléments XML. Le nom de l’élément

indique le contexte de simulation, soit « tacticalConvoy » ou « strategicalConvoy » selon le

cas. Le type de message et d’autres informations pertinentes sont donnés par des attributs

Figure 3-45 : Exemple type de messages envoyés par Multichronia

Page 99: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

98

de l’élément XML. L’attribut « name » indique le nom de la branche de simulation

concernée et « status », son état courant. Ce dernier paramètre indique généralement qu’une

interaction de l’utilisateur, comme l’ajout, la suppression ou la sélection de branche, a été

exécutée. Dans le cas d’un « update », le pas de temps courant et la vitesse de simulation

sont également fournis dans des attributs appropriés. Un message contenant l’attribut

« treeName » indique qu’un onglet a été sélectionné dans Multichronia; chaque onglet

représentant un arbre multichronique indépendant, toutes les branches qu’il contient sont

énumérées dans des sous-éléments du message racine (comme aux lignes 11 à 14 de la

Figure 3-45).

3.8.2 Plug-in « Driver Regulator »

Nous avons présenté sommairement à la section 0 le plug-in « Driver » de Eye-Sys, qui

permet de créer des animations en faisant varier les valeurs contenues dans les historiques

de propriétés des objets sur lequel il est branché. Avant la fusion totale des interactions

entre Simulation et Exploration, le contrôle de l’animation était fait dans Eye-Sys à partir

d’une fenêtre de contrôle spécifique au « Driver »; cette dernière offre des fonctionnalités

typiques telles jouer, pause, avancer et reculer. Le mode d’animation de données peut être

contrôlé de plusieurs manières : par pourcentage, par valeur ou simplement par une horloge

en temps réel. Pour notre visualisation, nous utilisons le mode par valeur où ces dernières

s’étendent sur le temps complet de la simulation la plus longue (typiquement de 0 à 300 pas

de temps). La vitesse de rendu est contrôlable par le pas de calcul (ou « step », différent du

pas de temps), c’est-à-dire l’incrément ajouté à la valeur de temps courant à chaque trame

(ou « frame ») de rendu graphique. Cela veut donc dire que la vitesse réelle dépend du pas

de calcul et de la vitesse de rendu graphique, et donc du matériel et de la complexité de la

scène. Or, nous voulons synchroniser la vitesse réelle de l’animation Eye-Sys à celle

donnée par Multichronia. Une tentative de solution a été élaborée avec le plug-in « Driver

Regulator », dont on peut voir les propriétés à la Figure 3-46.

Page 100: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

99

Il s’agit d’un plug-in de type « Manipulator » conçu pour fonctionner exclusivement avec

l’objet « Driver ». Le principe général est d’ajuster en temps réel le pas de calcul (« step »)

du « Driver » de manière à ce que la valeur de temps courant soit le plus près possible de

celle spécifiée par Multichronia. Ce dernier envoie périodiquement des messages de type

« update » dont les valeurs de temps sont communiquées au plug-in par commande COM

via le ImageDataServer. La vitesse du simulateur est alors évaluée et comparée à celle de

l’engin d’animation de Eye-Sys et le pas de calcul ajusté en conséquence, augmentant

lorsqu’Eye-Sys est en retard ou diminuant lorsqu’il est en avance, jusqu’à ce qu’il soit à

l’intérieur d’une zone satisfaisante. Quoique simpliste, cette approche s’avère assez stable

pour les besoins du système.

3.9 Amélioration des performances avec MySQL

Comme nous l’avons expliqué plus tôt, toutes les données de simulation nécessaires à la

visualisation sont acquises via un script dans Eye-Sys, qui utilise un plug-in de type

« Database » pour faire les requêtes à la BD MySQL. Cependant, la procédure de

récupération de données pour une seule branche est relativement longue, soit d’environ 15

secondes avec les ordinateurs actuels. Ce problème ayant été observé pendant les

développements et soulevé lors d’évaluations préliminaires, des solutions visant à accélérer

la procédure ont été étudiées. Une source de ralentissement soupçonnée de jouer un rôle

important dans ce problème est le plug-in « Database » de Eye-Sys qui, à chaque requête,

ouvre une connexion à la BD, exécute la requête et ferme la connexion. Dans un contexte

Figure 3-46 : Fenêtres de propriétés - Plug-ins « Driver » et « Driver Regulator »

Page 101: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

100

où les requêtes sont effectuées par centaines, cela est loin d’être optimal. Ceci crée

d’ailleurs un problème au niveau serveur MySQL qui cesse d’accepter les connexions après

en avoir reçu un certain nombre dans un court laps de temps, faisant échouer le processus

de création de branche.

3.9.1 Plug-in « MySQL Database »

Une solution à ce problème relativement facile à réaliser est de remplacer le plug-in de BD

de Eye-Sys. Pour cela, un plug-in Eye-Sys de type « Input » a donc été implémenté en

fonction des besoins du projet, à l’aide de la librairie MySQL++. Cependant, afin de limiter

les changements aux composants déjà développés, une interface et un mode de

fonctionnement semblables à l’ancien plug-in ont été adoptés, de telle sorte qu’il n’y ait

qu’un seul objet à remplacer et que les modifications au code soient réduites au minimum.

La Figure 3-47 montre la fenêtre des propriétés du plug-in « MySQL Database ». De

manière analogue à l’ancien plug-in Eye-Sys, une section de propriétés est dédiée à la

configuration de la connexion; elle peut être de type TCP ou « Named Pipe », un mode de

connexion local propre à Windows, et les traditionnels paramètres de connexion et

d’identification de l’utilisateur sont également configurables via diverses propriétés. La

différence majeure avec l’ancien plug-in est la possibilité de créer une connexion directe et

persistante à la BD, qui ne se réinitialise pas à chaque requête.

Figure 3-47 : Fenêtre de propriétés du plug-in "MySQL Database"

Page 102: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

101

Avec ce nouveau plug-in, une amélioration notable de la vitesse d’accès a été remarquée,

retranchant 4 à 5 secondes au temps de création d’une branche.

3.10 Système de « logs »

La motivation principale derrière cette catégorie de fonctionnalités est de conserver la trace

des actions exécutées par un utilisateur lors d’une session avec IMAGE, pour des fins

d’analyse. En effet, les expérimentations en psychologie cognitive requièrent

l’enregistrement de données concernant les interactions des utilisateurs comme l’heure

d’exécution d’une action, le type d’action et l’application qui est utilisée. L’analyse de ces

informations permet entre autres de suivre la démarche d’analyse des utilisateurs et de

déterminer quels outils y ont joué un rôle prépondérant. Cette rétroaction pourra également

donner des indications intéressantes quant à la pertinence et à l’apport des outils proposés

pour l’augmentation de la compréhension.

Pour la visualisation tactique dans sa version finale, les actions suivantes doivent être

enregistrées : la sélection et désélection des LAVs, IEDs et RPGs, les changements de prise

de vue (clics sur les boutons de caméra), l’ouverture de Tableau Desktop pour l’exploration

de données (clics sur les boutons du panneau Exploration), et l’ouverture et fermeture de la

vue de distribution des simulations (clics sur le bouton qui y est associé). Les informations

sont bien sûr inscrites dans une table de la BD, dont un exemple de contenu avec les

champs appropriés est montré à la Figure 3-48.

Figure 3-48 : Exemple de contenu de la table « ExplorationTacticalLog »

Page 103: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

102

Les clics de bouton sont très faciles à retracer à l’aide des scripts Eye-Sys; il suffit que le

script soit directement lié à l’objet de bouton, de telle sorte que l’exécution se produise

seulement lorsque le bouton est pressé. Dans l’exemple de la Figure 3-49, le code servant à

enregistrer les informations est intégré au script d’exécution de l’application Tableau

Desktop. Un objet « MySQL Database » est branché aux scripts et sert d’interface vers la

BD dans laquelle les informations sont enregistrées par des instructions SQL d’insertion.

Pour les sélections, le mécanisme est un peu plus complexe. En effet, il est impossible

d’être automatiquement informé de la sélection d’un objet par une propriété pouvant

déclencher un script; il faut donc surveiller constamment l’état de sélection des objets de la

scène et vérifier s’ils correspondent aux catégories que l’on désire retracer. La Figure 3-50

donne un aperçu des objets Eye-Sys nécessaires à cette fonctionnalité.

Le script « TacticalSelLogger » contient les instructions nécessaires à l’enregistrement des

événements de sélection. Il a accès à une liste des objets présentement sélectionnés parmi

tous ceux qui sont instanciés, grâce à une fonction COM exposée par l’application

principale. Il fait ensuite une vérification des noms de ces objets et s’ils correspondent à un

LAV, un IED ou un RPG, ils sont enregistrés dans la table MySQL. Un mécanisme

automatique doit cependant forcer cette procédure à être constamment ré-exécutée car elle

Figure 3-50 : Fenêtres de conception et de propriétés – Log des sélections

Figure 3-49 : Fenêtre de conception - Scripts Tableau et logs

Page 104: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

103

ne peut être déclenchée par un événement régulier. C’est l’utilité du plug-in

« ScriptAutoRefresh », qui a été développé auparavant dans le cadre d’autres essais. Sa

seule fonctionnalité est de forcer l’exécution périodique des scripts qui lui sont connectés,

via une liste extensible de pointeurs d’objets de type « Multiproperty ». Ceci est facilement

implémenté à l’aide d’une minuterie disponible dans le SDK de Eye-Sys. Afin de donner

plus de flexibilité au plug-in, une propriété permettant de régler la fréquence de

rafraîchissement lui a été ajoutée. Selon nos tests avec le système, un taux de

rafraîchissement de 3 ou 4 fois par seconde s’avère suffisant, réduisant ainsi au minimum

l’utilisation du processeur et du thread principal de Eye-Sys, ne causant donc aucune

pénalité de performance perceptible.

Page 105: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

104

4 Évaluation

Dans cette partie, nous commençons par revenir brièvement sur le fonctionnement du

système intégré en commentant un exemple d’utilisation. Par la suite, nous prenons du

recul par rapport au projet en discutant de certains aspects des développements réalisés et

en proposant certaines recommandations. Nous terminons en faisant un retour sur

l’utilisation de Eye-Sys, notre plateforme de développement principale.

4.1 Test du système intégré

4.1.1 Exemple d’utilisation

Les composants de la version « Desktop » d’IMAGE sont désormais très liés dans leur

mode de fonctionnement. Cette section montre un aperçu de l’utilisation du système intégré

dans son ensemble, mettant en contexte les fonctionnalités que nous avons implémentées et

décrites dans le chapitre précédent.

Dû à l’utilisation simultanée de plus d’un logiciel, il est préférable de travailler avec une

configuration à plusieurs écrans; les devis d’expérimentations en psychologie cognitive

sont d’ailleurs conçus pour des ordinateurs de bureau utilisant un affichage à trois écrans

pour les diverses applications de la suite d’outils. Les machines utilisées pour les

développements et les expérimentations sont identiques et possèdent les configurations

matérielle et logicielle suivantes :

Processeur Dual Core AMD Opteron version 275 à 2.2 GHz

2 Go de mémoire vive DDR2 à 667 Mhz

2 cartes graphiques nVidia Quadro FX 4500 avec 1 Go de mémoire vive DDR3

Microsoft Windows XP Professional SP3

Une saisie de deux écrans affichant simultanément Multichronia, l’explorateur de

simulations, et Eye-Sys, l’outil de visualisation, est présentée à la Figure 4-1.

Page 106: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

105

À

l’aide d’une petite application connexe servant de gestionnaire d’expérimentation, l’outil

Eye-Sys est démarré avec le ImageDataServer, suivi de Multichronia qui au démarrage

tente de s’y connecter par liaison socket TCP. Si cette opération réussit, il va transférer par

la suite tous les messages correspondant aux événements de navigation pour la

synchronisation (comme expliqué à la section 3.8.1).

La création d’une vue se fait dans Multichronia par la sélection du nœud racine et l’entrée

de la commande correspondante du menu de souris associé. Une boîte de dialogue s’ouvre

alors, permettant la sélection des valeurs désirées pour les paramètres de simulation.

Lorsque c’est fait, un nouveau nœud apparaît dans l’arbre multichronique et un message

d’attente est affiché du côté de Eye-Sys pendant le processus de récupération de données et

de création d’objets. Une fois la branche créée, son nœud correspondant peut être déplacé le

long de la ligne de temps et sa position temporelle est constamment mise à jour dans la

visualisation, presque instantanément. Un double clic sur le nœud active la fonction

« play » qui démarre l’animation automatique de la simulation. Lorsque plusieurs branches

sont créées, c’est par la sélection d’un nœud dans Multichronia, par simple clic, que la

visualisation correspondante est assignée à la fenêtre principale de Eye-Sys.

Les branches créées sont automatiquement sauvegardées par Multichronia et restaurées lors

de l’ouverture de la session suivante. Les messages correspondants sont envoyés à la

visualisation à ce moment, déclenchant le processus automatique de récupération de

données pour toutes les branches nécessaires.

Figure 4-1 : Saisie d'écran du système intégré

Page 107: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

106

4.1.1.1 Performance

La réponse du système est généralement très bonne et relativement stable : les messages de

synchronisation sont acheminés vers la visualisation en moins d’une demi seconde; le

rendu 3D est également fluide et constant car la complexité de la scène ne varie que très

peu.

Le temps de création d’une branche est cependant relativement long, soit de 12 à 15

secondes en moyenne et ayant légèrement tendance à augmenter lorsque le nombre de

branches instanciées devient grand. Cela ne pose pas de problème majeur pour le cours

normal d’une session d’expérimentation. Toutefois, à cause du délai inhérent au processus,

la restauration d’une session peut prendre plusieurs minutes, tout dépendant du nombre de

branches à récupérer.

Également, un phénomène que nous avons observé, qui est partiellement hors de notre

contrôle, est l’augmentation constante de l’utilisation de mémoire de Eye-Sys au fil du

temps. Celle-ci ne cesse de croître, même lorsque des objets sont supprimés. Des problèmes

de performance peuvent alors être observés, souvent après la création d’une vingtaine de

branches. Une fuite de mémoire dans Eye-Sys au niveau de la création et de la suppression

des objets est probablement la cause de ce problème normalement banal et sans

conséquences, mais ici amplifié par nos procédures de création et de destruction d’objets en

masse et sur une longue période.

4.1.2 Débogage du scénario

Nous avons mentionné à la section 3.6 que les données de simulation étaient générées par

une application responsable d’analyser le contenu XML provenant du simulateur pour

toutes les branches possibles et de remplir la base de données. Cependant, certains cas

spéciaux faisaient en sorte qu’il y avait quelques failles dans les algorithmes d’analyse de

cette application, créant des inconsistances dans les données et par le fait même dans la

visualisation. Grâce aux éléments visuels fournis par la vue tactique, plusieurs problèmes

dans diverses branches ont pu être identifiés tels des dommages aux véhicules mal

comptabilisés, des fausses attaques, des attaques manquantes ou mal documentées dans les

données, des véhicules restant dans un état bloqué avant la fin de la simulation, et même

Page 108: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

107

des valeurs finales de mesures de performance erronées. Un autre problème relatif aux

spécifications du scénario faisait également en sorte que les attaques d’IED déclenchaient

un état de combat dans le convoi dans certaines branches et pas dans d’autres, alors qu’elles

n’auraient jamais dû en provoquer. Ceci a pu être identifié grâce à la vue du graphique

d’évolution et la barre d’état.

4.2 Discussions

4.2.1 Améliorations possibles et recommandations

4.2.1.1 Accès à la base de données

Même si certaines améliorations ont pu être apportées pour diminuer le temps d’accès à la

base de données, le délai reste cependant élevé et peut devenir dérangeant pour l’utilisateur.

Le système fonctionne jusqu’à maintenant avec une BD locale et les pertes de temps

relatives à la connexion MySQL ont été somme toute éliminées par le remplacement du

plug-in « Database » de Eye-Sys, mais le gain de vitesse global est moins grand que prévu;

ces délais significatifs proviennent donc d’autres sources. Le fait que tout le code soit

exécuté sous forme de script, un langage interprété, est probablement l’une des causes de

ralentissement. L’utilisation de fonctions COM comporte également un coût en

performance et comme ces dernières sont exploitées par l’engin de scripts, cela peut donc

ajouter une pénalité supplémentaire. Finalement, une autre cause de lenteur est sans doute

le fait de devoir effectuer une boucle de plusieurs centaines d’itérations pour obtenir toutes

les données de chaque branche.

Devant ces faits, il devient évident que pour obtenir des gains de performance

supplémentaires, il faut revoir complètement le mode d’acquisition des données. D’abord,

le traitement de données de masse au sein même du système de visualisation est inadéquat

puisque cela accapare toutes ses ressources de calcul et bloque complètement le

rafraîchissement graphique pendant plusieurs secondes. De plus, advenant le cas où une

autre plateforme utilisant les mêmes données serait introduite dans la suite d’outils, soit

tous les accès de données et leur formatage sont à refaire, soit il faut exporter les données

de la première application vers la nouvelle, imposant de nouveau une charge de travail

supplémentaire à la visualisation. La meilleure solution serait d’exécuter tout le travail

Page 109: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

108

relatif au traitement de données dans une application externe, jouant le rôle de point central

de distribution. Le choix de design concernant les accès à la BD décrit à la section 3.6.1

pourrait donc être remis en question; alors que le premier choix s’avérait avantageux à

court terme, c’est la seconde option qui aurait probablement été préférable à long terme.

Également, la structure de la BD et la manière d’interagir avec cette dernière mériteraient

probablement d’être revues; la structure élaborée au départ par les développeurs de la partie

Simulation n’a pas nécessairement été conçue en tenant compte des besoins des autres

modules, dont l’Exploration. Le problème d’extraction de données décrit à la section

3.6.2.1 pourrait probablement être réglé en découplant les paramètres d’identifiants de

branche et de temps dans deux entrées distinctes des tables concernées, réduisant les

centaines de requêtes à une seule. Même si cela paraît simple, le contexte de

développement et un manque de connaissances et d’expérience de notre part avec les bases

de données ont fait en sorte que cette option n’avait pas été envisagée au départ.

4.2.1.2 Mode de création et de suppression de branches

Comme nous l’avons décrit à la section 3.7.1, le système de visualisation est implanté de

telle sorte qu’à chaque nouvelle branche qui est créée, une nouvelle série d’objets est

instanciée. Cette approche avait été adoptée pour des raisons pratiques pendant le

développement. En effet, il est plus efficace, en termes de rapidité et de risque d’erreurs, de

faire des modifications à un seul groupe d’objets à partir duquel on peut créer

dynamiquement de multiples instances que de faire plusieurs fois les mêmes modifications

à répétition sur plusieurs instances statiques des mêmes types objets. Également, cette

méthode a l’avantage que les conteneurs de données et leurs liaisons avec les propriétés des

objets n’ont jamais à être changés. Un schéma structurel montrant l’organisation des objets

Eye-Sys est montré à la Figure 4-2.

Comme on peut le constater, il y a un ensemble complet d’objets pour chacune des

branches de simulation, dont le contenu est lié à un arbre de rendu (Scene Graph Renderer).

Ces ensembles sont tous branchés à un objet agissant à la manière d’un multiplexeur, qui

permet de sélectionner l’un d’entre eux à la fois via une propriété énumérée, et dont la

Page 110: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

109

sortie est branchée à la fenêtre de visualisation. Les liens en gras montrent qu’une

importante quantité de données circule via de nombreux liens entre les modules concernés.

Cette approche résulte en un très grand nombre d’objets instanciés dans la fenêtre de

conception. Quoique cela ne pose pas de problème a priori puisque cette fenêtre est fermée

pendant la session d’analyse, il semble que certaines pénalités en performance et de

l’instabilité y soient associées dans certains cas, comme nous l’avons mentionné à la

section précédente. Il n’est d’ailleurs pas optimal de garder de nombreuses instances

d’objets graphiques qui sont en tous points identiques mis à part leur position et leur état

d’affichage.

Une alternative à la structure actuelle serait de n’avoir qu’une seule instance des objets de

visualisation et de ne dupliquer que les conteneurs de données. Un diagramme théorique

présenté à la Figure 4-3, semblable au précédent, montre une structure possible pour cette

approche.

Branche 1

Données LAV

Graphiques

IED

RPG

Fenêtre de

visualisation

Branche 2

Données LAV

Graphiques

IED

RPG

Branche n

Données LAV

Graphiques

IED

RPG

Multiplexeur

...

Arbre de

rendu

Arbre de

rendu

Arbre de

rendu

(x 10)

(x 10)

(x 10)

(x 5)

(x 5)

(x 5)

Figure 4-2 : Organisation structurelle actuelle des objets Eye-Sys pour la visualisation

Page 111: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

110

On peut effectivement constater qu’un seul groupe d’objets de visualisation serait alors

présent, ce qui forcerait à déplacer le multiplexeur entre les conteneurs de données et les

autres objets. Sa tâche de multiplexage s’en trouverait cependant énormément complexifiée

car il devrait maintenant gérer toutes les connexions de données partant des conteneurs vers

les objets, contrairement au modèle actuel où il n’y a qu’un seul lien à changer.

Il est difficile d’évaluer si le gain en performance de ce mode de fonctionnement pourrait

justifier les efforts de développement requis pour sa réalisation. Pour cette raison, cette

option a été écartée. Advenant le cas où les problèmes de stabilité qui ont été rencontrés en

seraient venus à compromettre le bon fonctionnement du système, les changements auraient

peut-être été nécessaires afin de limiter les créations et destructions en masse, en apparence

à l’origine de ces problèmes.

4.2.1.3 Visualisation, rendu graphique et interaction

Une autre possibilité n’ayant été que très peu explorée est celle de développer un nouveau

plug-in de système de rendu pour Eye-Sys. Cette option avait été écartée au départ en

raison de l’apparente complexité de la tâche. En effet, ceci implique, pour un système

d’arbre de rendu par exemple, de réécrire entièrement le code nécessaire au contrôle du

rendu graphique et de ré-implémenter plusieurs fonctions responsables de gérer les

Branche 1

Données

LAV

Graphiques

IED

RPG

Fenêtre de

visualisationMultiplexeur

Branche 2

Données

...

Branche n

Données

(x 10)Arbre de

rendu

(x 5)

Figure 4-3 : Organisation structurelle alternative pour le système de visualisation

Page 112: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

111

événements de clavier et souris, les modes de navigation et le zoom, la sélection des objets

dans la fenêtre, etc. Cependant, cela laisse beaucoup plus de latitude et de possibilités pour

l’implémentation de fonctionnalités sur mesure, notamment en termes d’interaction, ce qui

nous a manqué à maintes reprises. Advenant le cas où des développements supplémentaires

avec Eye-Sys seraient envisagés dans ce projet ou dans un autre contexte, l’exploration de

cette avenue serait fortement souhaitable, voire même indispensable.

Pour ce qui est de la visualisation, certaines améliorations relativement peu difficiles à

implémenter auraient pu être faites, notamment pour les panneaux d’information. Alors

qu’ils n’affichent présentement que des valeurs numériques, une représentation sous forme

d’histogramme pour les mesures de performance, par exemple, donnerait un meilleur

aperçu visuel des valeurs représentées; ceci aurait pour effet de diminuer la charge mentale

de l’utilisateur qui n’aurait pas nécessairement besoin de lire les valeurs numériques et de

les interpréter, augmentant ainsi l’efficacité de tâches comme l’identification de la

meilleure branche pour l’une ou l’autre des mesures de performance.

Une meilleure diversité d’outils et plus de flexibilité dans la manière de les utiliser et de les

agencer seraient également souhaitables. La disposition actuelle de la fenêtre de

visualisation a été travaillée et approuvée rigoureusement pour être conforme aux exigences

des expérimentations en psychologie cognitive. Les aspects fonctionnels du système, tels

communications, synchronisation et « logs », ont également requis beaucoup d’efforts de

développement, laissant moins de temps pour le design de fonctionnalités visuelles.

Cependant, il pourrait être intéressant de creuser davantage les possibilités en termes de

visualisation d’analyse, telle la vue de distribution des simulations qui a déjà été intégrée;

une version améliorée du plug-in de graphique 3D a d’ailleurs été développée pour une vue

d’analyse dans le contexte stratégique du scénario, qui permet de comparer les valeurs de 5

paramètres à la fois, exploitant la forme et la couleur des points.

Pour ce qui est de la synchronisation du rendu de l’animation Eye-Sys avec le logiciel de

simulation, quoiqu’offrant une performance satisfaisante dans des conditions prédéfinies

comme celles des expérimentations, le plug-in de régulation devient souvent instable

lorsque l’on modifie la vitesse de rendu désirée trop loin des valeurs par défaut.

Présentement, nous obtenons un compromis entre le synchronisme parfait des positions

Page 113: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

112

temporelles et une certaine fluidité d’animation; en effet, nous aurions pu nous contenter

d’affecter les valeurs des positions aux conteneurs de données sans utiliser l’engin

d’animation de Eye-Sys, mais nous privant de la fluidité offerte par son système

d’interpolation linéaire, résultant en un mouvement constamment saccadé. Cependant,

suivant la même technique présentement utilisée, il serait possible de raffiner

l’implémentation avec un meilleur type d’asservissement utilisant par exemple un

correcteur proportionnel intégral (PI), si l’utilité et le besoin s’en faisaient sentir. Toutefois,

dans tous les cas, ce genre de manœuvre reste un tour de force peu élégant pour faire

fonctionner ensemble des plateformes indépendantes n’étant pas prévues pour ce genre de

synchronisme.

4.2.2 Plateforme Eye-Sys

Cet outil ayant été au cœur de la majeure partie des développements de notre projet, il

convient d’y revenir et de faire un bilan de l’utilisation approfondie que nous en avons

faite.

La facilité de créer rapidement des scènes de rendu 3D animées de toutes sortes par la

connexion de modules indépendants est sans doute l’attrait le plus marquant que procure

l’application Eye-Sys, un fait qui depuis le début a joué en sa faveur, surtout dans un

contexte où les objectifs étaient plus ou moins précis. Les nombreuses possibilités pour

l’importation de données et l’ajout de fonctionnalités avec le SDK étaient également toutes

indiquées pour répondre à de nouveaux besoins éventuels. Cela étant dit, lorsque l’on

parvient à l’étape de raffinement et des détails visuels, les plug-ins fournis avec

l’application manquent souvent de flexibilité, notamment en ce qui a trait aux graphiques

2D et aux panneaux d’information et de contrôle. Plusieurs de ces objets n’ont pas

nécessairement été pensés en vue du genre d’utilisation que nous aurions désiré en faire;

par exemple, certaines fonctionnalités permettant de modifier le type de tracé du « Plotter »

sont cachées dans le plug-in, c’est-à-dire non exposées via des propriétés régulières, et il est

donc impossible de les modifier automatiquement à l’aide de scripts ou par interaction

COM. À cet égard, il est regrettable de ne pas pouvoir créer de nouveaux plug-ins, par

mécanisme d’héritage, à partir de ceux qui existent déjà et qui pourraient conserver la

Page 114: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

113

majeure partie de leurs fonctionnalités, tout en permettant d’en ajouter ou d’en modifier

selon nos propres besoins.

Alors que les scripts ne semblaient pas particulièrement attrayants au départ en contraste

des fonctions COM et du SDK, ils ont finalement été utilisés à très grande échelle dans le

projet, principalement à cause de l’énorme flexibilité qu’ils procurent. Ils ont notamment

accès à pratiquement toutes les fonctionnalités du programme ainsi qu’à tous les objets

instanciés et leurs propriétés, en plus de pouvoir en créer d’autres. La syntaxe est également

plus simple et plus rapide à s’approprier que le C++. Cependant, en plus des pénalités de

performance dont nous avons déjà parlé, un des désavantages de cette méthode est

l’impossibilité de déboguer en cours d’exécution. Seul un message vague avertissant que le

script a échoué est montré lorsque cela se produit, mais on peut cependant inclure des

sorties texte à la console pour observer des états de variables. Quoique cela soit souvent

suffisant, lorsque les scripts atteignent plusieurs centaines de lignes de code comme dans la

routine de création de vue tactique, de meilleurs outils de débogage seraient souhaitables.

Finalement, le fait que l’application soit complètement fermée pose toutes sortes de

limitations quant au fonctionnement global du système. Nous avons déjà parlé du manque

de contrôle sur les objets de scripts, pour lesquels nous aurions voulu une meilleure

transparence quant à leur comportement et à leur interaction avec les autres éléments du

programme; ces problèmes ont heureusement pu être judicieusement résolus grâce aux

mécanismes de contrôle que nous avons mis en place. Toutefois, la conséquence la plus

ennuyeuse du fait de n’avoir aucun accès au code est d’être à la merci des bogues de

l’application. À maintes reprises, des problèmes étranges, étant parfois même fatals pour

l’application principale, ont été observés et nous ont empêchés de réaliser certaines

opérations nécessaires, notamment concernant des fonctions de suppression d’objets via

fonctions COM. Certains autres problèmes mineurs, comme dans certaines fonctions de

gestion d’ouverture et de fermeture de fenêtres de rendu, ont rendu difficile

l’automatisation complète du système pour l’expérimentation et les différents scénarios.

Probablement dû au modèle d’affaires et au marché cible strictement commercial visé par

Eye-Sys, il n’y a pas vraiment (encore) d’ouverture vers une communauté d’utilisateurs

partageant leurs expériences de développements entre eux et les plug-ins qu’ils ont eux-

Page 115: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

114

mêmes développé, même avec la présence d’un forum de discussion officiel. Ce dernier est

cependant un excellent outil pour le support en ligne, régulièrement consulté et maintenu

par les développeurs de Eye-Sys eux-mêmes, qui répondent généralement très bien aux

questions des utilisateurs. Le type d’interaction y reste toutefois très individuel et il n’y a

pratiquement pas d’échange entre les utilisateurs eux-mêmes.

Page 116: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

115

5 Conclusion

Les objectifs que nous avons décrits au départ quant à la réalisation d’un système

permettant d’aider à la compréhension de situations complexes étaient de taille. Dans un

contexte initial peu balisé, les premières étapes ont consisté en une familiarisation dans le

domaine de la visualisation en général, de la psychologie cognitive et des interfaces

personne-machine. Beaucoup de liens existent entre ces domaines d’étude, ce que l’on ne

suspecterait pas nécessairement à première vue. Une certaine sensibilisation face aux

aspects relatifs à l’humain pour le développement de systèmes numériques a aussi été

développée; pour un projet tel qu’IMAGE où l’utilisateur humain est au centre de toute

interaction, il s’agit d’un point important à considérer.

La première phase de développement logiciel a surtout touché les aspects techniques de la

gestion de plusieurs flots de données XML en parallèle, motivée par le besoin de rendre

disponibles des données de simulation vers le module Exploration. Cette approche a été

remplacée par la BD par la suite, mis à part le transfert de messages pour la

synchronisation. Cependant, il pourrait être envisagé de reprendre et raffiner ce mode de

fonctionnement dans des versions ultérieures du projet ou dans d’autres contextes

semblables où des données fraîchement simulées doivent être passées très rapidement entre

divers modules. Alors que présentement, la BD suffit amplement aux besoins car toutes les

données sont pré-simulées, il suffirait d’un scénario avec quelques paramètres

supplémentaires ou de plus grands intervalles de valeurs pour que cette approche avec pré-

simulation complète soit impensable à cause du trop grand nombre de branches possibles;

cela augmente encore si on inclut les possibilités de créer des sous-branches via une

exploration interactive. De plus, une gestion encore plus efficace des données, permettant

par exemple le transfert et le rendu de données au fur et à mesure qu’elles sont disponibles,

serait probablement nécessaire afin d’éviter de trop grandes latences lors des créations de

branches. Une approche hybride combinant un traitement temps-réel et une BD pourrait

être envisagée.

C’est au cours des étapes suivantes que le travail principal sur la visualisation a été réalisé.

Alors que nous avons eu affaire à un scénario militaire tactique, ce sont les aspects

Page 117: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

116

géospatiaux, près des préoccupations réelles sur le terrain, qui se sont retrouvés au premier

plan. Les éléments visuels qui ont été développés expriment, en fonction du temps et de

l’espace, les événements d’attaques, d’explosions, de pertes de véhicules, etc.; ils facilitent

l’analyse de premier niveau des événements du scénario et de leurs causes directes. Pour

une analyse plus approfondie nécessitant la comparaison de plusieurs branches et la

découverte de tendances, l’outil Tableau est disponible, offrant plusieurs possibilités de

représentations en 2D pour toutes les données de la simulation. Il pourrait être intéressant

d’ajouter des outils d’analyse en 3D avec Eye-Sys pour ces mêmes données.

Certaines théories en interfaces personne-machine et en psychologie cognitive affirment

que la cohérence est une caractéristique essentielle d’un système convivial et efficace, ce

qui justifie les efforts qui ont été déployés pour la synchronisation entre les outils. Tous les

éléments d’interaction relatifs aux branches de simulation ont donc été regroupés dans

l’application de simulation afin de limiter les redondances inutiles et les possibilités de

confusion.

Pour les premières phases d’expérimentations en psychologie, la version « Desktop » sera

utilisée. Cependant, un des objectifs du projet IMAGE que nous avons brièvement

mentionné dans l’introduction est l’intégration des outils de visualisation dans un

environnement virtuel de type CAVE. Ceci n’a pas pu être réalisé pour la vue tactique,

principalement à cause d’un problème de rendu de textures avec Eye-Sys lorsque combiné

avec l’utilisation des technologies de « tracking » et de stéréoscopie. Toutefois, des

développements ont été réalisés à ce jour pour la partie stratégique du scénario avec des

vues 3D analytiques pleinement fonctionnelles, en vue d’une session d’expérimentations

avec utilisateurs dans le CAVE. La configuration utilisée inclut un TabletPC pour la

navigation avec Multichronia, l’explorateur de simulations, ainsi qu’une projection des

vues analytiques à l’intérieur du CAVE. Des résultats sont attendus suite aux diverses

sessions d’expérimentation pour les versions « Desktop » et « CAVE », qui donneront des

mesures permettant d’évaluer les bénéfices apportés au niveau de la compréhension.

La première version du projet IMAGE étant dédiée à une étude préliminaire sur

l’augmentation de la compréhension, les développements sont entièrement adaptés aux

expérimentations prévues à cet effet et ne sont pratiquement pas génériques. Ceci étant dit,

Page 118: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

117

il ne s’agit que d’une première étape dans un processus de recherche d’envergure; une

deuxième version du projet IMAGE, conçue entièrement pour le CAVE et ses technologies

immersives, est en cours de développement. Contrairement à la version précédente, aucune

limitation reliée à des contraintes d’expérimentations ne sera présente, laissant toute la

place au potentiel des technologies disponibles et beaucoup plus de flexibilité pour le

design.

Page 119: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

118

6 Bibliographie ACE Documentation 5.6.0. Septembre 2007.

http://www.dre.vanderbilt.edu/Doxygen/5.6/html/ace/index.html.

Aduna. AutoFocus. Août 2007. http://www.aduna-

software.com/technologies/autofocus/overview.view.

Alberts, David S., et Richard E. Hayes. «Understanding Command and Control.» DoD Command

and Control Research Program, 2006.

Atkinson, Richard, et Richard Shiffrin. «Human memory: A proposed system and its control

processes.» Dans The Psychology of Learning and Motivation: Advances in Research and Theory,

89-195. New York: Academic Press, 1968.

Bederson, Benjamin B. «Fisheye Menus.» Human-Computer Interaction Lab, 2000.

Bernier, François, et François Rioux. Convoy Scenario for Complexity Study. RDDC Valcartier,

2008.

CAIDA. Walrus - Graph Visualization Tool. Août 2007.

http://www.caida.org/tools/visualization/walrus/.

Christoffersen, Klaus, et David D. Woods. «How to Make Automated Systems Team Players.»

Institute for Ergonomics. Ohio State University, 2002.

Component Object Model. Avril 2009. http://fr.wikipedia.org/wiki/ActiveX.

Daassi, Chaouki. Techniques d’interaction avec un espace de données. Université Joseph Fourier

Grenoble I: Thèse de doctorat, 2003.

Doyle, James K., et David N. Ford. «Mental Models Concepts.» System Dynamics Review, Report

no. 6, 7 Janvier 1998.

Foresti, Stefano, James Agutter, Yarden Livnat, Shaun Moon, et Robert Erbacher. «Visual

Correlarion of Network Alerts.» IEEE Computer Graphics and Applications, Mars-Avril 2006: 48-

59.

Fractal:Edge. Fractal:Edge. Mai 2009. http://www.fractaledge.com/.

Funke, Joachim. «Microworlds based on linear equation systems: a new approach to complex

problem solving and experimental results.» Advances in psychology, vol. 101, 1993: 313-330.

Funke, Joachim. «Solving Complex Problems: Exploration and Control of Complex Systems.»

Dans Complex Problem Solving - Principles and Mechanisms, de Joachim Funke, 185-216.

Lawrence Erlbaum Associates, 1991.

Page 120: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

119

Google. «Google Earth 5.0.» 29 Janvier 2009.

Hauser, Helwig, Florian Ledermann, et Helmut Doleisch. «Angular Brushing of Extended Parallel

Coordinates.» VRVis Research Center in Vienna, 2002.

Hitch, Graham J. «Applying cognitive psychology to user-interface design .» New York, NY, USA:

John Wiley & Sons, Inc., 1987. 119-134.

Hollnagel, Erik, et David W. Woods. «Cognitive systems engineering: new wine in new bottles.»

International Journal of Man-Machine Studies, Vol. 18, Issue 6, Juin 1983: 583-600.

Hübler, Alfred W. «The Simply Complex - Predicting complex systems with a holistic approach:

The throughput criterion.» Complexity, Vol. 10, Issue 3, 9 Février 2005: 11-16.

IDV, Inc. 2009. http://www.eye-sys.com/.

IDV, Inc. Eye-Sys SDK Programmers Manual. 2009.

IDV, Inc. Eye-Sys SDK Reference. 2009.

Jerding, Dean F., et John T. Stasko. «The Information Mural: A Technique for Displaying and

Navigating Large Information Spaces.» IEEE Transactions on Visualization and Computer

Graphics, Vol. 4, No. 3, Juillet-Septembre 1998: 257-271.

Jobidon, Marie-Ève. «Prise de décision en situation complexe.» Présentation du cours "Psychologie

cognitive appliquée" (PSY-66636). RDDC Toronto, 4 Février 2008.

Johnson, Addie, et Robert W. Proctor. Attention - Theory and Practice. SAGE, 2003.

Judelman, Greg. «Knowledge Visualization - Problems and Principles for Mapping the Knowledge

Space.» University of Lübeck: Mémoire de maîtrise, 2004.

Keim, Daniel A., et Daniela Oelke. «Literature Fingerprinting: A New Method for Visual Literary

Analysis.» University of Konstanz, 2007.

Kosara, Robert, Silvia Miksch, Helwig Hauser, Johann Schrammel, Verena Giller, et Manfred

Tscheligi. «Useful Properties of Semantic Depth of Field for Better F+C Visualization.» Joint

EUROGRAPHICS - IEEE TCVG Symposium on Visualization. The Eurographics Association,

2002.

Kullberg, Robin L. Dynamic Timelines - Visualizing Historical Information in Three Dimensions.

Massachusetts Institute of Technology: Mémoire de maîtrise, 1995.

Kurtz, Cynthia F., et David J. Snowden. «The new dynamics of strategy: Sense-making in a

complex and complicated world.» IBM Systems Journal, Vol. 42, no 3, 2003: 462-483.

«Laboratoire d'immersion virtuelle, RDDC Valcartier.» RDDC Valcartier, 2006.

Lafond, Daniel, Jean-François Gagnon, et Sébastien Tremblay. «IMAGE - An Interactive

Computer-Aided Cognition Capability for C4ISR Complexity Discovery.» Report on the Cognitive

Foundations and Experimental Design. École de psychologie, Université Laval, 2009.

Page 121: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

120

«Levels of Understanding.» University of South Australia. Mai 2009.

www.unisa.edu.au/easdeanteaching/tlgrants/Levels%20of%20Understanding.doc.

Lizotte, Michel, Denis Poussart, François Bernier, Marielle Mokhtari, Éric Boivin, et Michel

Ducharme. «IMAGE: Simulation for Understanding Complex Situations and Increasing Future

Force Agility.» Proc. of Army Science Conference 2008. Orlando (FL), USA: SL 2008-468, 2008.

Miller, George A. «The Magical Number Seven, Plus or Minus Two: Some Limits on our Capacity

for Processing Information.» Psychological Review. 1956. 81-97.

Mokhtari, Marielle, Michel Ducharme, Éric Boivin, François Bernier, et Denis Poussart. IMAGE -

An Interactive Computer Aided Cognition Capability for C4ISR Complexity Discovery - A Human

Assistant to Understand Complex C4ISR Situations. Sommaire exécutif, RDDC Valcartier: SL

2007-479, Avril 2007.

MySQL. Avril 2009. http://fr.wikipedia.org/wiki/MySQL.

MySQL C++ API. 2009. http://mysqlcppapi.sourceforge.net/.

MySQL++. 2009. http://tangentsoft.net/mysql++/.

Netzpannung. The Semantic Map Interface. Août 2007.

http://netzspannung.org/about/tools/semantic-map/?lang=en.

Object Linking and Embedding. Avril 2009.

http://en.wikipedia.org/wiki/Object_Linking_and_Embedding.

Online ACE Tutorials. 2009. http://www.huihoo.org/ace_tao/ACE-5.2+TAO-

1.2/ACE_wrappers/docs/tutorials/online-tutorials.html.

Poussart, Denis. «Complexity : An Overview of its Nature, Manifestations, and Links to S&T

Convergence, with Comments on its Relevance to Canadian Defence.» Rapport de contrat, RDDC

Valcartier, 2006.

Rao, Ramana, et Stuart K. Card. «The Table Lens: Merging Graphical and Symbolic

Representations in an Interactive Focus+Context Visualization for Tabular Information.» Xerox

Palo Alto Research Center, 1994.

Rioux, François. «Conception et mise en oeuvre de Multichronia, un cadre conceptuel de simulation

visuelle interactive.» Thèse de doctorat, Département de génie électrique et de génie informatique,

Université Laval, 2009.

Rioux, François, François Bernier, et Denis Laurendeau. «Multichronia – a Generic Parameter,

Simulation, Data, and Visual Space Exploration Framework.» Interservice/Industry Training,

Simulation, and Education Conference (I/ITSEC). 2008.

Rouse, William B., et Nancy M. Morris. «Understanding and Enhancing User Acceptance of

Computer Technology.» Systems, Man and Cybernetics, IEEE Transactions, Novembre 1986: 965-

973.

Page 122: INTÉGRATION ET EXPLOITATION D’OUTILS DE …niveau de compréhension de l’humain dans de telles situations. Il regroupe quatre grands modules : Scénarisation, Simulation, Exploration

121

Schmidt, Douglas C. The ADAPTATIVE Communication Environment. 2009.

http://www.cs.wustl.edu/~schmidt/ACE.html.

Shanteau, James. «Competence in experts: The role of task characteristics.» Organizational

Behavior and Human Decision Processes, Volume 53, Issue 2, Novembre 1992: 252-266.

Shneiderman, Ben. Designing the User Interface : Strategies for Effective Human-Computer

Interaction. 3e édition, Addison Wesley, 1998.

Sun Microsystems. MySQL. 2009. http://www.mysql.com/.

Tableau Software. Tableau Software - Visual Analysis and Data Visualization. 2009.

http://www.tableausoftware.com/.

ThemeRiver. ThemeRiver. Mai 2009. http://infoviz.pnl.gov/research_themeriver.stm.

Tremblay, Sébastien, Daniel Lafond, et Jean-François Gagnon. «HCI principles for Visualisation

Simulation and Representation.» Présentation : Workshop 5 on Experimentation I. Université

Laval, 26 Mars 2008.

TU/e. University of Technology Eindhoven. Mai 2009.

http://w3.win.tue.nl/nl/onderzoek/onderzoek_informatica/visualization/sequoiaview/.

Tufte, Edward R. Envisioning Information. Chesire, Connecticut: Graphics Press, 1990.

Tversky, Barbara. «What Makes Visualizations Effective?» Stanford University:

http://visual.nlm.nih.gov/evc/meetings/vrc2004/position_papers/tversky.pdf, 2009.

van Wijk, Jarke J., et Edward R. van Selow. «Cluster and Calendar based Visualization of Time

Series Data.» IEEE Symposium on Information Visualization. San Francisco, 1999.

Ware, Colin. «Information Visualization: Perception for Design.» San Diego, CA: Academic, 2000.

Wickens, Christopher D., et Justin G. Hollands. Engineering Psychology and Human Performance.

Prentice Hall, 2000.

Woods, David, et Emilie Roth. «Cognitive Engineering: Human Problem Solving with Tools.»

Human Factors 30. 1988. 415-430.