Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lecture 2 - UML 2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 92

Génie Logiciel

Chapitre 2 : UML

CHIKHI Nacim Fateh


Qu’est-ce-que UML ?

 Unified Modeling Language est un ensemble de notations


graphiques qui aident à décrire et à concevoir des systèmes
logiciels en particulier ceux construits en utilisant le paradigme
orienté objet.
 UML est apparu en 1997.
 UML est standardisé. Son contenu est contrôlé par l’Object
Management Group (OMG).
 L’objectif d’UML est d’être un langage de modélisation complet
(tout pour tous) qui facilitera la communication entre tous les
membres participant au développement du système.

Chapitre 2 – UML 2
Diagrammes UML

 Les notations graphiques d’UML sont appelées des


diagrammes.
 La dernière version d’UML 2.5.1 est apparue en Décembre
2017 et contient 14 diagrammes.
 Chaque diagramme peut être exprimé avec différents degrés
de détail.
 Il n’est pas nécessaire d’utiliser tous les diagrammes pour
modéliser un système.
 UML ne donne aucune indication sur les diagrammes à utiliser
pour un projet particulier.

Chapitre 2 – UML 3
Diagrammes UML (suite)

Chapitre 2 – UML 4
Diagramme des cas d’utilisation

 Les cas d’utilisation sont une technique de spécification des


besoins fonctionnels.

 Les cas d’utilisation sont une collection de scénarios de réussite


et/ou d’échec.

 Les cas d’utilisation décrivent la façon dont un acteur utilise un


système pour atteindre un but.

 Un cas d’utilisation est comme une boîte noire qui décrit une
fonctionnalité du système en terme de comportement.

 Un cas d’utilisation décrit le quoi mais pas le comment.

Chapitre 2 – UML 5
Diagramme des cas d’utilisation (suite)

 Un diagramme des cas d’utilisation montre les acteurs, les cas


d’utilisation et les relations entre eux :
- Quels acteurs effectuent quels cas d’utilisation (qui fait quoi)
- Quels cas d’utilisation sont reliés entre eux

 Le diagramme des cas d’utilisation montre les frontières du


système ainsi que les interactions entre celui-ci et le monde
extérieur.

 En UML, un cas d’utilisation est représenté par un oval contenant


le nom du cas d’utilisation.
Effectuer commande

Chapitre 2 – UML 6
Les acteurs

 Un acteur est une entité externe au système qui interagit avec


celui-ci.

 En UML, un acteur est représenté par un bonhomme s’il s’agit


d’un acteur humain ou par un rectangle s’il s’agit d’un acteur non
humain.

Chapitre 2 – UML 7
Les acteurs (suite)

 Un acteur peut être :


 Principal : il sollicite le système pour réaliser un cas d’utilisation.
 Secondaire : il est sollicité par le système pour la réalisation d’un
cas d’utilisation.

 Dans la mesure du possible, il est conseillé de mettre les acteurs


principaux à gauche du système et les acteurs secondaires à
droite de celui-ci.

 Il est possible d’avoir une relation


de généralisation entre les acteurs.

Chapitre 2 – UML 8
Exemple d’un diagramme de cas
d’utilisation

Chapitre 2 – UML 9
Relations entre cas d’utilisation

 Il existe trois types de relations entre cas d’utilisation :


• Inclusion
• Extension
• Généralisation

Chapitre 2 – UML 10
Diagramme de séquence

 Un diagramme de séquence est un diagramme d’interaction


indiquant comment les différents éléments (objets) interagissent
et collaborent pour fournir les fonctionnalités requises.

 Le diagramme de séquence est utilisé durant l’analyse pour


décrire les scénarios des cas d’utilisation. Il est appelé dans ce
cas diagramme de séquence système.

 Un diagramme de séquence système considère le système


comme une boîte noire et montre les différentes interactions
entre les acteurs du système et ce dernier.

Chapitre 2 – UML 11
Diagramme de séquence (suite)

 Au niveau de la conception, la boîte noire est ouverte. Le


