2013-10-10 4 views
0

Si je suis modélisation dans un UML Object Diagram (également connu comme un « diagramme d'instance ») d'une classe Year qui a un champ qui est une liste de Month s, dois-je créer explicitement une boîte pour l'instance List ainsi? Pour moi, il semble, comme si je dessine des lignes reliant l'instance de Year aux 12 Month cas directement, je compte voir 12 champs sur Year comme month1, month2, etc.Dans un diagramme d'objets UML, comment représenter des relations à travers des listes/collections?

Si vousne connectez les directement, alors comment est-ce que vous dans le diagramme précisent que la relation n'est pas directe mais à travers une liste? Ou ce schéma est-il plus conceptuel et la nature précise de ces relations est-elle ambiguë?

tl; dr: Dans un diagramme d'objets UML, les collections comme les listes disposent-elles de leurs propres zones de connexion? Si non, comment représenter cela?

Répondre

2

En fait, vous devez d'abord déterminer votre diagramme de classes. Un diagramme d'objets dérivera alors naturellement.

Je représente le diagramme de classes ainsi:

diagram1

Et avec ce diagramme de classe, ce que vous vous dites pour un diagramme d'objets est correct (tracer des lignes reliant l'exemple de l'année au 12 mois instances) car chaque ligne de connexion est elle-même une instance de la flèche dans le diagramme de classes. (Dans la terminologie UML, un lien est une instance d'une association)

diagram2

Bien sûr, si vous diagramme de classes au lieu Expose juste un attribut months : List, la réponse sera différente. Mais cela ne semble pas approprié.

Note1: vous voyez dans mon diagramme de classes qu'il n'y a aucun indice qu'il s'agit réellement d'une liste. C'est parce qu'à mon avis c'est simplement un détail d'implémentation. Cela pourrait aussi bien être un tableau, par exemple, mais le point important est la multiplicité 12, ce qui signifie que c'est une valeur multiple.

Note2: ne vous inquiétez pas de ce que vous dites à propos de 12 champs dans l'année ckass, ce n'est pas le cas. Dans un diagramme d'objets, les valeurs de champ sont directement représentés dans l'instance de classe, comme attributs dans le diagramme de classes

Edit:

Si vous voulez faire la distinction tout à fait clair, vous pouvez nommer la pointe de flèche months pour chaque instance mensuelle, indiquant ainsi que tous correspondent à un champ unique du même mois. Ils seraient nommés month1, month2, ... dans l'autre cas. De la même manière, vous devez également nommer la pointe de la flèche dans le diagramme de classes.

+0

Eh bien, je ne suis pas concerné par l'affirmation que c'est spécifiquement une liste, mais plutôt qu'ils sont dans la collection par rapport aux champs individuels. Cette distinction est celle que je considère comme importante (mon cas réel est les permissions et les rôles, pas les mois, mais la même structure). – ArtB

+0

Si vous souhaitez que la distinction soit absolument claire, vous pouvez nommer la pointe de la flèche 'mois' pour chaque instance mensuelle, indiquant ainsi que tous correspondent à un même champ' mois' unique. Ils seraient nommés 'month1',' month2', ...dans l'autre cas. De la même manière, vous devez également nommer la pointe de la flèche dans le diagramme de classes. – Steph

+0

Voulez-vous ajouter cela à votre réponse et je vais accepter? (J'aime les réponses complètes sans avoir à fouiller dans les commentaires) – ArtB

Questions connexes