Read this post in: de_DEen_USes_EShi_INid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Diagram de classe UML : Guide complet de référence

Class Diagram Sample


Introduction aux diagrammes de classes

Diagramme de classefournit une vue d’ensemble du système cible en décrivant les objets et les classes présents dans le système ainsi que les relations entre eux. Il offre une grande variété d’applications ; de la modélisation de la structure de données spécifique au domaine à la conception détaillée du système cible.

Principaux avantages :

  • Modélisation du domaine: Capturer les entités métiers et leurs relations

  • Conception du système: Définir l’architecture logicielle au niveau de la classe

  • Génération de code: Générer du code d’implémentation à partir des éléments du modèle

  • Documentation: Créer une documentation technique maintenable

  • Réutilisation du modèle: Partager les modèles de classes entre les diagrammes d’interaction pour la modélisation du comportement dynamique

  • Génération automatisée: Utiliser le diagramme de formulaire pour générer automatiquement des diagrammes avec une portée définie par l’utilisateur


Notations et éléments fondamentaux

Éléments structurels de base

Class Icon Classe

Class

Définition: Une classe décrit un ensemble d’objets partageant les mêmes spécifications en matière de fonctionnalités, de contraintes et de sémantique. Une classe est un type de classificateur dont les caractéristiques sont les attributs et les opérations.

Propriétés principales:

Propriété Description
Nom Le nom de la classe
Parent L’élément du modèle qui possède la classe
Visibilité Détermine l’apparence et l’accessibilité de l’espace de noms
Abstrait Si vrai, la classe ne peut pas être instanciée directement
Feuille Si vrai, la classe ne peut pas être davantage spécialisée
Racine Indique si la classe n’a pas d’ancêtres
Actif Détermine si les objets sont actifs (concurrents) ou passifs
Attributs Propriétés directes détenues par la classe
Opérations Fonctionnalités comportementales spécifiant les paramètres d’appel
Paramètres de modèle Paramètres formels pour le lien de modèle

Enumeration Icon Classe <>

Enumeration

Définition: Une forme de classe qui agit comme conteneur de littéraux d’énumération. Par exemple, une énumération Couleur contient des littéraux d’énumération rougevert, et bleu.


Interface Icon Classe <>

Interface

Définition: Une interface est un type de classificateur qui représente une déclaration d’un ensemble de fonctionnalités publiques cohérentes et d’obligations. Une interface spécifie un contrat ; toute instance d’un classificateur qui réalise l’interface doit remplir ce contrat.

Caractéristiques clés:

  • Les interfaces sont des déclarations et non instanciables

  • Implémentées par les instances de classificateurs instanciables

  • Un classificateur peut implémenter plusieurs interfaces

  • Peut inclure des contraintes et des spécifications de protocole


Primitive Icon Classe <>

Primitive

Définition: Une forme de classe qui représente un type de données prédéfini. Par exemple, une booléen classe (type).


Note Icon Note

Note

Définition: Une note (commentaire) permet d’attacher diverses remarques aux éléments. Un commentaire n’a pas de force sémantique, mais peut contenir des informations utiles pour un concepteur.


Constraint Icon Contrainte

Constraint

Définition: Une condition ou restriction exprimée en texte naturel ou dans un langage lisible par machine, dans le but de déclarer une partie des sémantiques d’un élément.

Propriétés:

Propriété Description
Nom Nom facultatif de la contrainte
Expression La condition qui doit être vraie pour être satisfaite
Documentation Description de la contrainte

Collaboration Icon Collaboration

Collaboration

Définition: Une collaboration est représentée comme un type de classificateur et définit un ensemble d’entités coopératives à jouer par des instances (ses rôles), ainsi qu’un ensemble de connecteurs qui définissent les voies de communication entre les instances participantes.


Model Icon Modèle

Définition: Un package de niveau supérieur qui contient l’ensemble du modèle ou une partie importante de celui-ci.


NARY Icon N-AIRE

Définition: Représente une association n-aire connectant plusieurs classificateurs simultanément.


Types de relations

Relations d’association

Association Icon Association (Sans agrégation)

Association