diagramme de séquence dans cette étape décrit l’interaction
entre les différentes objets du système qui participent à la
réalisation du cas d’utilisation.

 Le diagramme de séquence peut aussi être utilisé au niveau de


l’implémentation pour décrire un algorithme ou une fonction
complexes.

Chapitre 2 – UML 12
Diagramme de séquence (suite)

 Un diagramme de séquence montre la séquence temporelle


d’échange de message entre les éléments (objets) réalisant une
certaine tâche
 Les objets sont disposés horizontalement.
 L’acteur qui initie l’interaction se trouve généralement à l’extrême gauche.
 La dimension verticale représente le temps.
 Une ligne verticale, appelée ligne de vie, est accrochée à chaque objet ou
acteur.
 La ligne de vie s’épaissie pour devenir une boite d’activation lorsque l’objet
est actif, i.e., durant la période d’activation.
 Un message est représenté par une flèche joignant deux boites d’activation.
 Un message a un nom et peut aussi avoir une liste d’arguments et une
valeur de retour.
 Un message peut être synchrone ou asynchrone.
Chapitre 2 – UML 13
Exemple de scénario nominal d’un cas
d’utilisation

Cas d’utilisation : Retirer de l’argent au distributeur (GAB) avec une


carte bancaire.
1. Le porteur de carte introduit sa carte dans le GAB
2. Le GAB vérifie que la carte introduite est bien une carte bancaire.
3. Le GAB demande au porteur de carte de fournir son code d’identification.
4. Le porteur de carte entre son code d’identification.
5. Le GAB valide le code d’identification (par rapport à celui qui est codé
sur la puce de la carte).
6. Le GAB demande une autorisation au système d’autorisation externe.
7. Le système d’autorisation externe donne son accord et indique le
solde hebdomadaire.
8. Le GAB demande au porteur de carte de saisir le montant désiré du
retrait.
9. ...
Chapitre 2 – UML 14
Exemple de diagramme de séquence système

Chapitre 2 – UML 15
Messages synchrones et asynchrones

 Les trois diagrammes suivants sont équivalents.

Chapitre 2 – UML 16
Création et destruction d’objets

Chapitre 2 – UML 17
Fragments d’interaction

 Un fragment d’interactions est une partie du diagramme de


séquence associée à une étiquette. L’étiquette contient un
opérateur d’interaction qui permet de décrire des modalités
d’exécution des messages à l’intérieur du cadre.

Chapitre 2 – UML 18
Fragments d’interaction : l’opérateur
opt

 L’opérateur option (opt) comporte un opérande et une condition


de garde associée. Le sous-fragment s’exécute si la condition de
garde est vraie et ne s’exécute pas dans le cas contraire.

Chapitre 2 – UML 19
Fragments d’interaction : l’opérateur alt

 L’opérateur alternatives (alt) est un opérateur conditionnel


possédant plusieurs opérandes séparés par des pointillés. Seul le
sous-fragment dont la condition est vraie est exécuté.

Chapitre 2 – UML 20
Fragments d’interaction : l’opérateur
loop

 L’opérateur loop exprime une boucle..

Chapitre 2 – UML 21
Fragments d’interaction : l’opérateur
par

 Un fragment d’interaction avec l’opérateur de traitements


parallèles (par) contient au moins deux sous fragments séparés
par des pointillés qui s’exécutent simultanément.

Chapitre 2 – UML 22
Fragments d’interaction : l’opérateur
ref

 Le fragment référence (ref) permet de faire référence à un autre


diagramme de séquence.

Chapitre 2 – UML 23
Fragments d’interaction (suite)

Chapitre 2 – UML 24
Diagramme de classes

 Une classe est :


– La brique de base la plus importante dans la construction d’un système
orienté objet.
– Une description d’un ensemble d’objets ayant les mêmes caractéristiques.
– Un plan pour la création d’un objet.
– Une abstraction (simplification) d’une notion réelle ou virtuelle.
– Une représentation d’une chose logicielle, matérielle ou conceptuelle.
– Représentée graphiquement par un rectangle.

Chapitre 2 – UML 25
Termes et concepts

 Toute classe possède :


