Archyno
UMLDiagrammes de structure

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.
Un diagramme d'objets UML. Une instance acme de Merchant est liée à une instance p1 de Payment, composée d'une instance m1 de Money contenant 49.90 EUR et liée à une instance r1 de Refund de 10.00. Chaque nom d'instance est souligné et chaque slot contient une valeur concrète.
Le même modèle de paiements que le diagramme de classes, à un instant donné. Les noms soulignés et les valeurs concrètes sont toute la différence.

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: NomClasse et est souligné. Chaque partie peut être omise - p1 seul, ou : Payment pour 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, pas currency: Currency.

02Ce qui change par rapport à un diagramme de classes#

ÉlémentNotationCe que cela signifie
Instancebandeau de nom soulignép1: Payment, : Payment, ou p1. Le soulignement est obligatoire.
Slotnom = valeurUn attribut avec une valeur réelle, pas un type déclaré.
Lientrait simpleUne instance d'association. Porte un nom de rôle si c'est utile, mais jamais de multiplicité.
Pas d'opérationsomisesLes 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

  1. 01Un diagramme d'objets est un instant d'un diagramme de classes, avec de vraies valeurs.
  2. 02Le bandeau de nom souligné est la notation ; nom d'instance et nom de classe sont tous deux facultatifs, le soulignement non.
  3. 03Les slots contiennent des valeurs (currency = EUR), pas des types.
  4. 04Les liens ne portent jamais de multiplicité : un instantané montre ce qui est, pas ce qui pourrait être.
  5. 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

À lire aussi

Tous les articles