Accueil

 Liens

 Recherche

 Publication

 Enseignement

 Curriculum Vitae

 Contact

MES RECHERCHES


PROJETS ACTUELS DE RECHERCHE :

Séparation des préoccupations (concerns)

Developpement de logicels orientés aspect/vue

Securité et gestion de mémoire des applications

Applications et services Web

...............................................................

Projet de recherche: Distribution d'objets avec vues.

Partenaires: Conseil de recherche en sciences naturelles et en génie du canada (CRSNG) · Compagnies : Nortel, IBM, BNR, CAE, DEC, Teleglobe, Canada. · Universités: Université du Québec à Montréal (UQAM), Université de Montréal (UDM).

Description: ce projet vise à développer une méthode et des outils supportant le développement d’applications orientées objet telles que : · Un objet puisse changer de comportement durant sa durée de vie en intégrant différents aspects fonctionnels, · Différents usagers puissent percevoir et utiliser différents sous-ensembles des fonctionnalités présentement présentes dans l’objet, · La localisation des objets réels de l’application soit transparente pour l’usager ou pour le programmeur, et optimale, du point de vue performance.

Résumé: Dans un système d’information d’entreprise, les mêmes entités jouent différents rôles fonctionnels. Ces rôles sont destinés à différents usages, différents usagers, et leur implantation implique des compétences différentes. Nous nous intéressons au problème du développement, de la réutilisation et de l’entretien, et du déploiement séparés de ces rôles fonctionnels. Notre recherche est centrée autour d’une méthodologie de développement et d’un ensemble d’outils logiciels qui implantent ce que nous appelons la programmation par vues, où une vue est une construction logicielle réalisant un rôle fonctionnel. Dans cet article, nous nous intéressons à la problématique de la distribution de vues dans le contexte d’un environnement distribué dans lesquels différents sites utilisent différentes combinaisons des fonctionnalités offertes par les vues.

Projet de recherche IGLOO: Ingénierie Logiciel Orienté-Objet 1994-1996 (Canada).

Partenaires: Compagnies : DEC, CAE, DEC, Teleglobe et Nortel. Centre de Recherche : Centre de Recherche Informatique à Montréal (CRIM). Universités : Université de Québec à Montréal (UQAM), Université de Montréal (UDM) et Université de Sherbrooke.

Description: Participation à la conception d'une représentation de composantes logicielles pour la réutilisation. · Construction d'un analyseur sémantique du langage C++ permettant d'extraire les représentations de composantes à partir de code source (Lex, Yacc, C, etc.). Développement d'outils de chargement de composantes logicielles réutilisables dans une boite à outils pour la réutilisation. Implantation d'un algorithme pour la construction d'une hiérarchie sémantique de concepts basée sur leurs occurrences dans une documentation textuelle en Smalltalk.

...............................................................

DOMAINES D’INTERETS :

Mes intérêts de recherche portent principalement sur divers aspects du génie logiciel (développement décentralisé des applications OO, réutilisation, programmation orientée-objet), des systèmes distribués (développements des technologies et des outils dans le domaine de l’Internet) et de sécurité et gestion de mémoire des applications. J‘ai contribué à une dizaine de publications dans ces domaines. Je suis (ai été) participé dans des projets de recherche avec l'industrie portant :

1- sur le développement des outils et des méthodes pour faciliter la maintenance et la réutilisation des logiciels orientée-objet (le projet IGLOO du programme SYNERGIE axe réutilisation).

2- sur le développement des applications orientées-objet avec la programmation par vues et CORBA/RMI : «distribution d’objet avec vues». Ceci supporte le développement des applications décentralisées, réutilisables, distribuables à travers l’Internet. En résume, ce projet vise à développer une méthode et des outils supportant le développement d’applications orientées objet telles que :

    a- Un objet puisse changer de comportement durant sa durée de vie en intégrant différents
        aspects fonctionnels,

    b- Différents usagers puissent percevoir et utiliser différents sous-ensembles des
        fonctionnalités présentement présentes dans l’objet

    c- La localisation des objets réels de l’application soit transparente pour l’usager ou le
        programmeur, et optimale, du point de vue performance.

Nous avons mis en place les bases théoriques d'un modèle de développement d'applications OO en utilisant les vues [Mili et al., 01]. Sur le plan analyse, les vues d'un objet correspondent aux différents rôles qu'il joue dans une application (ou un SI corporatif). Au niveau du code, les vues correspondent à l'instanciation de patrons fonctionnels génériques- appelés points de vues- pour un objet métier donné; les points de vues ressemblent à la notion de classes génériques dans les langages OO, tout en offrant plus de flexibilité, et une sémantique plus précise [Mili et al., 99]. A date, nous avons développé un prototype de support pour la programmation par vues pour un sous-ensemble assez restrictif du langage C++. Nous avons aussi développé des outils pour la programmation par vues en Java. La simplicité de Java (par rapport à C++) permettra de couvrir un sous-ensemble plus grand du langage Java. De plus, la distinction que fait Java entre les types (interface) et les implantations (class), d'un coté, et les facilités de réflexion, de l'autre coté, permettent de mieux répondre à la problématique de la classification dynamique et nous évitons certaines contorsions auxquelles nous avons été contraints pour le cas de C++.

Sur le plan exécution, nous nous intéressons à la distribution sous deux volets:

1- Les vues, représentant différentes facettes fonctionnelles de l'objet, pourraient être "proches de leur utilisateurs". Il s'agit de mettre en place les mécanismes nécessaires pour permettre la distribution des vues à travers une plate-forme de distribution telle que CORBA. Ceci se traduira au niveau des outils de génération de code de vues, et au niveau de la transformation du code usager utilisant les vues (e.g. [Mili et al. 2001]). Nous avons développé ces outils qui nécessitent une validation dans la future recherche.

2- La distribution d'applications utilise différents mécanismes pour maintenir l'intégrité/cohésion de données tout en minimisant les surcoûts au niveau de la communication. L'une des techniques utilisées est celle de la duplication d'objets entiers, même si différentes parties de l'objet sont lues/modifiées d'un site à l'autre. Nous sommes en train d’utiliser la notion de vues pour dupliquer, sélectivement, différentes parties d’un objet dans différents sites, et ainsi minimiser le surcoût dû à la duplication de données à travers le réseau.

...............................................................

   ▲ Début de la page

© all rights reserved.