– Un nom, utilisé pour distinguer une classe d’une autre.
– Des attributs, qui constituent l’état d’un objet de la classe.
– Des opérations, appelées méthodes en Java, qui constituent le
comportement d’un objet de la classe.
– Des responsabilités.

 Les noms des classes sont :


– Extraits du domaine (c-à-d du métier).
– Des noms ou des phrases nominales.
– Concis et descriptifs.

Chapitre 2 – UML 26
Attributs

 Les attributs d’une classe sont :


– Généralement des noms ou des phrases nominales.
– Extraits du domaine.
– Utilisés pour représenter les propriétés de la classe.
– Généralement représentés en utilisant le format :
• Visibility name: type multiplicity = default {property string}
• Exemple : - firstName: String = "Ali" {read only}

Chapitre 2 – UML 27
Opérations

 Les opérations d’une classe sont :


– Généralement des verbes ou des phrases verbales.
– Extraites du domaine.
– Fournissent un service.
– Généralement représentées en utilisant le format :
• Visibility name (liste-paramètres) : return-type {property-string}
• Exemple : + printLastName() : void

Chapitre 2 – UML 28
Exemple d’une classe

Chapitre 2 – UML 29
Association

 Une association est :


– Un type de relation qui peut exister entre une ou plusieurs classes.
– Utilisée pour indiquer une relation de type "connait un".
– Soit unidirectionnelle soit bidirectionnelle.
– Représentée graphiquement par une ligne continue et peut avoir un nom.
– Une notation alternative d’un attribut de classe.

 Les noms des associations sont des verbes ou des phrases


verbales.
 Une association peut être entre une même classe.
 Une association peut optionnellement avoir des noms de rôles et
des symboles de multiplicité sur chacune des ses extrémités.

Chapitre 2 – UML 30
Multiplicité

 La multiplicité indique le nombre (minimal et maximal)


d’objets qui peuvent participer dans l’association.
 Les multiplicités couramment utilisées sont :
– 0..1
– 1
– * ou 0..*
– 1..*

 La multiplicité par défaut est ‘1’.

Chapitre 2 – UML 31
Généralisation

 La généralisation est :
– Un type de relation qui peut exister entre deux classes.
– Utilisée pour indiquer une relation de type « sorte de". Une des classes est
appelée classe mère et l’autre classe est appelée classe fille.
– Synonyme d’héritage.
– Représentée graphiquement par une ligne continue et une flèche
triangulaire du côté de la classe mère.

 La classe mère n’a aucune connaissance de la classe fille.

 Tous les langages de programmation orientés objet supportent


l’héritage simple. Certains sopportent aussi l’héritage multiple
(C++ par exemple)

Chapitre 2 – UML 32
Types de relations

Chapitre 2 – UML 33
Exemple d’un diagramme de classe

Chapitre 2 – UML 34
Attributs et opérations statiques

 Portée
– Un attribut peut avoir une portée de classe ou bien une
portée d’instance.
 Portée de classe
– Une seule copie de l’attribut partagée par toutes les
instances de la classe.
– En UML, un attribut est souligné pour indiquer qu’il a une
portée de classe :
nbProduits : int
 Portée d’instance
– Chaque instance de la classe aura sa propre copie de
l’attribut. Par défaut tous les attributs ont une portée
d’instance.
Chapitre 2 – UML 35
Exemple d’attribut statique

Chapitre 2 – UML 36
Attributs dérivés

 Un attribut dérivé est un attribut qui peut être calculé à


partir d’autres attributs.

Chapitre 2 – UML 37
Agrégation et composition

 L’agrégation est :
– Une relation entre deux classes
– Une forme d’association
– Utilisée pour indiquer une relation de type "possède" ou de
type "partie-tout"
– Représentée graphiquement par une ligne continue et un
losange du côté de la classe "tout"

 La différence entre une agrégation et une composition est


seulement conceptuelle. Elle est rarement utilisée.

Chapitre 2 – UML 38
Agrégation et composition (suite)

 La composition est :