Définition: Une association spécifie une relation sémantique pouvant exister entre des instances typées. Elle possède au moins deux extrémités représentées par des propriétés, chacune étant connectée au type de l’extrémité.

Propriétés clés:

Propriété Description
Nom Le nom de l’association
Visibilité Apparence et accessibilité dans l’espace de nommage
Extrémité d’association À/De Source et cible de l’association
Abstrait Si vrai, l’association est incomplète et non instanciable
Feuille Si vrai, l’association ne peut pas être plus spécialisée
Déduit Spécifie si dérivé d’autres éléments de modèle

Aggregation Icon Agrégation (Association partagée)

Aggregation

Définition: Un type d’association dont l’une de ses extrémités est marquéepartagé comme une forme d’agrégation, ce qui signifie qu’il possède une agrégation partagée (relation tout-partie où les parties peuvent exister indépendamment).


Composition Icon Composition (association composite)

Composition

Définition: Une forme forte d’agrégation où une instance de partie ne peut être incluse dans au plus un composé à la fois. Si un composé est supprimé, ses parties sont normalement supprimées avec lui.

Caractéristiques principales:

  • Les parties ne peuvent pas appartenir à plusieurs composés simultanément

  • La suppression du composé supprime généralement ses parties

  • Les parties peuvent être supprimées avant la suppression du composé

  • Les compositions peuvent former des graphes acycliques orientés avec suppression transitive


Association Class Icon Classe d’association

Association Class

Définition: Un élément de modèle qui possède à la fois des propriétés d’association et de classe. Une Classe d’association peut être vue comme une association qui possède également des propriétés de classe, ou comme une classe qui possède également des propriétés d’association.

Ressource associéeDessiner une classe d’association


Relations de dépendance

Dependency Icon Dépendance

Dependency

Définition: Une relation qui indique qu’un élément ou un ensemble d’éléments de modèle nécessite d’autres éléments de modèle pour leur spécification ou leur implémentation.

Propriétés:

Propriété Description
Fournisseur Élément(s) indépendant(s) dans la relation
Client Élément(s) dépendant(s) dans la relation
Visibilité Apparence et accessibilité de l’espace de noms
Mappage Expression facultative indiquant la relation

Abstraction Icon Abstraction

Abstraction

Définition: Une relation qui lie deux éléments ou ensembles d’éléments représentant le même concept à des niveaux d’abstraction différents ou depuis des points de vue différents.


Realization Icon Réalisation

Realization

Définition: Une relation d’abstraction spécialisée entre deux ensembles d’éléments de modèle, l’un représentant une spécification (le fournisseur) et l’autre représentant une implémentation de ce dernier (le client).

Cas d’utilisation: Affinement progressif, optimisations, transformations, modèles, synthèse de modèles, composition de frameworks


Generalization Icon Généralisation

Generalization

Définition: Une relation taxonomique entre un classificateur plus général et un classificateur plus spécifique. Chaque instance du classificateur spécifique est également une instance indirecte du classificateur général.

Propriété clé:

Propriété Description
Remplaçable Si vrai, le classificateur spécifique peut remplacer le classificateur général à l’exécution

Usage Icon Utilisation

Usage

Définition: Une relation dans laquelle un élément nécessite un autre élément (ou un ensemble d’éléments) pour son implémentation ou son fonctionnement complets.


Access Icon Accès

Access

Définition: Un import d’élément défini comme une relation orientée entre un espace de noms d’importation et un élément packagable. Le nom de l’élément packagable ou son alias est ajouté à l’espace de noms de l’espace de noms d’importation.

Notation:

  • <<import>>mot-clé pour la visibilité publique

  • <<accès>>mot-clé pour la visibilité privée


Import Icon Importation

Import

Définition: Une importation de package est définie comme une relation orientée qui identifie un package dont les membres doivent être importés par un espace de noms.


Permission Icon Autorisation

Permission

Définition: Un type de dépendance qui accorde à un élément de modèle la permission d’accéder à des éléments dans un autre espace de noms.


Instantiation Icon Instanciation

Instantiation

Définition: Une dépendance d’utilisation entre des classificateurs indiquant que les opérations sur le client créent des instances du fournisseur.


