Le langage UML 2.0 Diagramme de Paquetages

Documents pareils
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

McAfee Security-as-a-Service

Uniformiser la mise en forme du document. Accélère les mises à jour. Permets de générer des tables de matières automatiquement.

Styler un document sous OpenOffice 4.0

Créer votre propre modèle

Université de Bangui. Modélisons en UML

Manuel d utilisation NETexcom

GLPI Les entités. Dans l exemple ci-dessous, GLPI gère une structure répartie sur trois pays, eux-mêmes structurés par villes ou par région / villes.

Introduction à Eclipse

Utilisation de l'outil «Open Office TEXTE»

Utiliser Freemind à l'école

26 Centre de Sécurité et de

SOS Info: Traitement de textes. 1. Structurer un document. 2. Enregistrer un document

MANUEL TBI - STARBOARD

IFT2255 : Génie logiciel

Notice d utilisation

GUIDE DE DEMARRAGE RAPIDE:

Guide de démarrage rapide

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Avant-propos Certificats et provisioning profiles

UML (Paquetage) Unified Modeling Language

Utilisation du logiciel Epson Easy Interactive Tools

Exemples et tutoriels Version 7.5. Tutoriel de l'exemple Recrutement de personnel pour IBM Process Designer

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Architecture d'entreprise : Guide Pratique de l'architecture Logique

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Publipostage avec Calc

Exercice sur la planification de l élaboration d un programme TPMDidacticiel de MS Project pour la planification de projets

Sage CRM. 7.2 Guide de Portail Client

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus

Qu est ce qu une bibliothèque?

Edutab. gestion centralisée de tablettes Android

B-web V4 MANUEL D UTILISATION. Espace de travail. Clear2Pay Belgium SA B-web V4 Manuel d Utilisation: Espace de travail

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

1.1 L EXPLORATEUR WINDOWS

Générer du code à partir d une description de haut niveau

Chapitre 1 : Introduction aux bases de données

MEGA ITSM Accelerator. Guide de démarrage

Back up Server DOC-OEMSPP-S/6-BUS-FR-17/05/11

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Manuel d'utilisation Force.com

Tutoriel Adobe Acrobat Pro (version 9.0.0) Créer les fichiers PDF de la thèse. Service Commun de la Documentation Service des thèses

Edition de sites Jahia 6.6

Gestion de projets. avec. Microsoft Office PROJECT 2003

EXCEL Les tableaux croisés dynamiques

Annexe : La Programmation Informatique

2 Grad Info Soir Langage C++ Juin Projet BANQUE

7.0 Guide de la solution Portable sans fil

Java 7 Les fondamentaux du langage Java

Facebook. Pour une organisation ou une entreprise!

Guide pas à pas pour l'utilisation de la Console de gestion des stratégies de groupe

MEGA ITSM Accelerator. Guide de Démarrage

Premiers Pas en Programmation Objet : les Classes et les Objets

RTDS G3. Emmanuel Gaudin


L'évolution de VISUAL MESSAGE CENTER Architecture et intégration

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Connexion à SQL server

Présentation du PL/SQL

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Manuel utilisateur Netviewer one2one

Bureau Virtuel Lyon 2

OCL - Object Constraint Language

Ingénierie des Modèles. Méta-modélisation

Les diagrammes de modélisation

CommandCenter Génération 4

Prise en main rapide

Utilisation du module Scribe IMPORTATION DES COMPTES

Chapitre 8. Estimation de la valeur d un bien immobilier

Guide pour la réalisation d'un document avec Open Office Writer 2.2

Auguria_PCM Product & Combination Manager

Diagrammes de Package, de déploiement et de composants UML

Utiliser une tablette tactile Androïd

EndNote : outil de gestion bibliographique

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Transférer une licence AutoCAD monoposte

Mai Médiathèque «Les Trésors de Tolente»

Le module Supply Chain pour un fonctionnement en réseau

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

Didacticiel de mise à jour Web

Access 2007 FF Access FR FR Base

GUIDE Excel (version débutante) Version 2013

Logiciel libre, OpenMeetings permet de créer ou simplement de participer à des conférences en ligne.

Mon aide mémoire traitement de texte (Microsoft Word)

RM 4.0 RM 3.6 RM 3.5 RM 3.1 RM 3.0 RM 2.1 RM

Guide de configuration de SQL Server pour BusinessObjects Planning

Business Intelligence simple et efficace

Transcription:

Claude Belleil Université de Nantes Le langage UML 2.0 Diagramme de Paquetages 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