– Une relation entre deux classes
– Utilisée pour indiquer une relation de type "contient" ou de
type "partie-tout" ou de type "composé-composant"
– Représentée graphiquement par une ligne continue et un
losange plein du côté de la classe "tout"

 La relation entre "composant" et "composé" est très forte


de telle sorte que la destruction du "composé" entraine la
destruction du "composant".

 La composition est exclusive contrairement à l’agrégation :


un "composant" ne peut composer qu’un seul "composé".
Chapitre 2 – UML 39
Exemple de relations d’agrégation et de
composition

Chapitre 2 – UML 40
Classes abstraites et interfaces

 Une classe abstraite est :


– Une classe qui ne peut pas être instanciée.
– Utilisée exclusivement pour l’héritage.
– Représentée graphiquement par nom en italique.

 Une interface est :


– Une classe qui n’a pas d’implémentation, autrement dit toutes
ses méthodes sont abstraites.
– Représentée graphiquement par le stéréotype « interface »
précédant son nom.

Chapitre 2 – UML 41
Exemple de casse abstraite et
d’interface

Chapitre 2 – UML 42
Notation alternative pour les interfaces

Chapitre 2 – UML 43
Notation alternative pour la relation de
réalisation d’une interface

Chapitre 2 – UML 44
Classe-association

 Une classe-association est :


– Utilisée pour modéliser une association comme une classe.
– Représentée graphiquement par une ligne en pointillés de
l’association vers le rectangle de la classe.

 Chaque lien de l’association est un objet de la classe-


association :
– Un lien est une instance d’une association.

 Une classe ne peut être rattachée qu’à une seule


association.

 Le nom de l’association est généralement omis.


Chapitre 2 – UML 45
Exemple de classe-association

Chapitre 2 – UML 46
Classe générique (template)

 Une classe générique est une classe qui prend en


paramètre un type.

Chapitre 2 – UML 47
Diagramme de paquetages

 Lorsque nous sommes en présence d’un système de grande


taille, il peut être intéressant de le décomposer en plusieurs
parties (appelées paquetages).
 Un paquetage est donc un regroupement de différents éléments
d’un système (regroupement de classes, cas d’utilisation, etc.).
Cela permet de clarifier le modèle en l’organisant.
 L’utilisation la plus courante de ce diagramme concerne le
regroupement de classes.
 Un paquetage est représenté graphiquement par un dossier
avec son nom à l’intérieur.

Chapitre 2 – UML 48
Représentation des paquetages

 Il est possible de représenter les éléments appartenant au


paquetage :
- à l’intérieur de celui-ci :

- ou à l’extérieur de celui-ci

Chapitre 2 – UML 49
Accès aux éléments d’un paquetage

 Un paquetage représente un espace de noms.


 Pour faire appel à un élément d’un paquetage, on indique le
nom du paquetage suivi de deux fois deux points (::) puis du
nom de l’élément.

Chapitre 2 – UML 50
Visibilité des éléments d’un paquetage

 Chaque élément d’un paquetage est soit :


 privé, c'est-à-dire encapsulé dans le paquetage et invisible à
l’extérieur de celui-ci. Un élément privé est désigné par un signe –
devant lui.
 public, c'est-à-dire visible et accessible de l’extérieur du paquetage.
Un élément public est désigné par un signe + devant lui.

 Remarque : Par défaut les éléments d’un paquetage sont publics.

Chapitre 2 – UML 51
Dépendance de type « import »

 Elle correspond à l’importation par un paquetage B de tous les


éléments publics d’un paquetage A . Ces éléments :
- auront la visibilité « public » dans le paquetage B (et seraient donc
aussi transmis à un paquetage C qui ferait une importation du
paquetage B ).
- seront accessibles au paquetage B sans avoir à utiliser explicitement le
nom du paquetage A.
 La dépendance de type « import » est représentée par une flèche
pointillée munie du stéréotype <<import>>

Chapitre 2 – UML 52
Dépendance de type « access »

 Elle correspond à l’importation par un paquetage B de tous les


éléments publics d’un paquetage A . Ces éléments :
- auront la visibilité « privé » dans le paquetage B (et ne pourraient
donc pas être transmis à un paquetage C qui ferait une importation du
paquetage B ).
- seront accessibles au paquetage B sans avoir à utiliser explicitement le
nom du paquetage A.
 La dépendance de type « access» est représentée par une flèche
