Diagrammes d'objets UML
Un diagramme de classes figé à un instant, avec de vraies valeurs à la place des types. La façon la moins coûteuse de savoir si le modèle que vous venez de tracer fonctionne vraiment.
6 min de lectureUML 2.5.123 sur 35
La réponse courte
- Un diagramme de classes dit ce qui est possible ; un diagramme d'objets dit ce qui est vrai à un instant, avec de vraies valeurs à la place des types.
- Le soulignement marque une instance. Le nom se lit instance : Classe, et chaque moitié peut disparaître - un simple deux-points en donne une anonyme.
- Un slot est un attribut portant une valeur concrète. Les slots sont ce qu'un diagramme d'objets possède au lieu des déclarations d'attributs typées.
- Dessinez-en un quand une multiplicité ou une auto-association paraît douteuse. Si aucun exemple licite ne se dessine, le diagramme de classes est faux.
01Ce qu'il montre#
Un diagramme d'objets est un instantané. Là où un diagramme de classesdit « un paiement a un montant et zéro ou plusieurs remboursements », un diagramme d'objets dit « cepaiement, à l'instant présent, porte sur 49.90 EUR et a un remboursement de 10.00 ».
Il emploie les mêmes formes qu'un diagramme de classes avec deux changements, et ces deux changements sont toute la notation :
- Le bandeau de nom se lit
nomInstance: NomClasseet est souligné. Chaque partie peut être omise -p1seul, ou: Paymentpour une instance anonyme - mais jamais le soulignement. C'est lui qui fait de la boîte un objet plutôt qu'une classe. - Les attributs deviennent des slots aux valeurs concrètes :
currency = EUR, pascurrency: Currency.
02Ce qui change par rapport à un diagramme de classes#
| Élément | Notation | Ce que cela signifie |
|---|---|---|
| Instance | bandeau de nom souligné | p1: Payment, : Payment, ou p1. Le soulignement est obligatoire. |
| Slot | nom = valeur | Un attribut avec une valeur réelle, pas un type déclaré. |
| Lien | trait simple | Une instance d'association. Porte un nom de rôle si c'est utile, mais jamais de multiplicité. |
| Pas d'opérations | omises | Les instances n'ont pas d'opérations propres - la classe en a. Le troisième compartiment n'est simplement pas utilisé. |
03Pourquoi s'en donner la peine#
Les diagrammes d'objets sont le diagramme UML le moins dessiné et l'un des plus utiles à la minute passée, parce qu'ils constituent un test d'un modèle de classes.
Prenez un diagramme de classes dont quelqu'un est sûr et essayez d'y placer une instance réaliste de chaque boîte. Trois choses arrivent immanquablement. Une multiplicité se révèle fausse - le 1 qui aurait dû être 0..1, découvert au moment où vous n'avez rien à y mettre. Une relation manquante apparaît, parce que deux objets qui doivent manifestement se référencer n'ont aucun trait entre eux. Et un attribut qui semblait correct en tant que type se révèle sans valeur sensée, ce qui signifie en général qu'il appartient à une autre classe.
Cela prend une dizaine de minutes et trouve des problèmes qui survivent à des mois de discussion au niveau abstrait. C'est la même raison pour laquelle écrire un seul cas de test trouve des problèmes de conception que la lecture de la conception ne trouve pas.
Le second usage est explicatif. Une structure récursive ou auto-référente - un arbre, un graphe, un composite - est réellement difficile à comprendre depuis un diagramme de classes, où elle est une boîte avec un trait qui boucle sur elle-même. Dessinée en cinq objets concrets reliés entre eux, elle devient évidente instantanément.
04Quand en dessiner un#
À utiliser quand
- Valider un diagramme de classes à partir duquel vous allez construire
- Expliquer une structure récursive ou auto-référente qu'un diagramme de classes obscurcit
- Documenter un cas délicat précis - la commande au paiement fractionné et à deux remboursements
- Préparer des jeux d'essai : un diagramme d'objets est une image de vos données de départ
Préférer autre chose quand
- En remplacement du diagramme de classes - il montre un cas, pas les règles
- La structure est plate et évidente
- Il en faudrait six pour couvrir les cas intéressants ; corrigez plutôt le modèle de classes
- La question porte sur le comportement dans le temps - prenez un diagramme de séquence
En une ligne chacun
- 01Un diagramme d'objets est un instant d'un diagramme de classes, avec de vraies valeurs.
- 02Le bandeau de nom souligné est la notation ; nom d'instance et nom de classe sont tous deux facultatifs, le soulignement non.
- 03Les slots contiennent des valeurs (currency = EUR), pas des types.
- 04Les liens ne portent jamais de multiplicité : un instantané montre ce qui est, pas ce qui pourrait être.
- 05Son meilleur usage est un test de dix minutes d'un modèle de classes à partir duquel vous allez construire.
05Questions fréquentes#
Quelle différence entre un diagramme d'objets et un diagramme de classes ?
Un diagramme de classes montre les types et ce qui est possible. Un diagramme d'objets montre un ensemble d'instances réelles à un instant, avec de vraies valeurs. Tout diagramme d'objets est un exemple d'un diagramme de classes, ce qui en fait le moyen le moins coûteux de vérifier si ce diagramme de classes tient.
Pourquoi les noms sont-ils soulignés dans un diagramme d'objets ?
Le soulignement est la marque d'instance en UML. Le compartiment de nom se lit nom d'instance, deux-points, nom de classe, souligné, et chaque moitié peut être omise : deux-points Commande est une instance anonyme, et un nom seul en est une dont le type est clair d'après le contexte.
Qu'est-ce qu'un slot en UML ?
Un attribut d'instance portant une valeur concrète, écrit attribut égale valeur. Les slots sont ce qu'un diagramme d'objets possède à la place des déclarations d'attributs typées d'un diagramme de classes.
Quand vaut-il la peine de dessiner un diagramme d'objets ?
Quand un diagramme de classes comporte des multiplicités ou une auto-association dont vous doutez. Le peupler de trois ou quatre instances réelles règle en général la discussion en une minute, et si vous ne pouvez pas dessiner d'exemple licite, le diagramme de classes est faux.
Dans cette série
- 01Qu'est-ce que UML ?
- 02Symboles UML
- 03Choisir un diagramme
- 04Diagrammes de classes
- 05Exemples de diagrammes de classes
- 06Dessiner un diagramme de classes
- 07Symboles du diagramme de classes
- 08Diagrammes de séquence
- 09Exemples de diagrammes de séquence
- 10Dessiner un diagramme de séquence
- 11Diagrammes de cas d'utilisation
- 12Exemples de cas d'utilisation
- 13Diagrammes d'activité
- 14Exemples d'activité
- 15Diagrammes états-transitions
- 16Exemples d'états-transitions
- 17Diagrammes de composants
- 18Exemples de composants
- 19Dessiner un diagramme de composants
- 20Symboles de composants
- 21Diagrammes de déploiement
- 22Exemples de déploiement
- 23Diagrammes d'objets
- 24Diagrammes de paquetages
- 25Diagrammes de structure composite
- 26Diagrammes de communication
- 27Séquence vs communication
- 28Diagrammes de temps
- 29Diagrammes globaux d'interaction
- 30Diagrammes de profil
- 31UML avec l'IA
- 32Exemple e-commerce
- 33Exemple bancaire
- 34Exemple microservices
- 35Exemple AWS
À lire aussi
Diagrammes de structure
Fondamentaux
Diagrammes de structure
Diagrammes de comportement
Diagrammes de comportement
Fondamentaux