Поиск удобной нотации для отображения зависимостей объектов(Прочитано 23174 раз)
Некрокопания псто.
Группы изображаем как классы: Material, Method, Tool.
Соединяем их классом тернарной ассоциации Matches
Material-0..*---┓
Method-0..*---⃟-- -- --Matches
Tool-0..*-------┛
Чтобы были тройки вместо NULL заводим объекты-плейсходлеры undefined-material:Material, undefined-tool:Tool, undefined-method:Method.
Конкретные тройки связанных экземпляров рисуем на диаграмме объектов (есть лакуна в стандарте UML по части того, как должно рисовать тройки, соединённые экземпляром тернарной ассоциации). В книгах авторы просто повторяют то, что на диаграмме классов, полагая, что если экземпляр бинарной ассоциации выглядит также, как она сама, то это справедливо и для тернарной.

Нормальной онлайн-рисовалки, как выяснилось, нет.
« Последнее редактирование: 15 Июня 2022, 15:38:36 от [прилетело НЛО и...] »
[...и улетело НЛО.]



На диаграмме классов для тернарной ассоциации Matches надо как-то обозначить, что объектов-плейсходлеров в экземпляре тернарной ассоциации должно быть не более одного.



OCLь нам в помощь.)
[...и улетело НЛО.]



OCL вроде не поддерживает навигацию по тернарным ассоциациям.



OCL вроде не поддерживает навигацию по тернарным ассоциациям.
Поддерживает, но кривую. Другими словами, не поддерживает _должным_ образом_, на мой взгляд.
ОК. Дефект исправляем. Превращаем тернарную ассоциацию в класс тернарной ассоциации. Для него есть allInstances() и доступ ко всем концам.
Нашёлся ещё такой файлик, проясняющий по N-арным ассоциациям и OCL.
https://www.eclipse.org/forums/index.php?t=getfile&id=25690
(у меня скачался по VPN)
Там же дан другой рефакторинг решения -- материализация связи.
[...и улетело НЛО.]




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19