Это зависит от того, что вы хотите представить.
Модель класса, которую вы уже используете, будет достаточна как модель логического домена , выражающая логические отношения между объектами в вашем домене.Это может быть не то, как вы реализуете свое программное обеспечение в коде точно, но это поможет вам (и другим) понять сущности и их взаимосвязи, не увязая в деталях реализации.На этом уровне у вашей диаграммы может быть несколько вариантов дизайна (например, сильная агрегация, возможно, является выбором дизайна, но это не так, как использование перечислений и ключей), но не так много и ничего, что действительно отвлекает от базовогологика.Во всяком случае, вы можете потерять некоторые варианты дизайна здесь и улучшить выражение логики.
Что вам также может понадобиться, это предоставить представление о том, как ОО-код реализован физически .Это будет дополнительная диаграмма классов, которая более точно показывает детали реализации.На этой диаграмме у вас будет гораздо больше вариантов дизайна - использовать коллекцию или нет для заказов (например, список или какой-либо другой класс типа коллекции), каковы ваши шаблоны доступа к данным (адаптеры, менеджеры,ОРМ и т. Д.).На этом уровне вы, скорее всего, потеряете сильную агрегированную нотацию, поскольку на этом уровне мы говорим о классах, ссылающихся друг на друга, которые проще всего обозначать с помощью базовых ассоциаций.Возможно, вы захотите использовать стрелки и / или точечные обозначения, чтобы указать конечное владение и ссылочные направления, чтобы было более понятно, каковы отношения между классами.
Итак, я думаю, что ваш вопрос - классический вопрос об уровняхабстракция в моделях и анализ против дизайна.Спасибо за вопрос!