Conception d'une application: un exemple

L'ordinateur peut aller beaucoup plus loin que le livre. Il permet de créer de véritables "mondes électroniques" où des objets virtuels (mais représentant la plupart du temps des objets bien concrets de la réalité) ont des interactions de toutes sortes.

Un progiciel de gestion de bases de données permet de gérer toutes les informations sur chacun des objets. Ces objets sont conservés selon des structures de codage appropriées à chaque type d'informations. Les relations entre les différents objets sont aussi stockées dans la base de données.

Par exemple, dans un site sur le Cinéma, on pourrait trouver les objets "Thème", "Intervenant" et "Oeuvre". Les relations y seraient:

  • Une Oeuvre utilise un ou plusieurs Intervenants (auteurs, acteurs, etc.)
  • Cette Oeuvre aborde un ou plusieurs Thèmes
  • Un Intervernant participent à une ou plusieurs oeuvres
  • Un Thème est abordé par une ou plusieurs Oeuvres
  • Un Thème possède un ou plusieurs sous-Thèmes
  • Un Thème peut faire partie d'un Thème plus général

L'utilisateur peut poser toutes sortes de questions en partant des thèmes, des intervernants ou des oeuvres. Il peut exploiter les relations entre les différents types d'objet pour poser des questions intelligentes comme:

Quelles sont les films (oeuvres) qui sont des contes (thème) auxquels participent une actrice française (intervenants) ?

Dans bien des domaines, inscrire une modélisation de la réalité dans une application informatique permet de poser des questions beaucoup plus subtiles qu'en aplatissant cette information sous la forme d'un Guide multimédia (collection de fichiers statiques ou utilisation d'un Wiki): ceux-ci permettent beaucoup de choses car on connaît bien comment présenter toutes sortes de choses dans un livre, mais ils ne permettent pas de répondre à toutes les combinaisons de questions.

Il y a donc un besoin important pour la réalisation d'applications spécifiques aux données d'un domaine. Ces applications doivent comporter:

  • des outils de repérage adaptés à chacun des types d'objet: pour les principales valeurs associées à un objet (nom, date d'apparition, date de disparition, etc.), il faut pouvoir indiquer une ou des valeurs désirées, le plus souvent possible avec l'aide d'un index des valeurs réellement présentes;
  • un historique des recherches déjà effectuées;
  • des outils pour combiner (intersection, union, exclusion) des recherches pour obtenir précisément l'ensemble des objets intéressants;
  • des outils pour exploiter les relations entre objets (par exemple, obtenir l'ensemble des intervernants appartenant à un ensemble de thèmes);
  • des affichages spécifiques à chacun des types d'objet avec toutes sortes de types d'informations: images, textes, données numériques, codes dont la traduction se trouve dans une table, etc.
  • des outils de traitement (exportation, impression, tris, etc.) sur tout un ensemble d'objets identifiés comme étant pertinents.

Pour qu'un logiciel supporte toutes ces fonctions, il faut qu'il intègre:

  • un "moteur" de base de données générique capable d'effectuer toutes les recherches requises (dont les recherches par mots) et d'exploiter les relations entre les objets;
  • un "interface-utilisateur" capable de montrer les ensembles résultant des recherches, de les parcourir en montrant leurs éléments et d'obtenir une présentation claire du contenu d'un élément.

Les applications dites "à valeur ajoutée" demandent en plus de pouvoir:

  • gérer des données entrées par l'utilisateur lui-même et donc de lui permettre de créer une banque de données personnelles reliée à celle qui contient les informations communes. Par exemple, on peut imaginer que l'utilisateur enregistre les Oeuvres auxquels il compte assister;
  • enregistrer ses réservations ou obtenir des mises-à-jour de l'information;
  • déclencher d'autres logiciels qui effectuent des opérations annexes: montrer une animation ou effectuer une vérification orthographique par exemple.

De tels systèmes exigent que le logiciel intègre:

  • un moteur de base de données capable de mettre-à-jour l'information en temps réel et pas seulement d'y effectuer des recherches;
  • un "interface-utilisateur" complètement programmable afin de guider l'utilisateur dans tous ses cheminements;
  • des interfaces pour le contrôle des logiciels annexes.

Ces caractéristiques sont celles du L4G Seconde et peuvent aussi être obtenues en assemblant les outils suivants:

  • Protege pour gérer la terminologie de l'application et les classifications principales;
  • Tapestry pour créer l'interface-utilisateur;
  • Java pour définir les traitements;
  • Zing SRU/SRW pour gérer les accès aux bases de données;
  • Lucene pour indexer les documents;
  • MySQL ou PostgreSQL pour stocker les données structurées;
  • Mondrian (Pentaho) pour les tableaux statistiques.

Pour ses clients, Destin est en train de créer des systèmes dérivés de cette architecture.

Remonter au début

Outils de modélisation: