Diagrammes de composants SIMMO/ENSM.SE
Analyse, Conception Objet Diagrammes de composants
Une partie du mat´eriau de ce cours est issue du cours de S.Galland (Stephane.Galland@emse.fr)
Octobre 2002
Oct.2002 1
Diagrammes de composants SIMMO/ENSM.SE
Sommaire
•D´efinition
•Composant
•Module
•D´ependance
•Processus et tˆaches
•Exemple
Oct.2002 Sommaire– 2
Diagrammes de composants SIMMO/ENSM.SE
D´efinition
• D´ecrit les composants et leurs d´ependances dans l’environnement de r´ealisation.
• Vue statique de l’impl´ementation du syst`eme illustrant les choix de r´ealisation.
• Les diagrammes de composants sont compos´es :
– des descriptions des impl´ementations du syst`eme (lescomposants), – des groupes d’impl´ementations (lesmodules),
– des relations entre les diverses impl´ementations (lesd´ependances).
• Ils sont g´en´eralement utilis´es pour d´ecrire les choix d’impl´ementation et les d´ependances de compilation et d’impl´ementation entre les composants du syst`eme.
Oct.2002 D´efinition– 3
Diagrammes de composants SIMMO/ENSM.SE
Composant
• El´ement physique repr´esentant une partie de´ l’impl´ementation du syst`eme :
– code (source, binaire ou ex´ecutable), – script, fichier de commande,
– fichier de donn´ees, table, ...
• Un composant implante des services utilisables par d’autres composants.
Nom du composant Un service
Un autre service
Oct.2002 Composant– 4
Diagrammes de composants SIMMO/ENSM.SE
Composant (suite)
• UML propose des st´er´eotypes de composants :
– <<document>>: un document quelconque;
– <<ex´ecutable>>: un programme qui peut s’ex´ecuter sur un
nœud (cf. diagrammes de d´eploiement);
– <<fichier>>: un document contenant du code source ou des
donn´ees;
– <<biblioth`eque>>: une biblioth`eque statique ou dynamique;
– <<table>>: une table d’une base de donn´ees relationnelle.
• En g´en´eral, un composant repr´esente l’implantation d’une classe.
• Exemple : Le composant Java nomm´ejava.lang.Stringest l’implantation d’une classe nomm´eeString.
Oct.2002 Composant (suite)– 5
Diagrammes de composants SIMMO/ENSM.SE
Composant (suite)
• Si un composant implante plusieurs classes, ces derni`eres sont repr´esent´ees comme suit (noter les notations d’accessibilit´e (+,-)):
+ Maquette + Liste d’abonnés
+ Page
− Liste d’articles
Journal Lecture
Réalisation
• L’instance d’un composant est repr´esent´ee par un composant dont le nom est soulign´e.
f: Fichier
• Les instances de composants sont surtout utilis´ees dans les diagrammes de d´eploiement.
Oct.2002 Composant (suite)– 6
Diagrammes de composants SIMMO/ENSM.SE
Module
• Repr´esente une unit´e pour le regroupement et la manipulation de composants.
• Exemple : le module Javajava.langcontient les composantsString,Integer, ...
• Repr´esentationnon standard:
Spécification Corps Générique
Oct.2002 Module– 7
Diagrammes de composants SIMMO/ENSM.SE
D´ependance
• Repr´esente les relations de d´ependances entre composants/modules.
• Illustre l’utilisation des services d’un composant par un second composant.
<<fichier>>
Zoo.cpp
<<fichier>>
Zoo.cpp
<<fichier>>
Zoo.cpp
<<fichier>>
Zoo.cpp
<<fichier>>
Zoo.cpp
Oct.2002 D´ependance– 8
Diagrammes de composants SIMMO/ENSM.SE
Processus et tˆaches
• Les processus (processus) et tˆaches (thread) peuvent ˆetre repr´esent´es par un composant.
• Un processus ou une tˆache est caract´eris´ee par son propre flot de contrˆole.
• UML propose les st´er´eotypes<<processus>>et
<<thread>>
<<processus>>
Superviseur
<<thread>>
Capteur
Oct.2002 Processus et tˆaches– 9
Diagrammes de composants SIMMO/ENSM.SE
Exemple
• Nous d´esirons implanter la gestion d’un agenda.
• Un agenda contient un ensemble de personnes.
• Un agenda poss`ede un propri´etaire.
• Chaque personne est identifi´ee par son nom et par un ensemble de coordonn´ees.
• Une coordonn´ee peut ˆetre postale, t´el´ephonique ou
´electonique (email ou page web).
• Une adresse email n’appartient qu’`a une seule personne.
Oct.2002 Exemple– 10
Diagrammes de composants SIMMO/ENSM.SE
Diagramme des classes
Personne + nom : Chaîne Agenda
+ utiliser() Téléphone + utiliser()
Adresse Electronique
+ utiliser() PageWWW Coordonnée
+ utiliser() { abstrait }
context Email inv : {
self .propriétaire−>size() = 1 } + contacts
*
*
+ propriétaire + agenda
1..*
0..*
1..* + propriétaire +adresses
+ utiliser() Email
Oct.2002 Diagramme des classes– 11
Diagrammes de composants SIMMO/ENSM.SE
Diagramme des composants
<<bibliothèque>>
Reconnaissance Vocale
<<bibliothèque>>
Conversation Téléphonique
connexion
<<bibliothèque>>
Modem
connexion
<<bibliothèque>>
RéseauLAN
<<bibliothèque>>
Accès Internet connexion
Electronique PageWWW Email
Téléphonique Adresse
Coordonnée
Personne Agenda
<<fichier>>
agenda_db
Système d’exploitation
Coordonnées utiliser
écriture lecture
Oct.2002 Diagramme des composants– 12