de modélisation en groupes. DAB Figure 1: Exemple de paquetage On peut accéder aux éléments qu il contient grâce aux noms qualifiés. La visibilité d un élément contenu dans un paquetage peut être spécifiée en mettant le signe + (visibilité publique) ou - (visibilité privée) devant le nom de l élément. Lorsque la visibilité n est pas spécifiée, un élément est visible en dehors du paquetage. ============================================================================ «Package 1» Règles de cohérence extraites du document de l OMG «UML2SuperStructure 2» Les éléments contenus dans les paquetages doivent être des PackageableElement [Règle dérivée du méta-modèle] Si un élément contenu dans un paquetage a une visibilité, alors cette visibilité est public ou private. [p.100] ============================================================================ 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» DAB Lecteur de carte Ecran Figure 2: Un paquetage contenant deux classes 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

Cependant, pratiquement tous les outils peuvent montrer l'appartenance d'une classe à un paquetage en employant l'une des deux notations DAB Lecteur de carte Ecran Figure 3: Un paquetage contenant deux classes (autre notation) 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. DAB::Lecteur de carte DAB::Ecran Figure 4: Deux classes préfixées du nom de leur paquetage Certains paquetages occupent parfois un espace important et si on souhaite montrer les classes incluses, ces paquetages conteneurs verront leur taille augmenter en conséquence. Pour pallier cette difficulté, il existe une autre notation plus simple à manipuler. On peut «aplatir» les paquetages imbriqués et les écrire sous la forme paquetagea::paquetage8::paquetagec Recherche Indexation Figure 5: Exemple d'emboîtement de paquetages 3

3 Espace de noms Le regroupement des classes en paquetages implique un travail rigoureux d organisation. Par exemple, pour utiliser une ArrayList dans un programme java, on doit indiquer que la classe ArrayList se trouve dans le paquetage java.util. En effet, les paquetages Java définissent leurs propres espaces de noms, ou contextes de nommage. Si un élément ne se trouve pas dans l'espace de noms courant, il faut indiquer son emplacement. De façon identique, un paquetage UML définit un espace de noms. Si un élément d'un paquetage veut utiliser un élément d'un autre paquetage, il est nécessaire de préciser où il se trouve. Pour indiquer le contexte d'un élément UML, on doit fournir le nom complet qui inclut le nom du paquetage et le nom de l'élément séparés par deux caractères deux-points, comme dans nomdepaquetage::nomdeclasse. Ainsi, si deux classes de même nom se trouvent dans des paquetages différents, leur nom complet permet de les distinguer. En revanche, dans un même espace de noms, chaque élément doit avoir un nom unique. Les classes du même paquetage font partie du même espace de noms. Elles peuvent faire référence les unes aux autres sans employer les noms complets. En UML, les éléments d'un paquetage imbriqué peuvent faire référence aux éléments du paquetage conteneur sans utiliser un nom complet. Cet accès automatique des éléments d'un paquetage imbriqué à ceux des paquetages conteneurs n'est pas disponible dans tous les langages d'implémentation. Par exemple, en java, si une classe du paquetage indexationutilise une classe du paquetage rechercheelle doit fournir une portée en utilisant son nom complet ou en important le paquetage recherche 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. 4 Dépendance entre paquetages 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 A B Figure 6: Dépendance entre deux paquetages 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 ihmcelui mettant en oeuvre les fonctionnalités de recherche peut appartenir à un paquetage rechercheet les utilitaires communs peuvent se trouver dans un paquetage utilitaires 4

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 ihmne modifient pas celui du paquetage rechercheet vice versa. Tout le monde peut utiliser des paquetages communs, comme utilitairesmais 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. Recherche Utilitaires Ihm Sécurité Compte Utilisateur Figure 7: Organisation de dépendances multiples 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 recherchedans 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

Utilisateur «import» Sécurité Figure 8: Une relation d'importation 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. A B C «import» «import» «access» D Figure 9: Relations successives "import" et "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

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

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 Index des figures : Figure 1: Exemple de paquetage... 2 Figure 2: Un paquetage contenant deux classes... 2 Figure 3: Un paquetage contenant deux classes (autre notation)... 3 Figure 4: Deux classes préfixées du nom de leur paquetage... 3 Figure 5: Exemple d'emboîtement de paquetages... 3 Figure 6: Dépendance entre deux paquetages... 4 Figure 7: Organisation de dépendances multiples... 5 Figure 8: Une relation d'importation... 6 Figure 9: Relations successives "import" et "access"... 6 8