Первое замечание: диаграмма классов UML может представлять только типы предложений , но не конкретное предложение c, которое, однако, может быть представлено так называемым ' Диаграмма объектов '.
Как представить, что сделку совершают 2 разных человека: покупатель (ie пекарь A) и продавец (компания B)
You Вы уже представили это в своей диаграмме второго класса с ассоциациями между Buyer
/ Seller
и Transaction
, но так как вы также определили Buyer
и Seller
для формирования перекрывающейся сегментации Trader
, вы необходимо добавить ограничение "покупатель отличается от продавца" к вашему классу Transaction
.
Для полноты вы также должны добавить кратности на обоих концах этих двух ассоциаций "один ко многим" ("1") на конце Buyer
/ Seller
и "*" на конце Transaction
).
Как показать, что кто-то (ie пекарь А) может быть одновременно и покупателем (ie он покупает у B) и продавец (ie A продает хлеб покупателям)
Это уже возможно согласно вашей второй диаграмме, где каждые Buyer
и Seller
являются Trader
, и эта сегментация перекрывается (по умолчанию), и, следовательно, трейдер может быть покупателем. в одной транзакции и продавец в другой.