Title: Vers une ingnierie base de composants
1Vers une ingénierie à base de composants
INFORSID05 Grenoble
- Emmanuel Renaux
- Laboratoire TRIGONE /
- Laboratoire dInformatique Fondamentale (LIFL) de
Lille - Université de Lille 1
-
2Contexte industriel (1/3)
VPC
Banque
Assurance
Secteur public
Métier
Ingénierie logicielle
3Contexte industriel (2/3)
- Points clés des projets étudiés
- Développer avec des NTIC
- Reprendre lexistant
- Ouvrir les systèmes dinformation
- Approche initiale
- Adapter lanalyse et conception orientées objet
4Contexte industriel (3/3)
- Objectif assurer un développement pérenne
- Modèles de composants technologiques
- CORBA Component Model
- .Net
- EJB (J2EE)
5Plan
- Contexte
- Limites de la conception orientée Objet
- A la recherche du composant logique
- Le modèle multi-vues
- Validation
- Conclusion
6Analyse et conception orientées objet
- Démarche dingénierie
- Processus Unifié
- Démarche itérative
- Ensemble dactivités/phases
- Séparation des préoccupations
- Modèles de référence 41 vues / RM-ODP
- Représentation graphique
- Unified Modeling Language
7Processus Unifié simplifié
Trouver les cas dutilisation
Modèle de cas dutilisation
Modèle danalyse
Réaliser les cas dutilisation
Guichet Automatique Bancaire
Guichet Automatique Bancaire
Structurer le système en objets
Modèle de conception
Implémenter les composants de déploiement du
système
ok ?
Tester les cas dutilisation
Modèles de composants/déploiement
8Pb 1. Liens entre les différents découpages ?
?
Trouver les cas dutilisation
?
Réaliser les cas dutilisation
Guichet Automatique Bancaire
Guichet Automatique Bancaire
Structurer le système en objets
Implémenter les composants de déploiement du
système
?
ok ?
Tester les cas dutilisation
9Pb 2. Perte de traçabilité
Trouver les cas dutilisation
Réaliser les cas dutilisation
Guichet Automatique Bancaire
Guichet Automatique Bancaire
Structurer le système en objets
Implémenter les composants de déploiement du
système
ok ?
Tester les cas dutilisation
10Pb3. Problème de détection de composants
Trouver les cas dutilisation
Réaliser les cas dutilisation
Guichet Automatique Bancaire
Guichet Automatique Bancaire
Structurer le système en objets
Implémenter les composants de déploiement du
système
?
ok ?
Tester les cas dutilisation
11Enjeu définir un modèle de composants
Granularité de composant ?
?
Introduire la notion de composant dans tout le
cycle de développement
Détection de composant ?
Cohérence entre les vues ?
Projection analyse vers technologie ?
Modèles de cas dutilisation
Technologies à base de composants
Conception à base de composants
12Plan
- Contexte
- Limite de la conception Orientée Objet
- A la recherche du composant logique
- Le modèle multi-vues
- Validation
- Conclusion
13Cas dutilisation composant ?
- Découpage en cas dutilisation
- conservé jusquau déploiement ?
- Si oui, critères de qualité améliorés
- Compréhension du système
- Gestion du changement
- Maintenance
NON
Enchevêtrement (Tangling) Eparpillement
(Scattering)
14Collaborations
- Réalisation dun cas dutilisation
- UML 1.4, OMG
- Collaborationinteractions entre objets
- Catalysis, DSouza
- Un ensemble dinteractions entre des objets
réalisation dopérations de plus haut niveau
Rendre Materiel
Louer Materiel
15Composition de frameworks de conception
- Frameworks de conception
- Design Framework, Wills
- Objet composition des interfaces
etagere
caisse
article
rangement
materielDisponible
Materiel
tarification
articleRendu
client
Materiel
materielEmprunte
Framework 2
Interaction louer matériel
client
etagere
caisse
Framework 1
Interaction de rendre matériel
rangement
article
tarification
articleRendu
Materiel
materielEmprunte
Composition des frameworks 1 et 2
materielDisponible
client
16La délimitation du composant logique
- But Définir un ensemble de cas dutilisation
- et minimum dinteractions avec dautres cas
Guichet Automatique Bancaire
Emprunter materiel
Client
Rendre materiel
Consulter prix location
Operateur
Client
Materiel
...
Stock
17Plan
- Contexte
- Limite de la conception Orientée Objet
- A la recherche du composant logique
- Le modèle multi-vues
- Validation
- Conclusion
18Component Unified Processus
supporte la démarche
décrit
Offre plusieurs vues, maintient la
cohérence, composant omniprésent
19Méthode à base de composants
- Une démarche dingénierie à base de composants
logiques - Itérative
- Basée sur les besoins
- Séparation des vues
Description statique de larchitecture et
spécification des composants
Réalisation des besoins
Réalisation des cas dutilisation
Description des cas dutilisation
Création de composants
Recueil et spécification des besoins
Ajout dinterfaces à un composant existant
Découverte des cas dutilisation
Connexion de composants
Assemblage de composants
20Modélisation à base de composants
- Ingénierie dirigée par les modèles
- Assistant de conception (cohérence)
- Projection
- Un méta-modèle support de la démarche
- Proposition de le découper en 4 vues
- 4 préoccupations
Description statique de larchitecture et
spécification des composants
Réalisation des besoins
Réalisation des cas dutilisation
Description des cas dutilisation
Vue dinteractions
Création de composants
Vue de conception de composants
Recueil et spécification des besoins
Ajout dinterfaces à un composant existant
Vue de cas dutilisation
Vue dassemblage
Découverte des cas dutilisation
Connexion de composants
Modèle CUP
Assemblage de composants
21Le méta-modèle CUP
Actor (from useCaseView)
System (from assemblyView)
Connector (from assemblyView)
Assembly (from assemblyView)
LogicalComponent (from componentView)
UseCase (from useCaseView)
Scenario (from interactionView)
Interface
Class
Message (from interactionView)
Role (from interactionView)
Port (from componentView)
Part (from componentView)
ProvidedPort
RequiredPort
Entity
Control
ExternalControl
Boundary
EntityPart
SessionPart
contraintes OCL
22Les quatres vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
23 Vue des cas dutilisation (1/3)
Actor (from assemblyView)
System (from assemblyView)
UseCase (from useCaseView)
LogicalComponent (from component)
24Vue des cas dutilisation (2/3)
- Ajouts à UML
- Identification de composant
- Identification anticipée en catégorisant les
services - Notion de composant logique
- Etude des dépendances
- Cas dutilisation de composants logiques
différents - Relation externe dutilisation
25Vue des cas dutilisation (3/3)
ltltlogicalComponentgtgt location
ltltlogicalComponentgtgt client
ltltlogicalComponentgtgt stock
ltltlogicalComponentgtgt tarificationRecette
26Les quatres vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
27Vue des interactions (1/2)
Méta-modèle
Actor (from assemblyView)
System (from assemblyView)
LogicalComponent (from component)
UseCase (from useCaseView)
Scenario (from useCaseView)
Message (from interactionView)
Role (from interactionView)
Entity
Control
ExternalControl
Boundary
28Vue des interactions (2/2)
- Précision des interactions entre composants
- Définition des interfaces
- Ajout du rôle externe de contrôle
29Les quatres vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
30Vue de conception de composant (1/3)
Interface
Port (from componentView)
LogicalComponent (from component)
Class
ProvidedPort
RequiredPort
Role (from interactionView)
Part (from componentView)
EntityPart
SessionPart
Entity
Control
ExternalControl
Boundary
31Vue de conception de composant (2/3)
- Description statique
- Services fournis
- Ensemble de ports fournis
- Services requis
- Ensemble de ports requis
- Vue boîte blanche
- Analyse des parties de composants
- Parties entités et parties de contrôle
32Vue de conception de composant (3/3)
ltltcontrolPartgtgt MaterielControleur
ltltdelegategtgt
ltltdelegategtgt
ltltentityPartgtgt Materiel
33Les quatre vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
34Vue dassemblage (1/2)
Connector (from componentView)
Assembly (from component)
System (from assemblyView)
LogicalComponent (from component)
Port (from componentView)
ProvidedPort
RequiredPort
35Vue dassemblage (2/2)
- Assemblage de composants
- Vue boîte noire
36Contributions CUP
- Vue des cas dutilisation
- Relation externe dutilisation
- Vue dinteractions
- Rôle externe de contrôle
- Vue de conception de composants
- Evolution du diagramme de classe UML
- Vue dassemblage
- Ajout de la vue
37Plan
- Contexte
- Limite de la conception Orientée Objet
- A la recherche du composant logique
- Proposition dune démarche
- Validation
- Conclusion
38Outillage
- Eclipse Modeling Framework
- Outil de méta-modélisation
contraintes OCL
39Validation
- Société NorSys terrain dexpérimentation
- Validation du modèle de composant
- Composant adresse de La Poste
- Découverte de composants et de leurs dépendances
fonctionnelles - Gestion administrative des employés NORSYS
- Passage à léchelle
- Voies Navigables de France, refonte du SI
40Plan
- Contexte
- Conception Orientée Objet
- A la recherche du composant logique
- Proposition dune démarche
- Validation
- Conclusion
41Enjeu définir un modèle de composants logique
Granularité de composant ?
?
Introduire la notion de composant dans tout le
cycle de développement
Détection de composant ?
Cohérence entre les vues ?
Projection analyse vers technologie ?
Modèles de cas dutilisation
Technologies à base de composants
Conception à base de composants
42Conclusion
- Granularité de composant
- Composant logique composant de modèle
- Détection de composants
- Meilleures délimitation et spécification
- Cas dutilisation
- Cohérence entre les vues
- Méta-modèle règles OCL
- Projection analyse vers technologie
- Concepts composants en analyse
43Perspectives
Usines à composants
Modèles
CUP
EJB
.NET
46
44Merci de votre attention
Usines à composants
Modèles
CUP
EJB
.NET
46
45 46Plan
- Contexte
- Conception Orientée Objet
- A la recherche du composant logique
- Proposition dune démarche
- Validation
- Conclusion
47Perspectives (1/2) à court terme
- Scénarii et processus métiers
- Projections vers dautres plates-formes
- Amélioration du ciblage PIM vers PSM
- Prise en compte de caractéristiques
non-fonctionnelles
48Perspectives (2/2) à plus long terme
- Adaptation à dautres méthodologies
- Mécanisme dextension
- Préoccupation gestion de projet
- Réutilisation de COTS
49Processus Unifié (1/5)
Trouver les cas dutilisation
- Cas dutilisation I. Jacobson, 1987
- Adopté unanimement
- Base de la démarche
- Besoins utilisateurs
- Scénarii dutilisation (forme textuelle)
50Trouver les cas dutilisation
- Vue des besoins
- Acteurs, cas dutilisation
Effectuer un retrait
Client
Consulter un compte
Alimenter le GAB en billets
Operateur
51Processus Unifié (2/5)
Trouver les cas dutilisation
Réaliser les cas dutilisation
- Réaliser les cas dutilisation
- Modéliser les scénarii
- Identifier les entités du système et leurs
interactions
52Réaliser les cas dutilisation
- Vue dynamique
- Objets, rôles et interactions
Effectuer un retrait
Client
Client
InterfaceGuichet
Distributeur
Retrait
Compte
Consulter un compte
identifier()
demandeRetrait(montant)
valider(montant)
effectuerRetrait(montant)
Alimenter le GAB en billets
Operateur
distribuer(montant)
delivrerBillets()
53Processus Unifié (3/5)
Trouver les cas dutilisation
Réaliser les cas dutilisation
Structurer le système en objets
- Structurer le système en objets
- Trouver les entités du système
- Définir leurs propriétés
- Définir leurs relations (associations, héritage)
54Structurer le système en objet
- Vue statique du système
- Classes et associations
Guichet Automatique Bancaire
Guichet Automatique Bancaire
Effectuer un retrait
Client
Client
Compte
interfaceGuichet
distributeur
Retrait
InterfaceGuichet
Consulter un compte
identifier()
identifier()
Client
demandeRetrait(montant)
valider(montant)
Retrait
Compte
effectuerRetrait(montant)
Alimenter le GAB en billets
solde
Distributeur
Operateur
distribuer(montant)
demandeRetrait()
valider() effectuerRetrait()
distribuer()
delivrerBillets()
55Processus Unifié (4/5)
Trouver les cas dutilisation
Réaliser les cas dutilisation
Guichet Automatique Bancaire
Guichet Automatique Bancaire
Structurer le système en objets
Implémenter les composants de déploiement du
système
56Motivation
- Plate-forme EJB
- Services gérés par le conteneur
- Correspondance complexe
- Identification des composants EJB
- Entité données métiers
- Session traitements métiers
- Choix de conception nombreux
- Conservation des ports multiples ?
- Implémentation des ports par des EJB Session
- Différence entre connexion et association
EJBs Entités
EJB Session
conteneur
Applications clientes
Base de données
57Le framework EJB
- Ajout de concepts composants au framework EJB
- En adéquation avec les concepts CUP
- Interfaces multiples requises et fournies
- Connexion de composants
- Exploitation de lassemblage de composants de CUP
- revue LObjet04 - Vers de véritables composants
EJB réutilisables
58 La génération de CUP vers EJB
- Projection EJB
- Outillage CUPTool
- Manipulation Java du modèle CUP
- Génération du code EJB
Projection
ltltEJB sessiongtgt LouerMateriel
ltltEJB sessiongtgt ModifierStock
LouerMaterielFacet
ConsulterPrix Receptacle
ltltEJB sessiongtgt RendreMateriel
RendreMaterielFacet
ltltEJB entitegtgt BaseClient
ltltEJB entitegtgt InfosClient
Composant EJB GestionMateriel
59Bilan
Modèles de composants logiques
Framework EJB
Projection
Granularité de composant
?
Détection de composant
Enrichissement Paradigme composant
Introduire la notion de composant dans tout le
cycle de développement
Enrichissement Paradigme composant
Cohérence entre les vues
Projection analyse vers technologie
Modèles danalyse orientés objet
Technologies à base de composants
Projection complexe
Génie logiciel
60Limites de lapproche
- Prise en compte tardive des composants de
déploiement
- Composants technologiques à grain fin
- 3. Choix de conception sur la plate-forme
- Correspondance entre des éléments objets et des
éléments de la plate-forme composant
2.
1.
3.
Modèles danalyse orientés objet
Technologies à base de composants
Projection complexe