Title: Dfinition d'une dmarche de conception de systmes base de composants
1Définition d'une démarche de conception de
systèmes à base de composants
Soutenance de thèse de doctorat le 7 Décembre 2004
- Emmanuel Renaux
- Directeur Jean-Marc Geib
- Co-encadrant Olivier Caron
2Contexte industriel (1/2)
VPC
Banque
Assurance
Secteur public
Métier
Ingénierie logicielle
3Contexte industriel (2/2)
- Points clés des projets étudiés
- Développer avec des NTIC
- Reprendre lexistant
- Ouvrir les systèmes dinformation
- Approche initiale
- Analyse et conception orientées objet
4Plan
- Contexte
- Existant et problématique
- Mon modèle de composants logiques
- Proposition dune démarche
- Projection vers une plate-forme technologique
- Validation et bilan
- Perspectives
5Plates-formes technologiques
- Objectif assurer un développement pérenne
- Modèles de composants technologiques
- CORBA Component Model
- .Net
- EJB
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é (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)
8Trouver les cas dutilisation
- Vue des besoins
- Acteurs, cas dutilisation
Effectuer un retrait
Client
Consulter un compte
Alimenter le GAB en billets
Operateur
9Processus 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
10Ré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()
11Processus 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)
12Structurer 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()
13Processus 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
14Processus Unifié (5/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
ok ?
Tester les cas dutilisation
15Liens 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
16Perte 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
17Problè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
18Limites 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
19Enjeu 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 danalyse orientés objet
Technologies à base de composants
Projection complexe
20Plan
- Contexte
- Existant et problématique
- Mon modèle de composants logiques
- Proposition dune démarche
- Projection vers une plate-forme technologique
- Validation et bilan
- Perspectives
21Cas 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
22Collaborations
- 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
23Composition de frameworks de conception
- Frameworks de conception
- Design Framework, Wills
- Objet composition des interfaces de rôles de
frameworks de conception
Framework 2
serviceBanque
Framework 1
distributeur
produit
compte
interfaceGuichet
compteCourant
Compte
billet
Compte
détenteur
Interaction consulter solde
client
Composition des frameworks 1 et 2
distributeur
Interaction de retrait argent
serviceBanque
interfaceGuichet
compte
produit
détenteur
billet
client
Compte
24Mon modèle de composants logiques
- Un ensemble de cas dutilisation
- minimum dinteractions avec dautres cas
OUI
Compte
compteCourant
Guichet Automatique Bancaire
distributeur
GuichetAutomatique
Effectuer un retrait
interfaceGuichet
client
Effectuer un retrait
PorteurCarteCB
compteCourant
Client
Consulter solde
interfaceGuichet
client
Consulter un compte
Alimenter le GAB en billets
Operateur
PorteurCarteCB
Guichet
Compte
25Plan
- Contexte
- Existant et problématique
- Mon modèle de composants logiques
- Proposition dune démarche
- Projection vers une plate-forme technologique
- Validation et bilan
- Perspectives
26Component Unified Processus
Component Unified Process
Offre plusieurs vues, maintient la
cohérence, composant omniprésent
supporte la démarche
décrit
Modèle de Composants logiques
Méta-modèle CUP
27Méthode à base de composants
- Une démarche dingénierie à base de composants
logiques SEA03 - Component Unified Process - 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
28Modélisation à base de composants
- Support de la démarche
- Spécifiée dans un méta-modèle
- Proposition de 4 vues
- Ingénierie dirigée par les modèles
- Assistant de conception (cohérence)
- Projection
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
29Les quatres vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
30Vue des cas dutilisation (1/2)
- 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
31Vue des cas dutilisation (2/2)
ltltLogicalComponentgtgt Magasin
ltltincludegtgt
32Les quatres vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
33Vue des interactions
- Précision des interactions entre composants
- Définition des interfaces
- Ajout du rôle externe de contrôle
34Les quatres vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
35Vue de conception de composant (1/2)
- 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
36Vue de conception de composant (2/2)
ltltcontrolPartgtgt RendreMateriel
ltltdelegategtgt
ltltcontrolPartgtgt ModifierStock
ltltcontrolPartgtgt LouerMateriel
ltltentityPartgtgt BaseClient
ltltentityPartgtgt InfosClient
37Les quatre vues du système
- vue des cas dutilisation
- vue dinteractions
- vue de conception de composants
- vue dassemblage du système
38Vue dassemblage
- Assemblage de composants
- Vue boîte noire
39Le 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
40Contributions 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
41Outillage
- Eclipse Modeling Framework
- Outil de méta-modélisation
- LMO04 - Chaîne de production de systèmes à base
de composants logiques
contraintes OCL
42Plan
- Contexte
- Existant et problématique
- Mon modèle de composants logiques
- Proposition dune démarche
- Projection vers une plate-forme technologique
- Validation et bilan
- Perspectives
43Motivation
- 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
44Le 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
45 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
46Plan
- Contexte
- Existant et problématique
- Mon modèle de composants logiques
- Proposition dune démarche
- Projection vers une plate-forme technologique
- Validation et bilan
- Perspectives
47Validation
- 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
48Bilan
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
49Bilan
- 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
50Plan
- Contexte
- Existant et problématique
- Mon modèle de composants logiques
- Proposition dune démarche
- Projection vers une plate-forme technologique
- Validation et bilan
- Perspectives
51Perspectives (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
52Perspectives (2/2) à plus long terme
- Adaptation à dautres méthodologies
- Mécanisme dextension
- Préoccupation gestion de projet
- Réutilisation de COTS
53Plus loin
Usines à composants
Modèles
CUP
EJB
.NET
46
54 55 Vue des cas dutilisation
Actor (from assemblyView)
System (from assemblyView)
UseCase (from useCaseView)
LogicalComponent (from component)
56Vue des interactions
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
57Vue de conception de composant
Interface
Port (from componentView)
LogicalComponent (from component)
Class
ProvidedPort
RequiredPort
Role (from interactionView)
Part (from componentView)
EntityPart
SessionPart
Entity
Control
ExternalControl
Boundary
58Vue dassemblage
Connector (from componentView)
Assembly (from component)
System (from assemblyView)
LogicalComponent (from component)
Port (from componentView)
ProvidedPort
RequiredPort