Binding Icon Liaison

Binding

Définition: La liaison de modèle est une relation orientée depuis un élément modélisable lié vers la signature de modèle de la cible. Une liaison de modèle possède un ensemble de substitutions de paramètres de modèle.


Derive Icon Dériver

Derive

Définition: Spécifie une relation de dérivation entre des éléments de modèle qui sont généralement, mais pas nécessairement, du même type. Une dépendance dérivée indique que le client peut être calculé à partir du fournisseur.


Refine Icon Affiner

Refine

Définition: Spécifie une relation d’affinement entre des éléments de modèle à des niveaux sémantiques différents, tels que l’analyse et la conception.

Cas d’utilisation: Transformations de l’analyse à la conception, évolution du modèle


Trace Icon Traçabilité

Trace

Définition: Spécifie une relation de traçabilité entre des éléments de modèle ou des ensembles d’éléments de modèle qui représentent le même concept dans des modèles différents.

Utilisation principale: Suivi des exigences et des modifications à travers les modèles ; le mappage est généralement informel et bidirectionnel


Substitution Icon Substitution

Substitution

Définition: Une relation entre deux classificateurs qui signifie que le classificateur substitut respecte le contrat spécifié par le classificateur contractuel.

Implication: Les instances du classificateur de substitution sont substituables à l’exécution là où des instances du classificateur de contrat sont attendues.


Merge Icon Fusion

Merge

Définition: Une fusion de paquetage est une relation orientée entre deux paquetages qui indique que le contenu des deux paquetages doit être combiné.

Caractéristiques principales:

  • Similaire à la généralisation, mais pour le contenu des paquetages

  • Utilisé lorsque des éléments dans des paquetages différents représentent le même concept

  • Permet une extension progressive des concepts de base

  • Particulièrement utile dans la métamodélisation et la définition du métamodèle UML


Variantes de classe et stéréotypes

Classes spécifiques à l’ORM

ORM Persistable Icon Classe <>

ORM Persistable

Définition: Une forme spéciale de classe pouvant être utilisée pour modéliser un modèle objet d’une base de données relationnelle. Du code ORM peut être généré à partir d’un ensemble de classes ORM Persistable.

Propriétés supplémentaires:

Propriété Description
Détails de la classe ORM Paramètres affectant la génération du code ORM
Clé métier Utilisé pour générer les opérations equals() et hashCode()
Requête ORM Définir les qualificateurs ORM et les requêtes nommées

ORM Abstract Persistable Icon Classe <>

ORM Abstract Persistable

Définition: Une forme spéciale de classe qui capture les attributs communs des classes sous-ORM-Persistable.


ORM User Type Icon Classe <>

ORM User Type

Définition: Une classe de type utilisateur définit un type d’objet pour le modèle d’objet pouvant être accédé dans le code ORM généré, et persisté dans la base de données en tant que colonne au lieu d’une entité.

Ressource associéePrise en charge des types utilisateur Hibernate


ORM Parameterized Type Icon Classe <>

ORM Parameterized Type

Définition: Un type paramétré ORM vous permet d’assurer la cohérence des données en implémentant la vérification de cohérence dans le code ORM généré.


Entity Bean Icon Classe <>

Entity Bean

Définition: Une forme spéciale de classe pour modéliser un bean d’entité EJB.

Propriétés supplémentaires:

Propriété Description
Détails du code de la classe EJB Attributs liés à EJB pour la génération de code

Propriétés et configuration

Référence des propriétés de classe courantes

Propriété S’applique à Description
Nom Tous les éléments Identifiant de l’élément du modèle
Parent Classes, Interfaces Élément du modèle propriétaire
Visibilité La plupart des éléments Contrôle l’apparence de l’espace de noms :publicprivéprotégépaquet
Abstrait Classes, Associations Si vrai, l’élément est incomplet et non directement instanciable
Feuille Classes, Associations Si vrai, l’élément ne peut pas être davantage spécialisé
Racine Classes Indique si l’élément n’a pas d’ancêtres
Actif Classes Détermine si les objets sont actifs (concurrents) ou passifs
Modèle métier Classes Drapeau pour marquer comme une « classe métier »
Attributs Classes Propriétés directes détenues par la classe
Opérations Classes Fonctionnalités comportementales avec paramètres et contraintes
Paramètres de modèle Éléments modélisables Paramètres formels pour les éléments génériques/paramétrés
Dérivé Associations Spécifie si l’élément est dérivé d’autres éléments de modèle

