свойства ParentID в дочернем элементе задается родитель. Но родитель именно в смысле project browser. Каково отражение отношения родитель-ребенок (project browser) в UML отношения
Я тоже задавался этим вопросом.
В смысле соответствия UML-ному стандарту,
я вижу интерпретацию связи родитель-ребенок в project browser EA только в контексте пакетов.
Пакеты - инструмент управления моделью. UML-модельер может, конечно-же,
построить иерархию пакетов в каком-то соответствии с моделируемой областью,
но стандарт UML даёт ему свободу от этого.
Пакетная структура может отражать, к примеру:
разбивку элементов модели по авторам,
версиям-апдейтам,
уровням моделирования,
типам диаграмм и т.д.
Так вот, интересно, что в ЭА роль пакета может исполнять и класс, и состояние, и активность, и Юзкейс похоже, любой элемент модели, изображение которого на диаграмме имеет вид фигуры с полощадью.
Как минимум, в контексте project browser-а.
Как-то мне по работе нужно было дать Заказчику диаграмму зависимости пространств имён в разрабатываемом .NET-приложении.
Получилось достаточно удачная диаграмма файлов-компонентов, в которых содержались пакеты-пространстваИмён. (Я использовал MagicDrowUML)
Мне очень понравилась конструкция с плавным переходом:
NameSpace.SubNameSpace.ClassName.ClassFunctionName()
Если NameSpace и SubNameSpace моделируем на диаграммах пакетами, то логично пойти дальше, и воспринимать и ClassName и ClassFunctionName тоже как в каком-то смысле, пакеты.
Например, диаграмму состояний (вместе с состояниями) можно сделать в project browser-е дочерней для соответствующего класса.
Диаграмму активности, детализирующую ЮзКейс, вместе с активностями - делаем дочерними самому Юзкейсу.
Я часто для удобства визуального поиска-просмотра в дереве браузера
- в одних местах повторяю дерево связей наследования,
- в других - дерево связей агрегации элементов модели.
В том и вся привлекательность этого дерева:
его можно строить и перестраивать,
повторяя какие-то логические структуры модели, не изменяя при этом саму модель.
Но не всё так красиво в ЭА.
Мы с Galogen-ом давно нарвались на обидный хомут:
Есть функция у класса, очень хочется активити-диаграмму с алгоритмом вычисления этой функции сделать дочерней...
Ан-нет :-( ЭА функцию в дереве показывает, а прицепить к ней дочерний элемент не даёт.
Ещё - ЭА не хочет цеплять пакет дочерним куда бы то ни было, кроме другого пакета.
Но самое страшное - это риск "полного съезда крыши" у ЭА,
как только начинаешь более-менее основательно перестраивать дерево браузера.