2010-10-18 3 views
0

Вот пример того, что представляет собой Arc Exclusivity Arc (зеленая дуга); что это говорит о том, что у самолета могут быть либо гребные винты, либо реактивные двигатели, но не оба.Что такое Exclusivity Arc, названная в UML

В Баркере ER нотации, исключение ограничения на два или более ролей показан, как «исключительные» дуги соединены с ролями с маленькой точкой или окружности.

Кстати, можете ли вы иметь их в DDD? (Я предполагаю, что вы можете, если они являются частью UML).

Edit - мой вопрос вокруг DDD иша немного вводит в заблуждение, и я положил его InAs запоздалая мысль, но @sfinnies ответ возникает еще один правильный вопрос, который я задам отдельно (после некоторых исследований).

alt text

ответ

1

Не уверен, что вы подразумеваете под "поддерживается DDD"?

DDD не предоставляет язык моделирования: это комбинация метода (как атаковать проблему) и архитектуры (как структурировать ваше приложение).

Вы выражаете бизнес-правило: самолет может иметь либо реактивные двигатели, либо пропеллерные двигатели, но не оба.

Это допустимое ограничение от Домена, по-видимому, оно имеет отношение к вашему приложению, и поэтому оно должно быть записано в логике домена. Так что с этой точки зрения да, это поддерживается DDD.

Как вы, , реализуете, это будет зависеть частично от вашего выбора языка, но я бы предположил, что Plane будет корнем Aggregate и поэтому несут ответственность за обеспечение того, чтобы ограничение было выполнено. DDD говорит, что в качестве ограничения домена он должен быть зафиксирован в вашей логике домена: не какой-либо другой архитектурный уровень.

hth

+0

Спасибо, sfinnie. Я задавался вопросом, как DDD занимается формулированием такого рода ограничений, но это скорее побочный вопрос. Мой основной вопрос заключается в следующем: в Data Modeling вы можете иметь «Exclusivity Arc» (в частности, в обозначениях Barker ER). Я просто хочу знать, имеет ли UML эквивалент и что он называется. –

+0

Ahh - хорошо. Да, UML имеет эквивалент - ограничение xor. Нарисовано как пунктирная линия между (или между) взаимоисключающими классами. См. Рисунок 7.34 на стр. 61 спецификации суперструктуры UML (http://www.omg.org/spec/UML/2.3/Superstructure/PDF/). – sfinnie

+0

Спасибо sfinnie - ваш комментарий был тем, что запечатал «правильный ответ» :) –

Смежные вопросы