Modèles formels et outils génériques pour la gestion et la recherche de composants
Soutenance de thèseprésentée par
Oualid KHAYATI
dirigée par
Jean-Pierre GIRAUDIN & Agnès FRONT
17 décembre 2005
samedi 17 décembre 2005 2
Problématique Composant
Définition(s)
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 équipesIl décrit les services (interfaces) offerts et requis Il peut être assemblé avec d’autres composants(OMG 2003)
Client SIT Analyse
Client SITConception EJB
Client SIT Logiciel EJB
Java.rmi.Remote<<Interface>>
Javax.ejb.EJBObject<<Interface>>
Javax.ejb.EJBHome<<Interface>>
Client
Modifier()AttribuerClientPayeur()AttribuerAyantDroit()AjouterCarte()SupprimerCarte()ForfaitAbonnement()ChangerStatut()GetAdresse()SetAdresse()GetNom()SetNom()GetClefPrimaire()SetClefPrimaire()PayerAbonnement()PayerPersonnellement()
<<Interface>>
ClientHome
Client Créer()Supprimer()Client FindByPrimaryKey()Client FindByNom()
<<Interface>>
Raffine Implante
Concept métier de Client dans les Systèmes d’Information de Transport - SIT
(Initiative Centr’Actoll)(Khayati, 2003a) (Khayati, 2004b)
Client SIT AnalyseSymphony
samedi 17 décembre 2005 3
Les bibliothèques de composants au coeur des équipes de développement
Bibliothèques de Composants réutilisables
Concepteur d’applications
Extraire des composants Archiver et indexer des composants
Groupe d’identification et certification
Nouveaux Composants à archiver
Demander de nouveaux composants
Bibliothécaire de composants
Demandes
Problématique Acteurs et processus
Groupe de maintenance
Groupe de développement
Développer des composants
Demande de mise a jour
Acheter descomposants
Fournisseur de composants
samedi 17 décembre 2005 4
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()
Problématique Requêtes
samedi 17 décembre 2005 5
expression des besoins conception réalisation
Hétérogénéité des niveaux d’abstraction de composants
Hétérogéné ité d es éq uip es
Ingénieur de composants
Concepteur d'applications
Hété rog éné ité d es m
o dè le s et d es so urce s de c omp osa nts
EJB
, CC
M, P
atro ns, …
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, …
Cadre retenu 4 sources d’hétérogénéité
samedi 17 décembre 2005 6
Plan
I. Problématique
II. État de l’art
III. Propositions
IV. Conclusion et perspectives
samedi 17 décembre 2005 7
Plan
I. Problématique
II. État de l’arti. Approches à composants
ii. Approches de recherche de composants
III. Propositions
IV. Conclusion et perspectives
samedi 17 décembre 2005 8
Environnement d’exécution
Attribut de déploiement
Dépendance de déploiement
Vue de déploiement
Vue externe
Interface fonctionnelle requise
Interface fonctionnelle fournieAttribut de
configuration
Vue externe
État de l’art
Les composants logiciels : concepts (COM, EJB, Fractal, …)
Approches à composants
Vue interne Interface de contrôle requise
Interface de contrôle fournie
Instance de composant
samedi 17 décembre 2005 9
État de l’art
Exemple de composant logiciel : Client SIT logiciel en EJB
Approches à composants
Java.rmi.Remote<<Interface>>
Javax.ejb.EJBObject<<Interface>>
Javax.ejb.EJBHome<<Interface>>
Client
Modifier()AttribuerClientPayeur()AttribuerAyantDroit()AjouterCarte()SupprimerCarte()ForfaitAbonnement()ChangerStatut()GetAdresse()SetAdresse()GetNom()SetNom()GetClefPrimaire()SetClefPrimaire()PayerAbonnement()PayerPersonnellement()
<<Interface>>
ClientHome
Client Créer()Supprimer()Client FindByPrimaryKey()Client FindByNom()
<<Interface>>
samedi 17 décembre 2005 10
État de l’art
Exemple de composant conception : le patron Composite de Gamma (Gamma, 1995) …
Approches à composants
Formalisme de patrons
Système de patrons
Interface Réalisation Relation
Patron
n1 n
+Formalisme
1
n
n
n
n
Catégorie Rubrique
1..n1..n
1..n n
+Catégorie de rubrique1..n n
Champ
nn
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
Leaf
Operation(opérande : Texte)
Composite
Add(child : Component)Remove(child : Component)Operation()
ClientComponent
Operation() **
samedi 17 décembre 2005 11
État de l’art
Exemple de composant Analyse : Client SIT analyse dans Symphony
Approches à composants
Client SIT AnalyseSymphony
samedi 17 décembre 2005 12
État de l’art
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
Approches à composants :
samedi 17 décembre 2005 13
État de l’art
I. Problématique
II. État de l’arti. Approches à composants
ii. Approches de recherche de composants
III. Propositions
IV. Expérimentations
V. Conclusion et perspectives
samedi 17 décembre 2005 14
Les techniques de recherche de composants
Recherche comportementaleClassification externe
Classification structurelle Recherche par navigation
État de l’art Approches de recherche de composants
samedi 17 décembre 2005 15
Représentation de composant Composant* 1* 1
Représentation par facettes
Nom
Vocabulaire
Facette
1..*1..*
11Terme
1..*1..*
**
Domaine métier : Bancaire, SIT, …Technologie implantation : EJB, CCM, … Niveau abstraction : Analyse, conception,…
Indexation sémantique Indexation sémantique
Classification externe : classification par facettes (Asset, 1993) (Poulin, 1995) (Zhang, 2000) …
État de l’art Approches de recherche de composants
• Retrouver un composant Client du domaine métier SIT.
Indexation manuelleIndexation manuelle
samedi 17 décembre 2005 16
Rigueur mathématique, indexation automatiqueRigueur mathématique, indexation automatique
Classification structurelle : appariement de signatures (Gaudel, 1991) (Ritti, 1992) (Zarimski, 1995)…
État de l’art Approches de recherche de composants
Langage de spécification, performanceLangage de spécification, performance
• Retrouver un composant qui offre la fonction PayerAbonnement (p1:Type1)
Opération
Composant
Interface
1..*1..*
1..*1..*
Signature d'opération 1 11 1
Représentation par signatures
11 11
Signature d'interface 1 11 1
1..*1..*
1..*1..*
samedi 17 décembre 2005 17
Recherche comportementale : analyse des traces d’exécution(Podgursky, 1993) (Hall, 1993) (Chou, 1996) …
État de l’art Approches de recherche de composants
Composant 3
Composant 2
Composant 1
Trace d’exécution
Indexation automatiqueIndexation automatique Temps de réponseTemps de réponse
Espaces des valeurs d’entrée
Espaces des valeurs de sortie
(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
Filtrage
Résultat
samedi 17 décembre 2005 18
Recherche par navigation : navigation hypertexte (Cybulski, 1993) (Jeng, 1993) (Freitag, 1994) …
État de l’art Approches de recherche de composants
RaffinementRaffinement
Organisation manuelle ou semi automatique, point de départ Organisation manuelle ou semi automatique, point de départ
C2
C7
C1C6
C3
C4
C5utilise
hérite
équivalent
samedi 17 décembre 2005 19
Comparaison entre les techniques de recherche de composants
État de l’art Approches de recherche de composants
• 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.
24 critères de comparaison divisés en 4 groupes :
samedi 17 décembre 2005 20
État de l’art Bilan
• 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
Approches de recherche de composants :
samedi 17 décembre 2005 21
Plan
I. Problématique
II. État de l’art
III. Propositions
IV. Expérimentations
V. Conclusion et perspectives
samedi 17 décembre 2005 22
Propositions
Environnement d’aide à la réalisation et à l’utilisation de composants
expression des besoins conception réalisation
Hétérogénéité des niveaux d’abstraction de composants
Hétérogéné ité d es éq uip es
Ingénieur de composants
Ingénieur d'applications
Hété rog éné ité d es m
o dè le s et d es so urce s de c omp osa nts
EJB
, CC
M, P
atro ns, …
Hétérogénéité des techniques de recherche de composants
Classification externe, classification structurelle, …
Cadre retenu
samedi 17 décembre 2005 23
Propositions
Environnement
M-Sigma
C-Sigma
B-Sigma
Modèle de SRC
Instance
Instance
TRC
Utilise
Utilise
SRC
SGBDC
Gestion des composants Recherche de composants
Architecture
samedi 17 décembre 2005 24
Plan
III. Propositionsi. La base B-Sigma et le modèle C-Sigma
ii. Le Système de Gestion de Bases Descriptives de Composants
iii. Le Système de Recherche de Composants
iv. Une TRC structurelle externe spécifique
samedi 17 décembre 2005 25
Objectif : Gestion de composants et de leurs relations
Propositions La base B-Sigma
Niveau conception
Niveau analyse
Niveau logiciel
utilise raffine implante Composant métierimite
Composant
samedi 17 décembre 2005 26
Exemple de composants gérés dans B-Sigma
Propositions La base B-Sigma
Patron Rôle imite
raffine
implante
Client Conception EJB
utilise
Client analyse
utilise
utilise
Client Logiciel EJB
raffine
implante
AgentConception EJB
Agent analyse
AgentLogiciel EJB
Utilise
utilise
utilise
Composant métierClient
Composant métierAgent
raffine
implante
ClientConception CCM
ClientLogiciel CCM
…
…
…
…
Patron Composite
samedi 17 décembre 2005 27
Exemple de description du composant Client SIT logiciel en EJB
Propositions La base B-Sigma
Nom Client logiciel
Auteur Khayati
Intention Ce composant présente une implantation du concept métier Client du domaine des systèmes d’information transport en utilisant la technologie des EJB.
Modèle de composants
Enterprise JavaBeans
Type de Bean
Entity Bean
Interfaces offertes
public interface Client extends EJBObject{ public void modifier(); … public abstract void PayerAbonnement(); public abstract void PayerPersonnellement(); } public interface ClientHome extends EJBHome{ public Client creer(String nom, String adresse, String Clefprimaire ); … public Collection findByNom(String nom ) ; }
Classe Bean public abstract class ClientBean implements EntityBean{ public void modifier(); … public abstract void PayerPersonnellement(); }
Description de composants
Modèle de composants
Démarche de réutilisation
Récuperation d'une référence sur la maison de composants Client
Demande de Créat ion d'une instance du composant Client
Recherche et récupération d'une instance du composants Client déja existante
Utilisation des services d'une instance d'un composant Client
Suppression d'une instance d'un composant Client
Connexion sur un serveur EJB
Fermeture de session avec le serveur EJB
Cas d’utilisation
Exemple d’utilisation de la fabrique de composants (home interface) par un client :
Context initial = new InitialContext(); Object objref = initial.lookup( "ClientBean" ); ClientHome home = (ClientHome)PortableRemoteObject.narrow( objref, ClientHome.class ) ; Client durand = home.creer( "Durand" );
Réutilisation
samedi 17 décembre 2005 28
Les concepts
**
Relation
Relation verticale Relation horizontale
Propositions La base B-Sigma
Description
**
Description de sources Modèle de composantsRéutilisation Description de composants
0..10..10..10..1
B-Sigma
Composant
1..*1..*
Artefact
**
samedi 17 décembre 2005 29
Relation horizontaleRelation verticale
Modèle de composantsRéutilisation Description de composants
1111
Description de composants logicielDescription de composants conceptionDescription de composants analyse Description de composants métier
******
Modèle de composants logicielModèle de composants conceptionModèle de composants analyse
Modèle de composants EJBModèle de composants Design PatternModèle de composants Symphony analyse
Utilise ImplanteIntervient dans
Relation
Description
Base descriptive de composants
* 1* 1
**
Description de sources
Artefact
Composant
*1 *1
*
*
*
*
1..*1..*
Organisation
Modèle Abstrait
Modèle Concret
Propositions Le modèle C-Sigma
Modèle de composants RéutilisationAuteurIntentionNom
Description de composants
11 111..*1..*1111
Description de composants logiciel
Description de composants conception
Domaine
Description de composants analyse
Description de composants métier
**
**
1..*1..*
**
samedi 17 décembre 2005 30
Organisation
Modèle Abstrait
Modèle Concret
Relation horizontaleRelation verticale
Modèle de composantsRéutilisation Description de composants
1111
Description de composants logicielDescription de composants conceptionDescription de composants analyse Description de composants métier
******
Modèle de composants logicielModèle de composants conceptionModèle de composants analyse
Modèle de composants EJBModèle de composants Design PatternModèle de composants Symphony analyse
Utilise ImplanteIntervient dans
Relation
Description
Base descriptive de composants
* 1* 1
**
Description de sources
Artefact
Composant
*1 *1
*
*
*
*
1..*1..*
Propositions Le modèle C-Sigma
Commentaire
Description de composants
Forces Faiblesses
Cas de réutilisation
*
1
*
+Technique de réutilisation
1
*
*
*
+Réutilisation
*
*
Relation horizontale
Réutilisation
**
11
* 1*
+Réutilisé
1
Démarche**
samedi 17 décembre 2005 31
Plan
III. Propositionsi. La base B-Sigma et le modèle C-Sigma
ii. Le Système de Gestion de Bases Descriptives de Composants
iii. Le Système de Recherche de Composants
iv. Une TRC structurelle externe spécifique
samedi 17 décembre 2005 32
Positionnement : le métamodèle du SGBDC, une extension d’UML
Propositions Le SGBDC
B-SigmaSystème d’information
Métamétamodèle MOF
?M-SigmaMétamodèle UML
C-SigmaModèle UML du SI
samedi 17 décembre 2005 33
Le métamodèle M-Sigma : Extension du métamodèle UML
Propositions Le SGBDC
M-Sigma
Core package Backbone
Core package Relationships
Core package Classifiers
Package Data Types
Core package Auxiliary elements
Package Instances
samedi 17 décembre 2005 34
Le métamodèle M-Sigma
Propositions Le SGBDC
Core package Classifiers
Classifier
DescriptionDataType
ComponentsRepository
ComponentArtifact
ArtifactLocalizationOtherToolArtifactLocalizationURL
samedi 17 décembre 2005 35
Core package Backbone
ModelElementProperty
StructuralPropertymultiplicity : Multiplicitychangeability : ChaneableKindordering : OrderingKindinitialValue : Expression
VariableProperty FixProperty
Iteminitialvalue : Expression
Scriptbody : String
{ordered}
{Ordered}
GeneralizableElementisAbstract : Boolean
ElementElementOwnershipvisibility : Visibilitykindmultiplicity : Multiplicitykind
Namespace
ModelElementname : Name
0..1
*
+namespace
0..1
+ownedelement
*Bundle
Constraintbody : String
*
1
+scripttrigger
*
+triggeredscript1
*
*
+constrainedElement
*
+Constraint
*
Featureownerscope : ScopeKindvisibility : VisibilityKind
StructuralFeaturemultiplicity : Multiplicitychangeability : ChaneableKindordering : OrderingKind
Classifier
*
+Owner
+feature*
Composition
1
*
+type1
+typedFeature
* *
1
+typedProperty*
+type1
ParameterdefaultValue : Expressionkind : ParameterDirectionKind
1
*
1
+typed parameter*
BehavioralFeature
*
+parameter
*
Le métamodèle M-Sigma
Propositions Le SGBDC
samedi 17 décembre 2005 36
Le métamodèle M-Sigma
Propositions Le SGBDC
Core package Relationships
Description AssociationDescription
Relationship
{Ordered}
AssociationClassifierAssociationEnd
isNavigable : Booleanmultiplicity : Multiplicity 2..* +association
+connection
2..*
1
*+participant
1 +association
*
Generalization GeneralizableElementisAbstract : Boolean
1*
+child
1
+generalization
*
* 1
+Specialisation
*
+parent
1
ModelElementname : Name
samedi 17 décembre 2005 37
Le métamodèle M-Sigma
Propositions Le SGBDC
Package Data Type
AdvancedDataType
UmlDiagram
UmlClassDiagram
{Ordered}
Primitive Enumeration
EnumerationLiteral
1..*
+Enumeration
+Literal1..*
ProgrammingLanguageDataType
ModelElementname : Name
DataType
ExternalTool ExternalOperation**
samedi 17 décembre 2005 38
Exemple
Propositions Le SGBDC
Modèle de composants RéutilisationAuteurIntentionNom
Description de composants
11 111..*1..*1111
Description de composants logiciel
Description de composants conception
Domaine
Description de composants analyse
Description de composants métier
**
**
1..*1..*
**
Modèle de composants<<Description>>
Réutilisation<<Description>>
Auteur<<Item>>
Intention<<Item>>
Nom<<Item>>
Description de composants<<Description>>
11 111..*1..*1111
Description de composants logiciel<<Description>>
Description de composants conception<<Description>>
Domaine<<Item>>
Description de composants analyse<<Description>>
Description de composants métier<<Description>>
**
**1..*1..*
**
samedi 17 décembre 2005 39
Plan
III. Propositionsi. La base B-Sigma
ii. Le système de gestion de bases descriptives de composants
iii. Le Système de Recherche de Composants
iv. Une TRC structurelle externe spécifique
samedi 17 décembre 2005 40
Propositions
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
Le SRC
Objectif
samedi 17 décembre 2005 41
Modèle de SRC
Propositions Le SRC
Modèle de SRC
Components Retrieval System Package
Simple Query Package
Query Integration Package
samedi 17 décembre 2005 42
Exemple de requête composite :
Propositions Le SRC
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 43
Modèle de SRC
Propositions Le SRC
Simple Query Package
L' Instance-DataType doit correspondre au DataType qui fournit la ComponentsRetrievalTechnique
Une requête simple ne peut porter simultanément sur un Item et une Structural property
Item(from Core Package Backbone)
StruturalProperty(from Core Package Backbone)
Instance-DataType(from Instances package)
DataType(from Package DataType)
<<UML metamodel>>
SimpleQuery 1*
1*
1* 1*1
*1
*
ComponentsRetrievalTechnique
RelevanceFunction(v1 : Instance-DataType, v2 : Instance-DataType) : Double*1 *1
*
1
*
1
samedi 17 décembre 2005 44
Modèle de SRC
Propositions Le SRC
Query Integration Package
SimpleQuery(from Simple Query Package)
MaxRelevance
Relevance(rel1, rel2) : Double
MinRelevance
Relevance(rel1, rel2) : Double
AverageRelevance
Relevance(rel1, rel2) : Double
OR_Query
And_Query
Query
2
0..*
2
0..*
2
0..*
2
0..*
Not_Query
1
0..*
1
0..*
RelevanceMergingStrategy
Relevance(rel1, rel2) : DoubleCompositeQuery
1 *1 *
samedi 17 décembre 2005 45
Modèle de SRC
Propositions Le SRC
Components Retrieval System Package
Query(from Query Integration Package)
ComponentsRetrievalSystem
11
ComponentsRetrievalTechnique(from Simple Query Package)
**
QueryEditor
**
1 *1 *
samedi 17 décembre 2005 46
Bilan
Propositions Le SRC
• 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 47
Plan
III. Propositionsi. La base B-Sigma et le modèle C-Sigma
ii. Le Système de Gestion de Bases Descriptives de Composants
iii. Le Système de Recherche de Composants
iv. Une TRC structurelle externe spécifique
samedi 17 décembre 2005 48
Composant simpleCalculer(opérande : Texte)
Document simple Document composite
Document
*
1..*
*
1..*
Component
Nom : Texte
Operation()
*
1
+Documentation*
1
Composant compositeAjouterComposant(c : Component)SupprimerComposant(c : Component)Calculer(opérande : Texte)
*
+composant
*
+composite
composition
Serialisable
Serialiser()
<<Interface>>
Technique de composition
Nom
Diagramme de classes d’un composant réutilisable
(Source)
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’une requête utilisateur
(Cible)
Leaf
Component
Operation()
Composite
Add(child : Component)Remove(child : Component)
**
+Child
samedi 17 décembre 2005 49
• 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
Propositions Une TRC spécifique
Utilisation de la logique du premier ordre
samedi 17 décembre 2005 50
Propositions Une TRC spécifique
Le processus de recherche
Base de composants
Diagrammes de classes des composants
SpécificationsSources
Extraction de la structure
Génération desSpécifications sources
Spécificationcible
Génération de laSpécification cible
Appariement deSpécifications
Méta-connaissances
Composants retrouvés
ProcessusProduit
Diagramme de classes cible
Spécifications des composants de la Base de composants Spécification de la requête utilisateur
samedi 17 décembre 2005 51
• entité(id_Classe_1) • nom_entité(id_Classe_1, Component) • classe(id_Classe_1)• classe_abstraite(id_Classe_1)
Propositions Une TRC spécifique
Génération d’une spécification source
• 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)
Leaf
Component
Operation()
Composite
Add(child : Component)Remove(child : Component)
**
samedi 17 décembre 2005 52
_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)
Propositions Une TRC spécifique
Génération d’une spécification cible
Diagramme cible
NomClasse
NomOperation()
Diagramme source
Composant compositeAjouterComposant(c : Component)SupprimerComposant(c : Component)Calculer(opérande : Texte)
Component
Nom : Texte
Operation()
Composant simpleCalculer(opérande : Texte)
*
+composite
*
Appariement : 5 résultats
samedi 17 décembre 2005 53
_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)
Propositions Une TRC spécifique
Génération d’une spécification cible
Diagramme cible
Pourquoi pas 3 résultats puisque la méthode Operation() est transmise par héritage aux classes Composite et Leaf ?
Pourquoi pas 3 résultats puisque la méthode Operation() est transmise par héritage aux classes Composite et Leaf ?
NomClasse
Operation()
Diagramme source
Composant compositeAjouterComposant(c : Component)SupprimerComposant(c : Component)Calculer(opérande : Texte)
Component
Nom : Texte
Operation()
Composant simpleCalculer(opérande : Texte)
*
+composite
*
Appariement : 1 résultat
samedi 17 décembre 2005 54
• 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
Propositions Une TRC spécifique
Exploitation de métaconnaissances
samedi 17 décembre 2005 55
Plan
I. Problématique
II. État de l’art
III. Propositions
IV. Conclusion et perspectives
samedi 17 décembre 2005 56
Conclusion
Un environnement permettant : – 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 57
Conclusion Prototype SGBDC
samedi 17 décembre 2005 58
Conclusion Prototype SRC
samedi 17 décembre 2005 59
Perspectives
• SGBDC– 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 60
Merci