Диаграмма действий: повторное использование действия / действия с другим унаследованным типом потока объектов в качестве выходных данных

У меня есть вопрос о моделировании на диаграмме деятельности, который беспокоил меня в течение некоторого времени, и я не смог нигде найти ответы / соглашение.

Вот пример, чтобы лучше понять мой вопрос:

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

Вот диаграмма классов:  диаграмма классов того, что описано выше

На диаграмме деятельности я хочу изобразить действие по предоставлению людям жилья. это действие может принимать в качестве входных данных либо дом, либо квартиру (поэтому я думаю, что использование типа корпуса для входного контакта является правильным), а также неопределенное количество людей. Я хочу, чтобы это действие давало на выходе обновленный дом или квартиру (а не обновленное жилье, поскольку это означало бы, что информация, относящаяся к дому или квартире, будет потеряна. Я действительно не знаю, нужно ли мне создавать два действия (одно для дома и другой для квартир) или если есть способ повторно использовать действие для обоих классов и получить правильный результат.

Вот диаграмма активности:  Схема действий того, что описано выше

У меня вопрос: как представить на диаграмме действий действие, которое одинаково для разных типов потоков объектов в качестве входных данных и которое дает обновленный поток объектов в качестве выходных данных (которые, следовательно, могут быть разными тип)?

nb:

  • все типы потока объектов являются классами и наследуются от одного и того же другого класса.
  • Я представляю это в modelio, но сначала эта проблема возникла в Cameo.
  • Я стараюсь максимально соответствовать правилам языка UML.

person Mygntay    schedule 06.06.2021    source источник


Ответы (1)


Два потока (верхний объект и нижний элемент управления) в синей рамке могут остаться без изменений. Give flat floor начнется только тогда, когда получит Flat объект и отправлен токен управления. Чтобы сделать правильное действие необязательным, я бы просто использовал поток объектов, таким образом, срабатывая только при передаче объекта Flat. Этого было бы достаточно, и никакого дополнительного потока управления не требуется.

Чтобы прояснить ситуацию, я бы также добавил защищенный поток от действия Assign к выходу с чтением [ house was assigned ] или тому подобному.

person qwerty_so    schedule 06.06.2021
comment
спасибо за Ваш ответ! Камео по-прежнему считает, что такое использование типа для потока объектов (спуск по звену обобщения (от жилья к квартире)) некорректно (вызывает ошибку), но тогда эта ошибка больше связана с инструментом, верно? - person Mygntay; 10.06.2021
comment
Это не обобщение, а поток объектов. Камею не знаю (только по имени). Поток объектов не имеет ничего общего с обобщением. Но я подозреваю, что это проблема с инструментами. - person qwerty_so; 10.06.2021