2011-04-29 3 views
1

Предположим, у меня есть случай использования купить книгу, а основной поток является следующее:Точка расширения - Пример использования

1- The user types the book code that he wants to buy 
2- The system replies that there's enough stock of the requested book 
3- The user confirm 

Очень просто.

Теперь предположим, что я хочу дать пользователю возможность сделать еще одну вещь между 2 и 3. Как я могу это сказать? Я предполагаю, что это расширение для этого варианта использования, но я не уверен, где это точка расширения.

Насколько я знаю, если я выбираю, скажем, точку расширения в 3, то у пользователя есть возможность сделать 3 или сделать все расширение, но не 3. Такое же поведение альтернативных потоков.

Но то, что я хочу, отличается. Я хочу немного «2,5» или ничего ... сделай это или ничего не сделаешь; не другое.

Прошу прощения за неопределенный вопрос.

+0

Случаи, подобные блок-схемам, не должны заканчиваться в одной и той же точке. Отделите его. – slandau

ответ

1

Одним из вариантов является формат рекомендуется в Алистер Кокберна Writing Effective Use Cases:

2a- User wants to do another thing: 
2a1- The user does another thing 
2a2- The system responds in some way, returns to step 3 

Шаг 2а происходит после шага 2 и до шага 3. Если UC заканчивается на этапе 2а2, то просто замените «возвращается к шагу 3» с «Использовать конец дела» или аналогичный.

hth.

+0

И где я размещаю «точку расширения» в исходном прецеденте ?. Или как это указано? – artu85

+0

вы этого не сделаете - вот в чем смысл. В оригинальном примере использования явно не указано, где он расширяется. В основном потоке вы фокусируетесь на главном сценарии успеха. Расширения добавляются ссылкой на идентификатор шага в основном сценарии, где они расширяют/изменяют поведение. – sfinnie

+0

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

0

Проблема заключается в различии между моделью использования в UML и описанием вариантов использования. Точка расширения - это концепция из UML, используемая для развязки расширенных и расширяющих вариантов использования. Если вы хотите придерживаться этого, вы должны определить позицию ветвления и вернуться обратно, потому что UML ничего не говорит о описаниях описаний использования. Я лично, как и sfinnie, поклонник подхода Алистера Кокбернса к использованию дел, однако он не очень хорошо соответствует стандарту UML. Существует еще один способ, предложенный Биттнером (книга моделирования моделей использования), который предлагает разделить сценарий на подтомы с заголовками.

+0

хорошо пункт. Спецификация UML создает впечатление, что «Extension Locations» должно быть явно определено в исходном примере использования. Однако «точка расширения» формально не указана. Из спецификации суперструктуры UML 2.3 (p608): «Концепция« места расширения »намеренно остается неопределенной». Поэтому можно утверждать, что схема Кокберна соответствует требованиям спецификации. В частности, каждый шаг Главного сценария является точкой расширения кандидата (обозначается номером шага). CTD ... – sfinnie

+0

... ctd. @ artu85: обычно я бы сказал, что не стоит слишком зацикливаться. Пойдите с чем-то, что работает для вас над чем-то, что полностью соответствует спецификации. @ Габриэлю стоит отметить, тем не менее: если вы находитесь в очень формальной среде (или выполняете домашнее задание!), Вам необходимо проверить, что схема Кокберна приемлема и/или документирует ваш подход вокруг точек расширения. НТН. – sfinnie

+0

@sfinnie: просто для добавления, схема Биттнера не имеет номеров шагов, она использует заголовки для подтонов, а не потому, что расширения связаны с этими заголовками (точками расширения), поэтому сценарий может быть изменен независимо (вы можете добавить или удалите шаги, не нарушая расширение), однако в схеме Кокберна изменение схемы может изменить номера шагов и, следовательно, сломать расширения ... но, как сказано, я поклонник Кокберна по многим другим причинам :) –

0

Я думаю, что вы действительно хотите, это альтернативный путь. Альтернативный путь ссылается на шаг в главном или в другом альтернативном пути. Обычно я делаю ссылку на начальный шаг в альтернативе. Затем шаг завершения - это либо ссылка на то, где он возвращается, либо указание, что путь останавливается.

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