Ассоциация UML против композиции и уровня детализации

Фактически, сделайте это парой любительских вопросов по UML! При создании диаграммы UML для моделирования некоторых концепций предметной области вы сталкиваетесь с концепцией предметной области, которая «содержит» некоторую информацию о другой концепции, Что лучше: оставить штамп / ссылку на этот объект или содержать всю сущность в самой модели? Имейте в виду, что это относится к созданию простой высокоуровневой модели - я уверен, что на этапе реализации все будет немного по-другому.

Например, какая из двух моделей ниже на самом деле правильная? Первый связан с композицией, где FlightBooking хранит весь Flight. Во втором случае FlightBooking просто ссылается на Flight.

http://imageshack.us/m/96/2227/flightiu.png

Во-вторых, при создании концепций предметной области UML-диаграммы высокого уровня, насколько подробно вы на самом деле собираетесь идти? Например, на приведенной ниже диаграмме полет может содержать сведения об отправке / пункте назначения в виде строк, или я мог бы смоделировать отдельные классы для этих концепций и создать взаимосвязь композиции. Что из двух рекомендуется?

http://imageshack.us/m/23/3395/flight2s.png

Также, и еще одна вещь, при моделировании вышеупомянутого, где Flight "удерживает" источник / пункт назначения как другой класс, а не строку, какой из двух способов является правильным способом моделирования этого? Я совершенно не понимаю, когда показывать ассоциацию, а когда - композицию.

20
задан Jeff Atwood 22 May 2011 в 11:15
поделиться