Paramètres de génération de code

Configuration spécifique à Java

Configuration spécifique à l’ORM

  • Requête ORM: Définir des qualificateurs et des requêtes nommées pour les classes persistantes

  • Clé métier: Configurer les champs utilisés pour la génération des méthodes equals()/hashCode()

  • Mappage de colonne: Spécifier les noms et les types de colonnes de base de données


Types de diagrammes UML associés

Les diagrammes de classes s’intègrent aux autres diagrammes UML pour un modélisation système complète :

Type de diagramme Objectif Lien
Diagramme de cas d’utilisation Capturer les exigences fonctionnelles Diagramme de cas d’utilisation
Diagramme de séquence Modéliser les interactions dynamiques au fil du temps Diagramme de séquence
Diagramme de communication Montrer les interactions et les liens entre les objets Diagramme de communication
Diagramme d’états Modéliser le cycle de vie et les états des objets Diagramme d’états
Diagramme d’activité Représenter les flux de travail et les processus Diagramme d’activité
Diagramme de composant Montrer les composants logiciels physiques Diagramme de composant
Diagramme de déploiement Modéliser le déploiement du matériel et du logiciel Diagramme de déploiement
Diagramme de paquet Organiser les éléments du modèle en paquets Diagramme de paquet
Diagramme d’objet Montrer les instances à un moment donné Diagramme d’objet
Diagramme de structure composite Modéliser la structure interne des classificateurs Diagramme de structure composite
Diagramme de temporisation Se concentrer sur les contraintes de temporisation Diagramme de temporisation
Diagramme d’aperçu des interactions Combiner les diagrammes d’interaction et d’activité Diagramme d’aperçu des interactions

