Analyse, Conception Objet Diagrammes de composants

Transcription

Analyse, Conception Objet Diagrammes de composants
Diagrammes de composants
SIMMO/ENSM.SE
Diagrammes de composants
Analyse, Conception Objet
SIMMO/ENSM.SE
Sommaire
• Définition
Diagrammes de composants
• Composant
• Module
• Dépendance
• Processus et tâches
Une partie du matériau de ce cours est issue du cours de S.Galland ([email protected])
• Exemple
Octobre 2002
Oct.2002
1
Diagrammes de composants
SIMMO/ENSM.SE
Oct.2002
Sommaire– 2
Diagrammes de composants
SIMMO/ENSM.SE
Composant
Définition
• Décrit les composants et leurs dépendances dans l’environnement de
réalisation.
• Élément physique représentant une partie de
l’implémentation du système :
• Vue statique de l’implémentation du système illustrant les choix de réalisation.
– code (source, binaire ou exécutable),
• Les diagrammes de composants sont composés :
– script, fichier de commande,
– des descriptions des implémentations du système (les composants),
– fichier de données, table, ...
– des groupes d’implémentations (les modules),
• Un composant implante des services utilisables par d’autres
composants.
– des relations entre les diverses implémentations (les dépendances).
• Ils sont généralement utilisés pour décrire les choix d’implémentation et les
dépendances de compilation et d’implémentation entre les composants du
système.
Nom du composant
Un service
Un autre service
Oct.2002
Définition– 3
Oct.2002
Composant– 4
Diagrammes de composants
SIMMO/ENSM.SE
Diagrammes de composants
Composant (suite)
SIMMO/ENSM.SE
Composant (suite)
• Si un composant implante plusieurs classes, ces dernières sont représentées
comme suit (noter les notations d’accessibilité (+,-)):
• UML propose des stéréotypes de composants :
– <<document>>: un document quelconque;
Lecture
Journal
– <<exécutable>>: un programme qui peut s’exécuter sur un
nœud (cf. diagrammes de déploiement);
+ Maquette
+ Liste d’abonnés
Réalisation
– <<fichier>>: un document contenant du code source ou des
données;
− Liste d’articles
+ Page
• L’instance d’un composant est représentée par un composant dont le nom est
souligné.
– <<bibliothèque>>: une bibliothèque statique ou dynamique;
– <<table>>: une table d’une base de données relationnelle.
f: Fichier
• En général, un composant représente l’implantation d’une classe.
• Exemple : Le composant Java nommé java.lang.String est
l’implantation d’une classe nommée String.
Oct.2002
• Les instances de composants sont surtout utilisées dans les diagrammes de
déploiement.
Composant (suite)– 5
Diagrammes de composants
SIMMO/ENSM.SE
Oct.2002
Composant (suite)– 6
Diagrammes de composants
SIMMO/ENSM.SE
Module
Dépendance
• Représente une unité pour le regroupement et la
manipulation de composants.
• Représente les relations de dépendances entre
composants/modules.
• Exemple : le module Java java.lang contient les
composants String, Integer, ...
• Illustre l’utilisation des services d’un composant par un
second composant.
• Représentation non standard :
Spécification
Corps
<<fichier>>
Zoo.cpp
Générique
<<fichier>>
Zoo.cpp
Oct.2002
<<fichier>>
Zoo.cpp
Module– 7
Oct.2002
<<fichier>>
Zoo.cpp
<<fichier>>
Zoo.cpp
Dépendance– 8
Diagrammes de composants
SIMMO/ENSM.SE
Diagrammes de composants
SIMMO/ENSM.SE
Processus et tâches
Exemple
• Les processus (processus) et tâches (thread) peuvent être
représentés par un composant.
• Nous désirons implanter la gestion d’un agenda.
• Un processus ou une tâche est caractérisée par son propre
flot de contrôle.
• Un agenda possède un propriétaire.
• Un agenda contient un ensemble de personnes.
• Chaque personne est identifiée par son nom et par un
ensemble de coordonnées.
• UML propose les stéréotypes <<processus>> et
<<thread>>
<<processus>>
Superviseur
• Une coordonnée peut être postale, téléphonique ou
électonique (email ou page web).
<<thread>>
Capteur
• Une adresse email n’appartient qu’à une seule personne.
Oct.2002
Processus et tâches– 9
Diagrammes de composants
SIMMO/ENSM.SE
Oct.2002
Exemple– 10
Diagrammes de composants
SIMMO/ENSM.SE
Diagramme des classes
+ agenda
1..*
Agenda
Diagramme des composants
Personne
{ context Email inv :
self .propriétaire−>size() = 1 }
*
* + contacts
Coordonnées
Personne
+ propriétaire
Agenda
utiliser
Coordonnée
lecture
Email
PageWWW
<<fichier>>
agenda_db
+ nom : Chaîne
1..*
0..*
+ propriétaire
écriture
+adresses
Adresse
Coordonnée
Téléphonique
<<bibliothèque>>
Accès
Internet
Electronique
+ utiliser() { abstrait }
connexion
Système d’exploitation
Adresse
+ utiliser()
Téléphone
Electronique
PageWWW
+ utiliser()
Oct.2002
<<bibliothèque>>
Reconnaissance
Vocale
+ utiliser()
Email
+ utiliser()
Diagramme des classes– 11
Oct.2002
<<bibliothèque>>
Conversation
Téléphonique
connexion
connexion
<<bibliothèque>>
Modem
<<bibliothèque>>
RéseauLAN
Diagramme des composants– 12