Jean-Pierre GIRAUDIN & Agnès FRONT Modèles formels et outils génériques pour la gestion et la recherche de composants Soutenance de thèse présentée par Oualid KHAYATI Mes dames et messieurs les membres du jury. Honorable assistance. Je vous présente les travaux réalisés dans le cadre de ma thèse intitulé « » réalisé à l’équipe SIMGA … sous la direction de « » dirigée par Jean-Pierre GIRAUDIN & Agnès FRONT 17 décembre 2005
(Initiative Centr’Actoll) Problématique Composant Client SIT Analyse Symphony Définition(s) Client SIT Analyse Conception EJB Logiciel EJB Raffine Implante Concept métier de Client dans les Systèmes d’Information de Transport - SIT (Initiative Centr’Actoll) (Khayati, 2003a) (Khayati, 2004b) C’est une unité de conception (de n’importe quel niveau d’abstraction) identifiée par un nom, avec une structure définie et des directives de conception sous la forme de documentation pour supporter sa réutilisation (Pernici, 2000) Il peut être spécifié et développé par différentes équipes Il décrit les services (interfaces) offerts et requis Il peut être assemblé avec d’autres composants (OMG 2003) La documentation d’un composant illustre le contexte dans lequel il peut être utilisé en spécifiant les contraintes et les autres composants dont il a besoin pour offrir sa solution (Pernici, 2000) samedi 17 décembre 2005
Problématique Acteurs et processus Les bibliothèques de composants au coeur des équipes de développement Concepteur d’applications Extraire des composants Bibliothécaire de composants Demandes Groupe d’identification et certification Nouveaux Composants à archiver Demander de nouveaux composants Bibliothèques de Composants réutilisables Archiver et indexer des composants Groupe de maintenance Groupe de développement Développer des composants Demande de mise a jour Acheter des composants Fournisseur de composants samedi 17 décembre 2005
Problématique Requête utilisateur = R1 et (R2 ou R3) et R4 Requêtes Exemple de requête composite d’un concepteur d’application Requête utilisateur = R1 et (R2 ou R3) et R4 R1 : retrouver un composant métier Client du domaine SIT. R2 : qui admet une implantation réalisée avec la technologie EJB. R3 : qui admet une implantation réalisée avec la technologie CCM. R4 : qui offre une fonction PayerAbonnement() samedi 17 décembre 2005
Environnement d’aide à la réalisation et à l’utilisation de composants Cadre retenu 4 sources d’hétérogénéité expression des besoins conception réalisation Hétérogénéité des niveaux d’abstraction de composants Hétérogénéité des modèles et des sources de composants EJB, CCM, Patrons, … Hétérogénéité des équipes Ingénieur de composants Concepteur d'applications Environnement d’aide à la réalisation et à l’utilisation de composants Hétérogénéité des techniques de recherche de composants Classification externe, classification structurelle, … samedi 17 décembre 2005
Conclusion et perspectives Plan Problématique État de l’art Propositions Conclusion et perspectives samedi 17 décembre 2005
Conclusion et perspectives Plan Problématique État de l’art Approches à composants Approches de recherche de composants Propositions Conclusion et perspectives samedi 17 décembre 2005
État de l’art Environnement d’exécution Vue interne Instance de Approches à composants État de l’art Les composants logiciels : concepts (COM, EJB, Fractal, …) Environnement d’exécution Vue interne Interface de contrôle requise Interface de contrôle fournie Instance de composant Vue externe Interface fonctionnelle requise fournie Attribut de configuration Attribut de déploiement Dépendance de Vue de déploiement samedi 17 décembre 2005
État de l’art Approches à composants Exemple de composant logiciel : Client SIT logiciel en EJB samedi 17 décembre 2005
État de l’art Approches à composants Exemple de composant conception : le patron Composite de Gamma (Gamma, 1995) … Nom patron Composite Auteur E. Gamma Intention ce patron permet de gérer une composition récursive d’objets. Il définit des hiérarchies de classes d’objets simples et d’objets composites et facilite l’ajout des nouveaux composants. Solution samedi 17 décembre 2005
État de l’art Client SIT Analyse Approches à composants Exemple de composant Analyse : Client SIT analyse dans Symphony Client SIT Analyse Symphony samedi 17 décembre 2005
État de l’art Approches à composants : Bilan Approches à composants : Multitude de niveaux d’abstraction Multitude de modèles de composants par niveau d’abstraction Extraire un métamodèle unificateur et évolutif À vérifier samedi 17 décembre 2005
Conclusion et perspectives État de l’art Problématique État de l’art Approches à composants Approches de recherche de composants Propositions Expérimentations Conclusion et perspectives Après la réalisation de l’état de l’art sur les composants. j’ai constaté la diversité des MC donc de la diversité de la représentation des composants. on se pose alors la question de la recherche samedi 17 décembre 2005
État de l’art Recherche comportementale Classification externe Approches de recherche de composants État de l’art Recherche comportementale Classification externe Classification structurelle Recherche par navigation Les techniques de recherche de composants samedi 17 décembre 2005
État de l’art Indexation sémantique Indexation manuelle Approches de recherche de composants État de l’art Classification externe : classification par facettes (Asset, 1993) (Poulin, 1995) (Zhang, 2000) … Domaine métier : Bancaire, SIT, … Technologie implantation : EJB, CCM, … Niveau abstraction : Analyse, conception,… Indexation sémantique Indexation manuelle Retrouver un composant Client du domaine métier SIT. samedi 17 décembre 2005
État de l’art Rigueur mathématique, indexation automatique Approches de recherche de composants État de l’art Classification structurelle : appariement de signatures (Gaudel, 1991) (Ritti, 1992) (Zarimski, 1995)… Retrouver un composant qui offre la fonction PayerAbonnement (p1:Type1) Rigueur mathématique, indexation automatique Langage de spécification, performance samedi 17 décembre 2005
Espaces des valeurs d’entrée Espaces des valeurs de sortie Approches de recherche de composants État de l’art Recherche comportementale : analyse des traces d’exécution (Podgursky, 1993) (Hall, 1993) (Chou, 1996) … Composant 3 Composant 2 Composant 1 Trace d’exécution Espaces des valeurs d’entrée Espaces des valeurs de sortie Filtrage Résultat (5,3,2,4,1),(4,3,5,1,2),(2,1,5,3,4) -> (1,2,3,4,5) Retrouver tous les composants implantant une fonction de tri croissant Indexation automatique Temps de réponse samedi 17 décembre 2005
Approches de recherche de composants État de l’art Recherche par navigation : navigation hypertexte (Cybulski, 1993) (Jeng, 1993) (Freitag, 1994) … C2 C6 C1 C4 C7 utilise C5 C3 hérite équivalent Raffinement Organisation manuelle ou semi automatique, point de départ samedi 17 décembre 2005
État de l’art 24 critères de comparaison divisés en 4 groupes : Approches de recherche de composants État de l’art Comparaison entre les techniques de recherche de composants 24 critères de comparaison divisés en 4 groupes : Critères techniques : Précision, Rappel, Couverture, Complexité d’appariement, Potentiel d’automatisation Critères économiques : Coût d’investissement, coût de fonctionnement, degré de diffusion, état de développement. Critères humains : Difficulté d’utilisation et transparence. Caractéristiques de conception : Nature des composants, représentation des composants, objectif de la recherche, etc. samedi 17 décembre 2005
État de l’art Approches de recherche de composants : Bilan Approches de recherche de composants : Multitude de TRC pour multitude de types de requêtes Une représentation spécialisée pour chaque TRC Créer un environnement pour intégrer différentes TRC samedi 17 décembre 2005
Conclusion et perspectives Plan Problématique État de l’art Propositions Expérimentations Conclusion et perspectives samedi 17 décembre 2005
Environnement d’aide à la réalisation et à l’utilisation de composants Propositions Cadre retenu expression des besoins conception réalisation Hétérogénéité des niveaux d’abstraction de composants Hétérogénéité des modèles et des sources de composants EJB, CCM, Patrons, … Hétérogénéité des équipes Ingénieur de composants Ingénieur d'applications Environnement d’aide à la réalisation et à l’utilisation de composants Hétérogénéité des techniques de recherche de composants Classification externe, classification structurelle, … samedi 17 décembre 2005
Propositions Environnement Architecture SGBDC M-Sigma SRC Utilise SRC Instance Modèle de SRC C-Sigma Utilise Instance B-Sigma TRC Gestion des composants Recherche de composants samedi 17 décembre 2005
Propositions Plan La base B-Sigma et le modèle C-Sigma Le Système de Gestion de Bases Descriptives de Composants Le Système de Recherche de Composants Une TRC structurelle externe spécifique samedi 17 décembre 2005
Propositions La base B-Sigma Objectif : Gestion de composants et de leurs relations Niveau analyse Niveau conception Niveau logiciel utilise raffine implante imite Composant métier Composant samedi 17 décembre 2005
Propositions … … … … La base B-Sigma Exemple de composants gérés dans B-Sigma utilise Patron Rôle imite Client analyse Agent analyse Utilise raffine raffine utilise raffine Patron Composite Client Conception CCM Client Conception EJB Agent Conception EJB … … utilise implante implante implante utilise Client Logiciel CCM Client Logiciel EJB Agent Logiciel EJB … … utilise Composant métier Client Composant métier Agent samedi 17 décembre 2005
Propositions La base B-Sigma Exemple de description du composant Client SIT logiciel en EJB Réutilisation Description de composants Modèle samedi 17 décembre 2005
Propositions La base B-Sigma Les concepts samedi 17 décembre 2005 Multi bases Évolutif samedi 17 décembre 2005
Propositions Le modèle C-Sigma Organisation samedi 17 décembre 2005 Modèle Abstrait Modèle Concret samedi 17 décembre 2005
Propositions Le modèle C-Sigma Organisation samedi 17 décembre 2005 Modèle Abstrait Modèle Concret samedi 17 décembre 2005
Propositions Plan La base B-Sigma et le modèle C-Sigma Le Système de Gestion de Bases Descriptives de Composants Le Système de Recherche de Composants Une TRC structurelle externe spécifique samedi 17 décembre 2005
Système d’information Propositions Le SGBDC Positionnement : le métamodèle du SGBDC, une extension d’UML Métamétamodèle MOF ? M-Sigma Métamodèle UML C-Sigma Modèle UML du SI B-Sigma Système d’information samedi 17 décembre 2005
Le SGBDC Propositions Le métamodèle M-Sigma : Extension du métamodèle UML M-Sigma samedi 17 décembre 2005
Propositions Le SGBDC Le métamodèle M-Sigma Core package Classifiers samedi 17 décembre 2005
Propositions Le SGBDC Le métamodèle M-Sigma Core package Backbone samedi 17 décembre 2005
Propositions Le SGBDC Le métamodèle M-Sigma Core package Relationships samedi 17 décembre 2005
Propositions Le SGBDC Le métamodèle M-Sigma Package Data Type samedi 17 décembre 2005
Le SGBDC Propositions Exemple samedi 17 décembre 2005
Propositions Plan La base B-Sigma Le système de gestion de bases descriptives de composants Le Système de Recherche de Composants Une TRC structurelle externe spécifique samedi 17 décembre 2005
Prendre en compte l’hétérogénéité des TRC Propositions Le SRC Objectif Prendre en compte l’hétérogénéité des TRC Par un modèle générique, le modèle de SRC Pour « composer » des TRC samedi 17 décembre 2005
Propositions Le SRC Modèle de SRC Modèle de SRC samedi 17 décembre 2005
Propositions Requête utilisateur = R1 et (R2 ou R3) et R4 Le SRC Propositions Exemple de requête composite : Requête utilisateur = R1 et (R2 ou R3) et R4 R1 : retrouver un composant métier Client du domaine SIT. R2 : qui admet une implantation réalisée avec la technologie EJB. R3 : qui admet une implantation réalisée avec la technologie CCM. R4 : qui offre une fonction PayerAbonnement() samedi 17 décembre 2005
Propositions Le SRC Modèle de SRC Simple Query Package samedi 17 décembre 2005
Propositions Le SRC Modèle de SRC Query Integration Package samedi 17 décembre 2005
Components Retrieval System Package Le SRC Propositions Modèle de SRC Components Retrieval System Package samedi 17 décembre 2005
Propositions Possibilité de composer des TRC Le SRC Propositions Bilan Possibilité de composer des TRC Possibilité d’utiliser les TRC à faible complexité algorithmique comme outil de présélection pour les TRC à haute complexité. Possibilité de raffiner les résultats de la recherche par l’approche par navigation samedi 17 décembre 2005
Propositions Plan La base B-Sigma et le modèle C-Sigma Le Système de Gestion de Bases Descriptives de Composants Le Système de Recherche de Composants Une TRC structurelle externe spécifique samedi 17 décembre 2005
Propositions Une TRC spécifique Objectif : reconnaissance par appariement de diagrammes de classes Exemple : retrouver le diagramme du patron Composite dans un composant de la base Diagramme de classes d’un composant réutilisable (Source) Diagramme de classes d’une requête utilisateur (Cible) samedi 17 décembre 2005
Description des DC sous forme logique Une TRC spécifique Propositions Utilisation de la logique du premier ordre Description des DC sous forme logique Le calcul des prédicats offre des axiomes et des règles d’inférence Possibilité de prouver qu’une spécification cible est une conséquence logique d’une spécification source samedi 17 décembre 2005
Propositions Une TRC spécifique Le processus de recherche samedi 17 décembre 2005
Propositions Une TRC spécifique Génération d’une spécification source entité(id_Classe_1) nom_entité(id_Classe_1, Component) classe(id_Classe_1) classe_abstraite(id_Classe_1) entité(id_opération_1) nom_entité(id_opération_1, Operation) opération(id_opération_1) entité(id_signature_1) signature(id_signature_1) classe_opération(id_classe_1, id_opération_1, id_signature_1) opération_abstraite(id_opération_1) visibilité(id_opération_1, publique) samedi 17 décembre 2005
Appariement : 5 résultats Propositions Une TRC spécifique Génération d’une spécification cible _id_Classe_11, _NomClasse, …, _visibility1 entité(_id_Classe_11) nom_entité(_id_Classe_11, _NomClasse) classe(_id_Classe_11) classe_abstraite(_id_Classe_11) entité(_id_opération_11) nom_entité(_id_opération_11, _NomOperation) opération(_id_opération_11) entité(_id_signature_11) signature(_id_signature_11) classe_opération(_id_classe_11, _id_opération_11, _id_signature_11) visibilité(_id_opération_11, _visibility1) Requête (_id_Classe_11, _NomClasse, …, _visibility1) Diagramme source Diagramme cible Appariement : 5 résultats samedi 17 décembre 2005
Appariement : 1 résultat Une TRC spécifique Propositions Génération d’une spécification cible _id_Classe_11, _NomClasse, …, _visibility1 entité(_id_Classe_11) nom_entité(_id_Classe_11, _NomClasse) classe(_id_Classe_11) classe_abstraite(_id_Classe_11) entité(_id_opération_11) nom_entité(_id_opération_11, Operation) opération(_id_opération_11) entité(_id_signature_11) signature(_id_signature_11) classe_opération(_id_classe_11, _id_opération_11, _id_signature_11) visibilité(_id_opération_11, _visibility1) Requête (_id_Classe_11, _NomClasse, …, _visibility1) Diagramme source Diagramme cible Appariement : 1 résultat Pourquoi pas 3 résultats puisque la méthode Operation() est transmise par héritage aux classes Composite et Leaf ? samedi 17 décembre 2005
Propagation des propriétés par la généralisation. Une TRC spécifique Propositions Exploitation de métaconnaissances Propagation des propriétés par la généralisation. Opérations, attributs, associations, interfaces Mécanisme de relaxation des critères de recherche Type des associations Type, ordre et nombre des paramètres des opérations Ajouter des transparents supplémentaires avec des exemples de métaconaissances samedi 17 décembre 2005
Conclusion et perspectives Plan Problématique État de l’art Propositions Conclusion et perspectives samedi 17 décembre 2005
Conclusion Un environnement permettant : Un environnement évolutif : La gestion de composants hétérogènes par leur niveau d’abstraction, leurs modèles et leurs sources La recherche de composants par des techniques hétérogènes dans un environnement unifié Un environnement évolutif : Par sa structure Par la démarche spécifiée dans le guide méthodologique sous forme d’un système de patrons Un prototype validant cet environnement … samedi 17 décembre 2005
Prototype SGBDC Conclusion samedi 17 décembre 2005
Prototype SRC Conclusion samedi 17 décembre 2005
Perspectives SGBDC SRC Alimentation des BDC Passer du prototype à un environnement à plus grande échelle SRC Étendre la TRC pour d’autres diagrammes UML ( Précision/Rappel) et intégrer d’autres TRC Étudier les fonctions de fusion de requêtes Alimentation des BDC Étudier le processus d’alimentation des BDC Étudier la possibilité d’utiliser des techniques de routage et de filtrage Adopter une architecture à base de composants connectables samedi 17 décembre 2005
Merci samedi 17 décembre 2005