Определение ассоциации в спецификации UML

Ассоциация определяет semantic relationship между классификаторами. Примерами ассоциации являются set of tuples relating instances of the classifiers, каждыйtuple value may appear at most once, Ассоциация представляет set of connections среди экземпляров классификаторов. Экземпляр Ассоциации - это Ссылка, которая являетсяtuple of Instances взяты из соответствующих классификаторов

Интересно, есть ли кто-нибудь, кто помогает мне понять каждое слово определения ассоциации, особенно выделенные? Потому что я читаю об этом из разных источников, но все они говорят одни и те же слова, но я хотел бы получить более подробное определение

1 ответ

Решение

семантические отношения

Это означает, что существует структурная связь между связанными вещами, которая возникает из проблемного пространства. Например: ассоциация Person owns Dog, В заявлении на лицензирование собаки это отношение является центральной концепцией; Приложение существует для управления связями между людьми и собаками. Это "семантические" отношения, потому что они имеют значение, которое происходит из проблемного пространства.

набор кортежей, относящихся к экземплярам классификаторов

Кортеж - это "упорядоченный набор элементов" ( википедия). Примером ассоциации Собаки Собственности может быть ("Fido", "Fred") где "Фидо" представляет собаку, а "Фред" человека. Ассоциация может быть представлена ​​как набор кортежей в том смысле, что для каждой комбинации Dog и Person существует один кортеж, для которого выполняется отношение; например

[("Fido", "Fred"), ("Angel", "Chuck Norris"), ("Boatswain", "Lord Byron")]

Обратите внимание, что нет пар для пар, где отношения не сохраняются; например ("Fido", "Lord Byron"),

каждое значение кортежа может появляться не более одного раза

Невозможно, чтобы набор содержал дубликаты, так как это просто повторяет одно и то же дважды. Так что нет смысла добавлять ("Fido", "Fred") снова к списку выше; мы уже знаем, что Фред владеет Фидо.

Ассоциация представляет собой набор связей между экземплярами классификаторов

Это просто еще один способ думать об отношениях. Для каждого кортежа в наборе вы можете подумать о связи или связи между связанными объектами.

Экземпляр Ассоциации - это Ссылка, которая является кортежем Экземпляров.

Смотри выше. Каждый кортеж представляет одну связанную пару объектов. Ссылки на ассоциации, как объекты на классы. У классов есть много объектов; Ассоциации имеют много ссылок.

Фундаментальные ассоциации существуют, чтобы показать, где вещи систематически связаны с другими вещами. Кортежи и наборы - это способ думать и / или представлять эти связанные вещи. (На самом деле, я бы немного сошлся с определением в вашем OP: ссылки в ассоциации могут быть представлены в виде набора кортежей: но это не то, чем они являются, а то, как они моделируются. Та же информация может быть в равной степени смоделирован графом, где каждый объект был представлен вершиной (узлом), а каждая ассоциация - ребром.

НТН.

РЕДАКТИРОВАТЬ:

Отвечая на ваши вопросы. Похоже, вы понимаете это довольно хорошо; некоторые наблюдения.

Во-первых, вот как я бы смоделировал это:

Теперь к каждому из ваших пунктов:

Имя: имя ассоциации (необязательно, можете ли вы дать ему имя или нет)

Я предпочитаю глагол, основанный на именовании, так как он выявляет смысл отношений. Моя модель может быть прочитана непосредственно как:

  • Каждый человек имеет много собак (где "много" означает 0 или более)
  • Каждая собака принадлежит ровно одному человеку

Это устраняет необходимость в явном названии ассоциации, хотя вы все равно можете сделать это, если хотите.

видимость (меня это не волнует, по крайней мере сейчас, я не осознавал его важность до сих пор).

Я бы согласился. Лично я никогда не аннотирую модели с наглядностью.

Имя: (здесь имя MemberEnd), поэтому я оставил его имя по умолчанию на скриншоте

Смотрите комментарий об именах ассоциаций выше. Я предпочитаю именование на основе глаголов, а не на основе ролей: "собственные" гораздо более явно описывают цель отношений, чем именование конца ассоциации "собака" или "собака".

владелец memberEnd [...]

Лично я этим не пользуюсь. Есть целый другой разговор об этом, который, я не верю, оказывает существенное влияние в большинстве случаев.

Судоходный [...]

Опять же, я не использую это лично. В действительности навигация должна быть основана на базовом поведении. Требуется ли навигация в одну сторону / в обе? Затем установите навигацию соответственно. Однако некоторые люди предпочитают указывать это явно, исходя из этого, это делает реализацию более понятной (если только с возможностью навигации это можно реализовать с помощью ссылок (ссылок) только в одном классе; если двунаправленный, ему нужны ссылки в обоих направлениях - с сопутствующей логикой чтобы все было согласованно).

множественность

Я согласен с вашим выбором.

Надеюсь, это поможет.

Другие вопросы по тегам