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