Отношение использования - PullRequest
0 голосов
/ 05 ноября 2008

могут ли два варианта использования расширяться или включать друг друга одновременно? Расширение / включение B и B расширение / включение A

Ответы [ 7 ]

2 голосов
/ 05 ноября 2008

Я почти уверен, что ответ "НЕТ".

Вы только что описали цифровой эквивалент проблемы курицы и яйца.

Циркулярные ссылки [почти] всегда плохие вещи (тм). Единственное место, где я знаю, что это не должно быть ужасно, находится в контексте связанного списка, в котором каждая запись имеет указатель на другую своего собственного типа.

1 голос
/ 05 ноября 2008

Если (A включает / расширяет B, а B включает / расширяет A), тогда A = B

Признание того, что если A расширяет / включает B, то A > = B

0 голосов
/ 09 ноября 2008

«ДА» - проверил спецификацию.

Я только что прочитал раздел спецификации UML для вариантов использования: http://www.omg.org/spec/UML/2.1.2/Superstructure/PDF/ Не было никакого правила, которое могло бы помешать сделать то, что я мог найти. Многие люди могут концептуально иметь проблемы с этим, но это нормально, поскольку вы просто инстинктивно пытаетесь объективизировать или структурировать варианты использования логически. Варианты использования являются поведением (или набором) и не похожи на классы / «объекты». Мы не говорим об объектах Java.

Даже в Rational Software Modeler (IBM) допускается такая «круговая ссылка».

На практике и при попытке сопоставить это с Java или другими объектными языками это может не иметь смысла или запутывать.

0 голосов
/ 05 ноября 2008

ответ - нет. расширить и включить являются взаимоисключающими типами отношений. Скорее всего, варианты использования неправильно разобраны / разделены, или вы неправильно поняли определения отношений расширения / включения, или оба.

учитывая приведенный вами пример (к вашему сведению, вам лучше отредактировать вопрос, чем публиковать ответ, не отвечающий на исходный вопрос), я бы рискнул, что B расширяет A, а B расширяет C, поскольку в обоих случаях A и C дополнительный ремонт (случай B) может быть идентифицирован.

альтернативно, варианты использования A и C могут условно включать вариант использования B

от случая к случаю, я бы смоделировал это как «Работа на транспортном средстве», которая состоит из 2 вариантов использования, получения авторизации клиента и сервисного транспортного средства, где последний включает любой вид обслуживания или ремонта и требует выхода первого из них до начало работы. Понятие «дополнительный ремонт» - это еще один пример работы над транспортным средством.

но я не знаю полного контекста бизнеса, поэтому ваш пробег может отличаться; -)

РЕДАКТИРОВАТЬ: вы написали «но в этом случае: работа выполняется, и в ходе работы требуется дальнейшее разрешение», но я не понимаю, как это действительно имеет значение.

Первый шаг - устранить путаницу в том, что включает и расширяет. Попробуйте смоделировать каждый вариант использования полностью и независимо, а затем посмотрите на то, что обычно можно увидеть, оправдано ли включение / расширение

0 голосов
/ 05 ноября 2008

Это редко, но в общем случае нет ничего, что мешает сценариям использования включать / использовать друг друга.

0 голосов
/ 05 ноября 2008

ниже - вариант использования сценария для бизнес-использования (бизнес-моделирование), а не для использования в системе: ИСПОЛЬЗОВАНИЕ Случай А: Сервисный автомобиль Вариант использования B: авторизация дополнительного ремонта Вариант использования C: ремонт автомобиля

Дополнительный ремонт может быть выявлен во время первоначального ремонта. или ремонт может быть идентифицирован как новый ремонт во время обслуживания, в обоих случаях требуется авторизация клиента?

расширение B и B расширение C (авторизация и начало ремонта определены во время обслуживания)

C расширение B (разрешение на дополнительный ремонт, выявленное во время ремонта)

0 голосов
/ 05 ноября 2008

Вероятно, нет, хотя я уверен, что вы могли бы сделать это, если бы вы стали достаточно универсальными [и бесполезными]. У вас есть конкретный пример? В правилах всегда есть исключения, и мне было бы интересно их увидеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...