Liste de références

  1. Références des diagrammes principaux
  2. Diagramme de cas d’utilisation: Représentation visuelle de la fonctionnalité du système du point de vue de l’utilisateur, capturant les acteurs et leurs objectifs.

  3. Diagramme de séquence: Montre les interactions entre objets organisées selon une séquence temporelle, mettant l’accent sur l’ordre des messages.

  4. Diagramme de communication: Affiche les interactions entre objets avec un accent sur les relations structurelles entre les objets.

  5. Diagramme d’état-machine: Modélise le comportement dynamique d’un objet à travers ses états de cycle de vie et ses transitions.

  6. Diagramme d’activité: Représente les flux de travail, les processus métiers et les étapes opérationnelles avec un flux de contrôle.

  7. Diagramme de composant: Illustre les composants logiciels physiques, leurs interfaces et leurs dépendances.

  8. Diagramme de déploiement: Montre les nœuds matériels, les artefacts logiciels et leurs relations de déploiement.

  9. Diagramme de paquet: Organise les éléments du modèle en paquets hiérarchiques pour la modularité et la gestion des espaces de noms.

  10. Diagramme d’objet: Affiche les instances de classes et leurs liens à un instant donné.

  11. Diagramme de structure composite: Modélise la structure interne des classificateurs, y compris les parties, les ports et les connecteurs.

  12. Diagramme de temporisation: Se concentre sur les contraintes de temporisation et les changements d’état sur des intervalles de temps précis.

  13. Diagramme d’aperçu des interactions: Combine les diagrammes d’interaction avec la notation des diagrammes d’activité pour représenter le flux d’interaction au niveau élevé.

  14. Références de notation des diagrammes de classes
  15. Abstraction: Relation entre des éléments représentant le même concept à des niveaux d’abstraction différents.

  16. Accès: Relation d’importation d’élément contrôlant la visibilité des éléments packageables importés.

  17. Agrégation (association partagée): Relation tout-partie où les parties peuvent exister indépendamment du tout.

  18. Association (sans agrégation): Relation sémantique entre des instances typées ayant des extrémités navigables.

  19. Classe d’association: Élément de modèle combinant les propriétés d’association et de classe pour les attributs de relation.

  20. Liaison: Relation de liaison de modèle avec des substitutions de paramètres pour les éléments génériques.

  21. Classe: Classificateur central décrivant des objets ayant des fonctionnalités, attributs et opérations communs.

  22. Classe <>: Classe conteneur pour les littéraux d’énumération représentant des ensembles de valeurs fixes.

  23. Classe <>: Spécification de contrat déclarant les fonctionnalités publiques pour les classificateurs à implémenter.

  24. Classe <>: Classe de type de données prédéfini représentant les types de base du langage.

  25. Classe <>: Classe mappée sur une base de données prenant en charge la génération de code ORM et la persistance.

  26. Classe <>: Classe de base abstraite pour partager des attributs ORM communs entre des sous-classes persistantes.

  27. Classe <>: Type personnalisé persisté en tant que colonne de base de données plutôt que table d’entité.

  28. Classe <>: Type paramétré permettant la validation de la correction des données dans le code ORM.

  29. Classe <>: Classe de modèle d’entité EJB pour les applications Java d’entreprise.

  30. Collaboration: Classificateur définissant des rôles coopératifs et des voies de communication pour les instances interagissant.

  31. Composition (association composite): Relation forte tout-partie avec possession exclusive et suppression en cascade.

  32. Contrainte: Condition ou restriction déclarant le sens des éléments du modèle.

  33. Dépendance: Relation indiquant qu’un élément nécessite un autre pour sa spécification ou son implémentation.

  34. Dériver: Relation spécifiant qu’un élément client est calculable à partir de l’élément fournisseur.

  35. Généralisation: Relation d’héritage où un classificateur spécifique hérite des caractéristiques d’un classificateur général.

  36. Importation: Relation d’importation de paquetage rendant les membres du paquetage disponibles dans l’espace de nommage d’importation.

  37. Instanciation: Dépendance indiquant que les opérations du client créent des instances du classificateur fournisseur.

  38. Fusion: Fusion de paquetages combinant le contenu de deux paquetages pour une extension incrémentale des concepts.

  39. Modèle: Conteneur de niveau supérieur pour organiser les éléments du modèle et les paquetages.

  40. N-AIRE: Association n-aire connectant simultanément plusieurs classificateurs.

  41. Note: Élément de commentaire pour attacher des remarques non sémantiques aux éléments du modèle.

  42. Autorisation: Dépendance accordant une autorisation d’accès aux éléments d’un autre espace de nommage.

  43. Réalisations: Abstraction spécialisée où le client implémente la spécification définie par le fournisseur.

  44. Affiner: Relation entre des éléments de modèle à différents niveaux sémantiques, tels que l’analyse et la conception.

  45. Substitution: Relation indiquant qu’un classificateur de substitution respecte la spécification du classificateur de contrat.

  46. Traçabilité: Suivi des relations du même concept à travers différents modèles, principalement pour la gestion des exigences.

  47. Utilisation: Dépendance où l’élément client nécessite l’élément fournisseur pour une implémentation ou un fonctionnement complets.

  48. Tutoriels et références de ressources
  49. Dessin de classe d’association: Guide étape par étape pour créer des classes d’association dans Visual Paradigm.

  50. Générer et synchroniser le code Java: Tutoriel sur l’ingénierie bidirectionnelle entre les diagrammes de classes et l’implémentation Java.

  51. Prise en charge des types d’utilisateurs Hibernate: Ressource pour implémenter des types d’utilisateurs personnalisés Hibernate avec des classes ORM-Persistable.

  52. Référence aux normes
  53. Object Management Group – Langage de modélisation unifié: Source officielle de la spécification UML fournie par l’organisme normatif chargé de UML.

  54. Définition des notations est citée de Object Management Group Langage de modélisation unifié (OMG UML) Version Superstructure 2.2 et versions antérieures (pour les notations qui n’existent plus dans la spécification la plus récente).


  1. Ce guide est basé sur la documentation du diagramme de classes UML de Visual Paradigm. Pour les spécifications les plus récentes, reportez-vous toujours aux normes officielles OMG UML.