Метамодель UML для связей между диаграммами

до сих пор я всегда игнорировал метамодель UML, но теперь, когда я внимательно рассмотрел ее, у меня возник вопрос, на который нет ответа в имеющихся у меня стандартных книгах.

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

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

Пример:

  • На диаграмме классов я определяю, как я структурирую свой код. Это определяется метамоделью
  • На диаграмме развертывания я указываю, как развертывать артефакты на исполнительных узлах. Также определяется метамоделью
  • Но определяет ли метамодель также отношения, с помощью которых я могу указать, как мне получить артефакт (который я развертываю, возможно, файл .jar) из моего кода?

person rdmueller    schedule 09.02.2018    source источник


Ответы (2)


Диаграммы - это только вид на модель. Таким образом, вы можете показать любую произвольную часть вашей модели. Желательно создать несколько различных структурных диаграмм, объясняющих структуру вашей модели. Позже они были дополнены поведенческими диаграммами, которые показывают, как взаимодействуют определенные элементы.

tl;dr UML не предназначен для построения диаграмм.

person qwerty_so    schedule 09.02.2018
comment
Да, диаграммы — это представление модели, но связаны ли эти представления с моделью? Определяет ли метамодель эти связи между представлениями? - person rdmueller; 09.02.2018
comment
Диаграмма никоим образом не ограничивает модель. Вы можете удалить все диаграммы, и модель останется прежней. Диаграмма — это всего лишь окно, в которое можно заглянуть, чтобы помочь людям понять модель. Единственная семантика, которой он обладает, — это визуальное представление. - person qwerty_so; 09.02.2018
comment
хм. Я понимаю. Мне трудно выразить себя. Скажем так: у меня такое ощущение, что метамодель определяет острова — группы элементов, не связанных с другими элементами. Посмотрите мой пример — элемент артефакта как-то связан с элементом класса? Я знаю, что вы можете соединить их, но определяет ли метамодель осмысленную связь? - person rdmueller; 09.02.2018
comment
Вы бы использовали слабые соединители (например, Dependency, в конечном итоге украшенные стереотипом <<use>>) для таких вещей. Метамодель охватывает их. Для этих слабых соединителей не так много ограничений. - person qwerty_so; 09.02.2018

Да, метамодель объясняет, как могут быть связаны различные элементы модели. Сами диаграммы представляют поэтическую модель, и она также описана в метамодели. Хотя не всегда ясно показано, как на самом деле это представлять, например, каждая поведенческая модель представляет поведение чего-либо. То, что может иметь этот тип поведения, является частью метамодели.

Давайте рассмотрим конкретный пример. Рассмотрим конечный автомат. Метамодель определяет, какие элементы могут иметь конечные автоматы (например, класс). Итак, если у вас есть определенный класс, вы можете нарисовать диаграмму конечного автомата, принадлежащего этому классу. Как показать, что этот SM принадлежит этому классу, это отдельная история, но это также возможно с UML. Затем на конечном автомате у вас могут быть действия, которые в соответствии с метамоделью должны принадлежать одному и тому же классу и т. д.

Одно замечание - это распространяется на всю спецификацию. Но взгляните на определения таких элементов, как классификатор, поведение, конечный автомат и т. д. Вот где ваш ответ.

person Ister    schedule 09.02.2018