Diagrammes de paquetages
Visualiser, spécifier, construire et documenter de grands systèmes implique la manipulation d’un grand nombre de classes, interfaces, composantes, noeuds, diagrammes et autres éléments.
Il est donc utile de regrouper les éléments communs en paquetages afin de pouvoir les comprendre et les manipuler plus facilement.
Représentation
Un simple paquetage est représenté ainsi:
Il y a deux façons de représenter le contenu des paquetages:
À l’intérieur du paquetage | À l’aide de relations |
---|---|
Relations
Containment | Indique que le paquetage A contient l’élément B. | |
Import | Indique que le paquetage A importe les éléments du paquetage B. Donc, A aura accès au contenu de B. Cette relation est transitive, donc si A «import» B, alors tout paquetage qui importe A aura aussi accès aux éléments de B. | |
Access | Indique que le paquetage A importe les éléments du paquetage B avec une visibilité privée. Ainsi, cette relation n’est pas transitive; si A «access» B, alors un paquetage qui importe A n’aura pas accès aux éléments de B. | |
Merge | Indique que le paquetage A fusionne le paquetage B en fonction des règles suivantes:
|
Visibilité
Les éléments d’un paquetage peuvent être publics ou privés.
La visibilité publique indique que cet élément est utilisable en dehors du paquetage.
La visibilité privée indique le contraire : seulement les autres éléments du même paquetage peuvent utiliser l’élément privé.
Un élément public est indiqué par un signe plus. Un élément privé est indiqué par un signe moins.
Importer et accéder aux paquetages
Il est possible d’importer des éléments d’un paquetage à l’autre. Pour ce faire, il faut qu’un paquetage <<import>>
un autre paquetage, ce qui lui permettra d’accéder à toutes les classes de ce dernier. Par exemple:
Dans ce cas-ci, le PayrollSystem
pourra accéder aux classes présentes dans le paquetage EmployeeTimeSheet
.
Par défaut, les éléments importés sont publics, c’est-à-dire qu’ils peuvent être accédés par d’autres paquetages qui importeraient, dans notre cas, PayrollSystem
. Il est possible d’importer des éléments de manière privée avec l’annotation <<access>>
, c’est-à-dire qu’ils ne seront accessibles que par le paquetage qui les importe. Par exemple:
Fusionner les paquetages
L’UML offre la possibilité de fusionner des paquetages. Ce mécanisme plutôt complexe est rarement utilisé en industrie.
Vous pouvez trouver plus de détails sur ce sujet dans la section 3.4. Merging Packages du livre UML 2.0 in a Nutshell de Pilone et Pitman.
Exemple
Voici un exemple complet d’un diagramme de paquetages basé sur le cas d’étude PolyAuto.