Dfinition d'une dmarche de conception de systmes base de composants PowerPoint PPT Presentation

presentation player overlay
1 / 54
About This Presentation
Transcript and Presenter's Notes

Title: Dfinition d'une dmarche de conception de systmes base de composants


1
Dé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

2
Contexte industriel (1/2)
VPC
Banque
Assurance
Secteur public
Métier
Ingénierie logicielle
3
Contexte 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

4
Plan
  • 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

5
Plates-formes technologiques
  • Objectif assurer un développement pérenne
  • Modèles de composants technologiques
  • CORBA Component Model
  • .Net
  • EJB

6
Analyse 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

7
Processus 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)

8
Trouver les cas dutilisation
  • Vue des besoins
  • Acteurs, cas dutilisation

Effectuer un retrait
Client
Consulter un compte
Alimenter le GAB en billets
Operateur
  • Guichet bancaire

9
Processus 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

10
Ré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()
11
Processus 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)

12
Structurer 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()
13
Processus 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
14
Processus 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
15
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
16
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
17
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
18
Limites 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
19
Enjeu 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
20
Plan
  • 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

21
Cas 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
22
Collaborations
  • 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

23
Composition 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
24
Mon 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
25
Plan
  • 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

26
Component 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
27
Mé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
28
Modé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
29
Les quatres vues du système
  • vue des cas dutilisation
  • vue dinteractions
  • vue de conception de composants
  • vue dassemblage du système

30
Vue 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

31
Vue des cas dutilisation (2/2)
ltltLogicalComponentgtgt Magasin
ltltincludegtgt
32
Les quatres vues du système
  • vue des cas dutilisation
  • vue dinteractions
  • vue de conception de composants
  • vue dassemblage du système

33
Vue des interactions
  • Précision des interactions entre composants
  • Définition des interfaces
  • Ajout du rôle externe de contrôle

34
Les quatres vues du système
  • vue des cas dutilisation
  • vue dinteractions
  • vue de conception de composants
  • vue dassemblage du système

35
Vue 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

36
Vue de conception de composant (2/2)
ltltcontrolPartgtgt RendreMateriel
ltltdelegategtgt
ltltcontrolPartgtgt ModifierStock
ltltcontrolPartgtgt LouerMateriel
ltltentityPartgtgt BaseClient
ltltentityPartgtgt InfosClient
37
Les quatre vues du système
  • vue des cas dutilisation
  • vue dinteractions
  • vue de conception de composants
  • vue dassemblage du système

38
Vue dassemblage
  • Assemblage de composants
  • Vue boîte noire

39
Le 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
40
Contributions 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

41
Outillage
  • Eclipse Modeling Framework
  • Outil de méta-modélisation
  • LMO04 - Chaîne de production de systèmes à base
    de composants logiques

contraintes OCL
42
Plan
  • 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

43
Motivation
  • 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
44
Le 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
46
Plan
  • 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

47
Validation
  • 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

48
Bilan
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
49
Bilan
  • 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

50
Plan
  • 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

51
Perspectives (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

52
Perspectives (2/2) à plus long terme
  • Adaptation à dautres méthodologies
  • Mécanisme dextension
  • Préoccupation gestion de projet
  • Réutilisation de COTS

53
Plus loin
Usines à composants
Modèles
CUP
EJB
.NET
46
54
  • Merci

55
Vue des cas dutilisation
Actor (from assemblyView)
System (from assemblyView)
UseCase (from useCaseView)
LogicalComponent (from component)
56
Vue 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
57
Vue 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
58
Vue dassemblage
Connector (from componentView)
Assembly (from component)
System (from assemblyView)
LogicalComponent (from component)
Port (from componentView)
ProvidedPort
RequiredPort
Write a Comment
User Comments (0)
About PowerShow.com