pointillée munie du stéréotype <<access>>

Chapitre 2 – UML 53
Dépendance de type « merge »

 Elle correspond à la fusion de 2 paquetages en un seul.

 La dépendance de type « merge » est représentée par une flèche


pointillée munie du stéréotype <<merge>>

Chapitre 2 – UML 54
Dépendance de type « use »

 Elle correspond à l’utilisation d’un paquetage des éléments publics


d’un autre paquetage sans avoir à les importer.

 La dépendance de type « use» est représentée par une flèche


pointillée (éventuellement munie du stéréotype <<use>> ).

Chapitre 2 – UML 55
Diagramme d’état-transition

 Diagramme comportemental.
 Le diagramme d’état-transition décrit le comportement interne
d’un objet par un automate à états finis.
 Pour un objet donné, ce diagramme indique :
• Les états possibles de l’objet.
• Les évènements auxquels réagit l’objet.
• Les transitions qu’il effectue.

 Les principaux éléments de ce diagramme sont : les états, les


transitions, les évènements, les conditions de garde, les actions
et les activités.

Chapitre 2 – UML 56
Etat

 Un diagramme d’états-transitions est un graphe orienté qui


représente un automate à états finis.
 Un objet ne peut être que dans un seul état à un instant donné.
 Un état dépend de l'état précédent et de l'événement survenu.
 Un état est représenté par un rectangle aux coins arrondis.

Lampe
+marque
+type
+puissance
+état = {allumée,éteinte}
+on()
+off()

Chapitre 2 – UML 57
Transition

 C'est le passage d'un état à un autre.


 Une transition peut porter le nom de l’événement qui l’a
déclenchée.
 Représenté par une flèche orientée de l'état source vers l'état
cible.

