VP-SE Research Group (C)

GROUPE PROGRAMMATION VISUELLE - GENIE LOGICIEL

Le groupe de recherche en programmation visuelle est un mutant d'un groupe qui travaillait sur un atelier de génie logiciel pour l'enseignement assisté par ordinateur. Le groupe d'origine a été créé en 1982 et a développé divers logiciels d'EAO et adapté à différentes langues des didacticiels existants. Nos précédentes activités incluaient, entre autre, des recherches dans le domaine du multi-linguisme, de l'analyse de réponse en texte libre, du suivi en direct de leçons à travers un réseau avec récolte automatique de statistiques, de la portabilité des didacticiels, ...

Les activités de recherche du nouveau groupe portent actuellement sur deux directions principales:

DIVA: Programmation visuelle avec de multiples paradigmes.
Nous avons créé, par le passé, un environnement complet permettant la conception et l'implantation de logiciels d'EAO. Cet environnement utilise des techniques de pointe du génie logiciel telles que spécification graphique, génération automatique de programmes et gestion automatique de version (gestion de composants logiciels et gestion de la traduction des dialogues). Ce système de programmation visuelle est basé sur un formalisme visuel détaillé et peut être caractérisé, selon la classification des langages de programmation visuels faite par M. Burnett et M. Baker ( document PostScript, env. 870Ko), comme ayant un langage impératif (VPL-II.A.6) et schématique (VPL-II.B.1), mettant en évidence le flot de contrôle (VPL-III.B), comportant des traducteurs (VPL-IV.D) et ayant pour but la génération d'interfaces-utilisateur (VPL-V.E).

Tout l'environnement est hautement interactif. Il permet de "dessiner" une leçon sur une station de travail graphique et de générer automatiquement la majeure partie de l'implantation. Une autre caractéristique importante du système est qu'une partie de la spécification est en langage naturel.

Nous sommes convaincus que la combinaison d'une représentation visuelle avec du langage naturel permet une description de logiciels plus claire que ne le permettraient des langages strictement visuels. Cette combinaison permet de garder la description à un haut niveau d'abstraction, la rendant plus lisible par d'autres personnes. Cela permet aussi d'éviter que les concepteurs aient à spécifier trop de détails qui ont plus trait à l'implantation qu'à la spécification ou à la conception "au niveau du problème".

L'expérience passée dans le domaine de la programmation visuelle montre qu'il n'existe pas de paradigme visuel unique qui convienne bien à tous les genres d'applications. De même, il apparait que ces paradigmes visuels sont le plus utile lorsqu'ils sont appliqués à des domaines bien spécifiques et combinés à des primitives textuelles. Il est communément accepté que l'expressivité des images est utilisée au mieux lorsqu'elle est appliquée à des descriptions d'un niveau d'abstraction plus élevé que la plupart des langages de programmation d'usage général.

Dans ce nouveau projet, nous voulons utiliser notre expérience passée en programmation visuelle pour explorer les nombreuses approches visuelles différentes qui sont utilisées pour décrire et développer des logiciels, puis essayer d'établir des ponts entre les approches les plus prometteuses pour les rendre interopérables et complémentaires. Nous voulons construire un système de développement de logiciel qui offre plusieurs paradigmes visuels différents qui peuvent être combinés pour développer des applications complexes, chaque formalisme prenant le relai là où l'expressivité de l'autre commence à être inefficace. Les développeurs devraient donc être capable d'utiliser, pour chaque partie d'une application, le formalisme/paradigme qui leur convient le mieux pour cette partie.

