Как смоделировать зависимости атрибутов между различными классами в диаграмме объектов UML? - PullRequest
0 голосов
/ 12 февраля 2019

В рамках визуализации различных частей системы я хотел бы точно показать зависимость между различными атрибутами.

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

Значения для класса <strong>Country</strong>:

  • Country1
  • Country2
  • Country2

Значения для класса <strong>Product</strong>:

  • Product1 ( доступно ТОЛЬКО для Country1)
  • Product2 ( доступно для Country1 И Country2)
  • Product3 ( доступно ТОЛЬКО для Country2)
  • Product4 ( доступно ТОЛЬКО для Country3)

Я читал о производных свойствах и ограничениях, как это может быть в моем случае.Также некоторые ссылки могут быть связаны с той же проблемой: https://softwareengineering.stackexchange.com/questions/386816/how-to-model-attribute-dependency-inside-one-class-in-uml-class-diagram

Но пока у меня нет рабочего решения.

В общих целях я попытался представить эти отношения абстрактноДиаграмма классов, но мне трудно сделать это с точными значениями этих классов в диаграмме объектов

Class diagram

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Просто используйте Association между Product и Country.Если вы хотите захватить атрибуты для каждой пары Продукт-Страна, такие как цена, упомянутая @Thomas, то AssociationClass является естественным выбором.

В экземплярах объектной диаграммы ассоциации (ссылки)могут быть показаны в виде линий.У вас будут линии между Country1 и Product1, а также Country2 и Product2 и Product3 ... Это можно использовать для иллюстрации структуры вашей системы и ее эволюции с течением времени.Чтобы действительно определить это, лучше подходят другие диаграммы.

Я не вижу, как могут помочь ограничения на Ассоциацию.Текстовые ограничения могут быть на некотором дополнительном Классе Selection.Начало ограничения может быть: context Selection: product = product1 implies country in (country1).Это не позволит позже добавить новые продукты.И ограничения, определенные связями между странами и продуктами, гораздо более читабельны.

0 голосов
/ 12 февраля 2019

Вы, скорее всего, смоделируете это как класс ассоциации:

enter image description here

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

Вы «можете» смоделировать это как ограничения на связь между Product и Country.Но я бы поспорил, что бизнесу это не понравится, поскольку он все конкретизирует при кодировании, в то время как бизнес ожидает здесь некоторой гибкости.

...