Chapitre 2 – UML 58
Evènement

 Fait (externe) survenu qui déclenche une transition (changement


d'état). Par exemple : messages qui peuvent être envoyés à
l’objet.
 Peut être réflexif et conduire au même état.
 Peut porter des données sous forme de paramètres.

Chapitre 2 – UML 59
Exemple

 Un lecteur CD simple est composé de :


 Un tiroir où l’on place les CD
 Une interface de contrôle avec trois boutons :
 Bouton Load : le tiroir se ferme s’il
était ouvert et il s’ouvre s’il était fermé ;
 Bouton Stop : le lecteur arrête la lecture.
S’il n’y a aucun CD, rien ne se produit ;
 Bouton Play : le lecteur lance la lecture
du CD. Si le tiroir est ouvert, le tiroir est
d’abord fermé avant de lancer la lecture.

Chapitre 2 – UML 60
Diagramme d’état-transition
Lecteur CD v1

Statechart

Chapitre 2 – UML 61
Etat initial et état final

 Pour indiquer le premier état actif quand l’objet est créé/initialisé,


il faut utiliser un état initial :
 Une transition au depart de l’état initial indique le premier état actif.
 Aucun événement ne doit être écrit sur la transition émanant de l’état initial.
 L’état initial est représenté par un disque noir.

 Pour indiquer la fin de vie d’un objet, il faut utiliser un état final :
 Représente la fin du flux, c’est-à-dire l’objet n’existe plus.
 Peut correspondre à la destruction de l’objet logiciel.
 L’état final est représenté par un disque noir entouré par un cercle.

Chapitre 2 – UML 62
Diagramme d’état-transition
Lecteur CD v2

Etat initial:
Lecteur CD
allumé

Etat final:
Lecteur CD
éteint

Statechart

Chapitre 2 – UML 63
Conditions de garde

 Lorsque le lecteur CD ne contient pas de CD, la lecture ne


devrait pas être lancée.
 Comportement correct : quand l’événement play est détecté, le
lecteur devrait rester dans l’état Closed.

Cette
transition
concerne le
Cette présence d’un
transition CD.
concerne la
non présence
d’un CD. Statechart

Chapitre 2 – UML 64
Conditions de garde (suite)

 Pour distinguer entre les deux transitions, il faut utiliser une


condition de garde.
 Une condition de garde est représentée par :
déclencheur [condition_garde]

 Si une transition possède une condition de garde, elle ne pourra


être déclenchée que si la condition est évaluée à vrai.
 SI toutes les conditions de garde sont évaluées à faux,
l’événement sera ignoré.
 Au maximum, il ne peut y avoir qu’une seule condition de garde
vraie (déterminisme).

Chapitre 2 – UML 65
Diagramme d’état-transition
Lecteur CD v3

Condition
de garde

Statechart

Chapitre 2 – UML 66
Action

 Un état peut avoir des actions qui se déclenchent. Une action est
une opération instantanée non interrompue.
 Une action peut être déclenchée de trois manières différentes :
 Par un événement
 En entrant dans l’état
 En quittant l’état

 Une action est représentée par :


déclencheur [condition_garde] / action

 Exemple : La fermeture du tiroir du lecteur CD lorsque


l’événement play est détecté et que le lecteur se trouve dans
l’état Open.
Chapitre 2 – UML 67
Diagramme d’état-transition
Lecteur CD v4

Statechart

Action
déclenchée par
un événement
Chapitre 2 – UML 68
Action : Entrée/Sortie d’un état

 Une action peut être déclenchée à l’entrée de l’état.

 Cela peut être utile pour exécuter des actions indépendamment


de l’événement ayant conduit à l’état.

 Ce type d’action est représenté par entry/action.

 De manière similaire une action peut être déclenchée juste avant


de quitter l’état.

 Ce type d’action est représenté par exit/action.

Chapitre 2 – UML 69
Diagramme d’état-transition
partiel du Lecteur CD

Action
déclenchée à
l’entrée de l’état

Action
déclenchée en
quittant l’état

Chapitre 2 – UML 70
Activité

 Une activité est une opération comme l’action mais :


 Elle est exécutée au cours d’un état
 Elle est exécutée pour une période longue
 Elle peut être interrompue par des événements

 Une activité est représentée par :


do/activité

 Exemple : La lecture d’une piste audio est une activité.

Chapitre 2 – UML 71
Lecteur CD : exemple d’activité

Activité exécutée au
cours de l’état
Playing.

Statechart (Partial)

Chapitre 2 – UML 72
Transition interne

 Il y a des transitions qui laissent l’objet dans le même état mais


ne déclenchent pas les actions d’entrée et de sortie d’état.
 Une auto-transition n’est pas appropriée pour représenter ce
type de transitions.
 Pour ce type de transitions, on utilise une transition interne.
 Une transition interne est représentée par :
événement/action
 Exemple : Supposons que l’on rajoute un bouton info au lecteur
de CD permettant d’afficher la durée restante de la piste en
cours de lecture.
Chapitre 2 – UML 73
Lecteur CD : exemple de transition
interne

 Quelle est la différence entre les deux modélisations suivantes ?

Info /display time

Statechart – Self- transition(Partial) Statechart – Internal Transition (Partial)

Chapitre 2 – UML 74
Etat composite

 Les états ayant des comportements similaires peuvent être


regroupés en état composite pour simplifier le diagramme.

 Un état composite resemble à un état simple mais contient au


moins deux sous-états.

 Quand un état composite est actif, seulement un sous-état est


actif à la fois.
 Exemple : La réponse à l’événement play est la même pour les
états Closed et Open.

Chapitre 2 – UML 75
Lecteur CD : exemple d’état composite

Etat
composite

Transition
partagée par tous
les sou-états

Sous-état

Transition
spécifique à un
seul sous-état

Statechart

Chapitre 2 – UML 76
Point de choix

 Un point de choix permet de représenter des alternatives pour le


franchissement d’une transition.
 Un point de choix est représenté graphiquement par un losange.

Chapitre 2 – UML 77
Exercice

 Une serrure peut être fermée à simple ou à double tour.

1. Modéliser les états et transitions de la serrure. Mettre en avant


les états où la serrure est verrouillée par rapport aux états où
elle ne l’est pas.

Chapitre 2 – UML 78
Solution

Chapitre 2 – UML 79
Diagramme de composants

 Offre une vue de haut niveau de l’architecture du système.

 Utilisé pour décrire le système d’un point de vue


implémentation.

 Permet de décrire les composants d’un système et les


interactions entre ceux-ci.

 Illustre comment grouper concrètement et physiquement


les éléments (objets, interfaces, etc.) du système au sein
de modules qu’on appelle composants.

Chapitre 2 – UML 80
Notion de composant

 En UML, un composant est un élément logiciel


remplaçable et réutilisable qui fournit un service bien
précis.

 Il peut être vu comme "une pièce détachée" du logiciel.

 Exemple : le codec audio.


 Pour lire un fichier MP3, le lecteur VLC a besoin d’un codec MP3.
 Ce codec peut être utilisé par un autre logiciel de lecture audio.
 Ce codec peut être remplacé par un codec plus récent et plus
performant.

Chapitre 2 – UML 81
Le composant : un fournisseur de
service

 Les composants fournissent des services via des


interfaces.

 Un composant peut être remplacé par n’importe quel autre


composant compatible c'est-à-dire ayant les mêmes
interfaces.

 Un composant peut évoluer indépendamment des


applications ou des autres composants qui l’utilisent à
partir du moment où les interfaces sont respectées.

Chapitre 2 – UML 82
Notion d’interface

 Chaque composant est défini par une interface qui constitue


son seul moyen d’interagir avec les autres composants.
 L’utilisation d’une interface pour communiquer avec les autres
composants du système facilite la maintenance puisqu’on peut
alors en changer l’implémentation sans affecter les autres
composants (induit un couplage plus faible du composant avec
le reste du système).
 Il existe deux types d’interfaces :
 Les interfaces requises : Ce sont des interfaces qui fournissent
un service au composant et dont il a besoin pour fonctionner.
 Les interfaces fournies : Ce sont des interfaces par lesquelles le
composant fournit lui-même un service.

Chapitre 2 – UML 83
Représentation graphique d’un
composant

Chapitre 2 – UML 84
Représentation graphique des
interfaces

Chapitre 2 – UML 85
Notion de port

 Le port est le point de connexion entre le composant et son


environnement. Un port est la matérialisation de l’interface.
 Il est représenté par un petit carré à la périphérie du
composant.

Chapitre 2 – UML 86
Exemple de diagramme de composants

Chapitre 2 – UML 87
Diagramme de déploiement

 Ce diagramme représente l’architecture matérielle du système.


 Il décrit la disposition physique des différents nœuds
(processeurs) dans la composition d’un système et la répartition
des différents composants logiciels sur ces processeurs : il
décrit le mapping logiciel/matériel.
 Les principaux éléments de ce diagramme sont des nœuds
connectés par des liens de communication.
 Un nœud est quelque chose qui peut héberger des logiciels.
 Il existe deux types de nœuds : les dispositifs et les
environnements d’exécution.

Chapitre 2 – UML 88
Diagramme de déploiement (suite)

 Un dispositif est une ressource matérielle : un ordinateur ou un


élément matériel plus simple connecté à un système.
 Un environnement d'exécution est un logiciel qui héberge ou
contient un autre logiciel. Par exemple les systèmes
d’exploitation.
 Les nœuds contiennent des artefacts, qui sont les
manifestations physiques de logiciels, généralement des fichiers.
Ces fichiers peuvent être des exécutables (tels que des fichiers
.exe, binaires, DLL, JAR ou scripts), des fichiers de données, des
fichiers de configuration ou des documents HTML.
 Un nœud est représenté graphiquement par un cube.
 Les connexions entre nœuds sont représentées par des traits
annotés par le type de la connexion (http, jdbc, usb, etc.)
Chapitre 2 – UML 89
Exemples de nœuds

Chapitre 2 – UML 90
Exemple 1 de diagramme de déploiement

Chapitre 2 – UML 91
Exemple 2 de diagramme de déploiement

Chapitre 2 – UML 92

Vous aimerez peut-être aussi