Cette combinaison de différents formalismes n'est possible que si un mécanisme d'intégration est mis en place pour les rendre interopérables. Nous avons l'intention d'intégrer les formalismes suivants: variantes de réseaux de Petri, hypertextes, hypermédia, interface conversationnel et description du flot de contrôle (avec le formalisme graphique de scripts que nous avons développé pour les logiciels d'enseignement assisté par ordinateur), interfaces utilisateur graphiques conventionnelles et représentation visuelle d'objets pour la programmation orientée objet.

Des articles en français ainsi que des articles en anglais, décrivant nos activités en Programmation Visuelle de didacticiels, sont disponibles.

Nous avons aussi rassemblé des informations générales sur les langages visuels et la Programmation Visuelle


ROSA: Réutilisation de composants logiciels.
Cette recherche a pour but de fournir un support plus convivial et plus efficace pour la réutilisation de logiciel. Nous travaillons sur un système de réutilisation basé sur l'analyse des requètes de l'utilisateur et des descriptions de composants logiciels toutes deux en langage naturel. Les interfaces en langage naturel de systèmes de réutilisation nous paraissent plus conviviales que les traditionnelles interfaces basées sur des mots-clés. Notre approche de la réutilisation vise à être aussi économique que possible tout en fournissant une grande précision de recherche. La précision est améliorée par l'utilisation d'informations lexicales, syntaxiques et sémantiques concernant aussi bien la requète que les descriptions de composants logiciels en langage naturel. Le système reste économique grâce à l'acquisition automatique des connaissances nécessaires au système de recherche de composants. Nous proposons une approche générale pour la réutilisation, indépendante du domaine d'application des librairies logicielles. Le système sera intégré à notre environnement de programmation visuelle afin d'augmenter la puissance de traduction de ses générateurs automatiques de programmes.

Durant la période initiale de recherche (depuis avril 1993), nous avons travaillé sur la spécification détaillée du système ainsi que sur les besoins et la conception d'un premier prototype utilisé dans des activités expérimentales.

La version actuelle du système consiste principalement en un système de classification et un système de recherche. Le système de classification a un mécanisme d'acquisition de connaissances qui extrait automatiquement des informations lexicales, syntaxiques et sémantiques à partir des descriptions de logiciels. Ce système utilise cette connaissance pour créer une représentation interne du genre "frame" (qui constituera l'unité d'indexation pour ce composant). Les requêtes de l'utilisateur sont elles aussi traitées par le système de classification. Le système de recherche examine et évalue les candidats possibles à la réutilisation, sur la base d'une valeur de proximité entre les "frames" associés à la requête et ceux des descriptions de logiciels dans la base de connaissance.

Nous avons défini un formalisme sémantique qui établit les règles pour extraire des informations du texte en langage naturel et pour construire les structures sémantiques utilisées comme unités d'indexation. Ont également étés définis un langage pour la modélisation des structures sémantiques ainsi qu'un ensemble, pour la base de connaissances, de "frames" génériques correspondants à ce modèle. Deux mécanismes de recherche sont proposés: un mécanisme de recherche principal, basé sur la similarité des structures sémantiques et un mécanisme complémentaire, basé sur la correspondence de phrases nominales dans les structures sémantiques. Le mécanisme principal de recherche assure la précision tandis que le mécanisme secondaire augmente les valeurs de rappel (recall). Des mesures de similarité ont été définies pour calculer la proximité (closeness) entre simples termes, phrases nominales et structures sémantiques.

Nos premières expériences comparatives ont montré des performances de recherche excellentes, considérablement supérieures à celles des systèmes actuels de recherche par mots clés.

Diverses activités sont prévues pour la prochaine période de subventionnement. Nous comptons faire des expériences avec un prototype du système pour évaluer l'efficacité de recherche (retrieval effectiveness) et la justesse du processus d'interprétation. D'autres travaux seront effectués afin d'augmenter les capacités du système (support pour les descriptions de logiciels complexes, support pour le processus d'adaptation, etc.).

Des articles en anglais ainsi que le Manuel de Référence de ROSA sont disponibles sur ce sujet. Nous sommes aussi actifs dans le domaine de l'utilisation du "World-Wide Web" à des fins éducatives. Une liste d'articles en anglais est accessible.

-> Responsable du groupe:
Dr. Bertrand Ibrahim

->Adresse électronique:
Internet: Bertrand.Ibrahim@cui.unige.ch
X.400: C=ch; ADMD=arcom; PRMD=switch; ORG=unige; OU=cui; S=bertrand

Si vous voulez faire un commentaire ou une suggestion au sujet des informations que nous fournissons, vous pouvez le faire en suivant ce lien .

Bertrand Ibrahim  (CUI)