Académique Documents
Professionnel Documents
Culture Documents
Université de Nantes
1 Introduction
En UML, on peut regrouper des éléments en utilisant des paquetages. La plupart des langages
orientés objets utilisent un mécanisme analogue aux paquetages UML pour organiser les classes et
éviter les conflits de noms.
Les paquetages UML peuvent servir à organiser pratiquement n'importe quel élément UML: des
classes, des cas d'utilisation, des interfaces, des diagrammes, ... et même des paquetages imbriqués.
Les éléments contenus dans un paquetage doivent représenter un ensemble fortement cohérent. Ils
sont généralement de même nature et de même niveau sémantique. Généralement, il existe un seul
paquetage racine qui détient la totalité du modèle d'un système. Les diagrammes de paquetages font
partie de la vue de développement, qui s'intéresse à l'organisation des parties du système en modules
et paquetages.
En général, les AGL UML ne disposent pas d’une boîte à outils graphiques dédiée à ces
représentations comme c’est le cas pour les classes les diagrammes de cas d’utilisation et autres….
Comme les paquetages sont des structures de regroupement permettant d'organiser pratiquement
n'importe quel élément UML, leurs représentations formelles sont souvent réparties dans les différents
diagrammes d’un AGL.
2 Définition et contenu
En UML, un paquetage (package en anglais) est un mécanisme qui permet d’organiser des éléments
_____________________________________________________________________________ 1
Le Langage UML 2.0 Claude Belleil Université de Nantes
de modélisation en groupes.
pkg Paquetages
DAB
Sur le plan graphique, un paquetage est représenté par un rectangle avec un onglet sur le bord
supérieur gauche dans lequel se trouve le nom du paquetage. Il peut regrouper différents éléments
UML, qui peuvent être représentés à l'intérieur du paquetage ou à l'extérieur reliées par une ligne.
Dans l’exemple ci-dessous, le paquetage « DAB » regroupe les classes « Lecteur de carte » et
« Ecran »
pkg Paquetages
DAB
Lecteur de carte
Ecran
Actuellement, certains AGL 3 UML ne prennent pas en charge la notation de la figure ci-dessous.
1
Les paragraphes avec ce style (Courier New 8) sont des traductions d’extraits du document officiel de définition
du langage UML 2 dont vous trouverez la référence web ci-dessous.
2
http://www.omg.org/technology/documents/formal/uml.htm
3
StarUml !
_____________________________________________________________________________ 2
Le Langage UML 2.0 Claude Belleil Université de Nantes
Cependant, pratiquement tous les outils peuvent montrer l'appartenance d'une classe à un paquetage
en employant l'une des deux notations
pkg Paquetages
DAB
Lecteur de carte
Ecran
Dans ce langage UML, comme dans certain langage de développement, le mot clé <<package>>
placé au début d'une classe spécifie qu'elle se trouve dans le paquetage ainsi nommé. Pour indiquer
le paquetage auquel appartient une classe, la plupart des outils UML permettent de faire précéder le
nom de la classe du nom du paquetage auquel elle appartient.
pkg Paquetages
pkg Paquetages
Recherche
Indexation
_____________________________________________________________________________ 3
Le Langage UML 2.0 Claude Belleil Université de Nantes
3 Espace de noms
Les éléments d'un paquetage peuvent avoir une visibilité publique ou privée. Ceux ayant une visibilité
publique sont accessibles depuis l'extérieur du paquetage. Ceux ayant une visibilité privée ne sont
disponibles qu'aux autres éléments du paquetage. En UML, la modélisation de la visibilité se fait à
l'aide d'un signe plus (publique) ou moins (privée) placé devant le nom de l'élément, comme pour les
classes.
Une classe d'un paquetage a parfois besoin d'utiliser une classe d'un autre paquetage. Cela crée une
dépendance entre les paquetages : si un élément du paquetage A utilise un élément du paquetage B
alors le paquetage A dépend du paquetage B
pkg Paquetages
A B
Dans le cadre d’une modélisation constituée de quelques classes, il n’est pas indispensable
d'organiser ces classes en paquetages. A l’inverse, dès que le système présente un certain volume,
les paquetages apportent une structuration permettant de répartir le travail de développement entre
différentes équipes.
Par exemple, le code concernant l'interface homme-machine (ihm) peut appartenir à un paquetage
ihm Celui mettant en oeuvre les fonctionnalités de recherche peut appartenir à un paquetage
recherche et les utilitaires communs peuvent se trouver dans un paquetage utilitaires
_____________________________________________________________________________ 4
Le Langage UML 2.0 Claude Belleil Université de Nantes
Ainsi, il est plus facile de retrouver les classes lorsque qu’on examine le contenu d’une API complexe.
Par exemple, pour trouver une boîte de dialogue de l'ihm, on voit qu’il est nécessaire de chercher
dans le paquetage ihm
La plupart du temps, les développeurs travaillent dans leur propres paquetages. Ceux qui développent
le contenu du paquetage ihm ne modifient pas celui du paquetage recherche et vice versa. Tout le
monde peut utiliser des paquetages communs, comme utilitaires mais ils ne doivent pas être
modifiés à la légère car cela aurait un impact sur tous les développements. Outre l'organisation des
éléments, les paquetages peuvent remplir d'autres fonctions, comme le contrôle d'accès : il est
possible de déclarer des éléments privés à un paquetage afin d'empêcher qu'ils soient utilisés par
d'autres paquetages.
pkg Paquetages
Recherche
Utilitaires
Ihm
Sécurité
Compte Utilisateur
Les paquetages peuvent aussi servir à organiser les classes en modules de déploiement. Par
exemple, si on souhaite inclure des possibilités de recherche dans certains systèmes et pas dans
d'autres, il peut être nécessaire de décider d'inclure ou d'exclure le paquetage recherche dans leur
mise en oeuvre.
La bonne compréhension des dépendances entre les paquetages est indispensable à l'analyse de la
stabilité du système. En réalité, les diagrammes de paquetages d'UML sont le plus souvent employés
pour donner une vue d'ensemble des principaux paquetages du logiciel et de leurs dépendances.
5 Accéder et importer
Quand un paquetage importe un autre paquetage, les éléments du premier peuvent faire référence
aux éléments du second sans utiliser leur nom complet. Cette fonctionnalité est similaire au
mécanisme d'importation de java, grâce auquel une classe peut importer un paquetage et utiliser son
contenu sans préciser le nom du paquetage.
Dans une relation d'importation, le paquetage importé est appelé paquetage cible . Pour représenter
cette relation, tracez une flèche de dépendance partant du paquetage initial vers le paquetage cible et
marquée du stéréotype import
_____________________________________________________________________________ 5
Le Langage UML 2.0 Claude Belleil Université de Nantes
pkg Paquetages
Utilisateur
Sécurité
«import»
Un paquetage peut également importer un élément particulier d'un autre paquetage et non son
contenu complet. Une fois un paquetage importé, seuls ses éléments publics sont accessibles depuis
l'espace de noms du paquetage demandant l'importation.
Les éléments ne sont pas les seuls à avoir une visibilité. La relation d'importation peut elle aussi être
publique (par défaut) ou privée. L'importation publique (ou privée) signifie que tous les éléments
importés ont une visibilité publique (ou privée) au sein de l'espace de noms effectuant l'importation.
L'importation privée est représentée par le stéréotype «access». La différence entre «import» et
«access» apparaît lorsqu'un paquetage importe un paquetage qui en importe ou accède à d'autres.
Puisque les éléments importés ont une visibilité publique dans le paquetage effectuant l'importation,
ils suivent les importations successives, contrairement aux éléments accédés.
La figure ci-dessous illustre que le paquetage B importe C et accède à D. B voit donc les cléments
publics de C et de D. Puisque A importe B, A voit les éléments publics de B. A voit également les
éléments publics de C car C est importé publiquement dans B, mais A ne voit pas le contenu de D car
D est accédé privativement dans B.
pkg Paquetages
A B
C
«import» «import»
«access»
Les relations d'importation et d'accès peuvent être utilisées pour modéliser l'importation de classes
dans un espace de noms afin que les éléments de l'espace de noms effectuant l'importation puissent
faire référence à ceux de l'espace de noms cible sans employer son nom.
Des dépendances complexes entre paquetages peuvent conduire à des modélisations ambiguës. En
effet, une seule modification de l'un des paquetages peut provoquer le dysfonctionnement des
paquetages dépendants.
_____________________________________________________________________________ 6
Le Langage UML 2.0 Claude Belleil Université de Nantes
Si des dépendances présentent des cycles, il existe différentes manières, de les rompre. Aller dans le
sens de la stabilité signifie qu'un paquetage doit dépendre uniquement de paquetages plus stables
que lui-même. Un paquetage instable dépend de nombreux autres paquetages ; un partage stable
dépend de quelques paquetages. L'étude des diagrammes de paquetages peut aider à repérer des
problèmes de vulnérabilité de la modélisation provenant du fait que les paquetages au coeur du
système (comme ceux contenant les interfaces) dépendent de paquetages instables.
_____________________________________________________________________________ 7
Le Langage UML 2.0 Claude Belleil Université de Nantes
Index du texte :
1 Introduction....................................................................................................................................... 1
2 Définition et contenu......................................................................................................................... 1
3 Espace de noms............................................................................................................................... 4
4 Dépendance entre paquetages........................................................................................................ 4
5 Accéder et importer .......................................................................................................................... 5
_____________________________________________________________________________ 8
Le Langage UML 2.0 Claude Belleil Université de Nantes