Независимо от того, является ли тип атрибута перечислением, существует два способа представления атрибутов в UML: как надлежащие атрибуты и как направленные ассоциации.
Два стиля объявлений атрибутов семантически эквивалентны: они означают одно и то же. Другими словами, какой из них вы выберете, зависит от стиля.
Использование атрибутов упрощает диаграмму, а в некоторых инструментах требуется, чтобы атрибут был видим в древовидном представлении модели.
Использование направленных ассоциаций означает, что вы должны включить целевой тип (перечисление) в диаграмму, что означает, что вы можете видеть литералы. Конечно, вы можете включить его и в другом случае, как я сделал с An_Enum выше.
Я обычно не использую агрегаты или композиции для моделирования на уровне кода; Я чувствую, что они лучше подходят для описания более абстрактных отношений между классами (как в информационной модели), и концептуально они ничего не соответствуют в исходном коде. Атрибуты, возможно, дополняются отношениями «зависимость» или «использование» с классами, которые используются как типы локальных переменных или чьи методы вызываются.