|
|
@@ -0,0 +1,72 @@
|
|
|
+# UML. Спецификация вариантов использования (прецедентов)
|
|
|
+
|
|
|
+Дальнейшее развитие модели поведения системы предполагает описание прецедентов. Типичное описание содержит следующие разделы:
|
|
|
+
|
|
|
+* Имя прецедента
|
|
|
+* Идентификатор прецедента (встречается не всегда)
|
|
|
+* Краткое описание;
|
|
|
+* Участвующие субъекты (акторы, иногда разделяются на основных и второстепенных);
|
|
|
+* Предусловия, необходимые для инициирования прецедента;
|
|
|
+* Основной поток событий;
|
|
|
+* Альтернативный поток событий;
|
|
|
+* Постусловия, определяющие состояние системы, по достижении которого прецедент завершается.
|
|
|
+
|
|
|
+**Основной поток** описывает «идеальный» ход развития событий в прецеденте.
|
|
|
+
|
|
|
+**Альтернативные потоки** могут перехватывать ошибки, ответвления и прерывания основного потока.
|
|
|
+
|
|
|
+Основной поток *всегда начинается с действий главного актера*, направленных на инициацию прецедента.
|
|
|
+
|
|
|
+## Запись основного потока
|
|
|
+
|
|
|
+* Удачным способом начала потока можно считать следующую форму записи:
|
|
|
+
|
|
|
+ `Прецедент начинается, когда <актер> <действие>.`
|
|
|
+
|
|
|
+ Например, `Прецедент начинается, когда покупатель выбирает товар`
|
|
|
+
|
|
|
+* Каждый этап потока прецедента должен быть выражен в следующей форме:
|
|
|
+
|
|
|
+ `<номер> <ктолибо> <совершает некоторое действие>.`
|
|
|
+
|
|
|
+* Альтернативные потоки могут быть заменены с помощью ключевого слова **Если**
|
|
|
+
|
|
|
+ ```
|
|
|
+ 1. Прецедент начинается, когда Покупатель выбирает товар
|
|
|
+ 2. Если Покупатель выбирает товар у которого есть дополнительные товары
|
|
|
+ 2.1 Менеджер предлагает дополнительные товары
|
|
|
+ 3. Если Покупатель выбирает товар которого нет в наличии
|
|
|
+ 3.1 Менеджер предлагает оформить заказ
|
|
|
+ ```
|
|
|
+
|
|
|
+* Альтернативные потоки могут не возвращаться в основной поток после
|
|
|
+выполнения, т.к. обрабатывают ошибки, исключительные ситуации и т.п.
|
|
|
+
|
|
|
+* Для алтернативных потоков оформляется отдельная спецификация. Структура аналогична основной, только идентификатор следующего уровня (например, если у основного потока ID 2., то у альтернативного 2.1)
|
|
|
+
|
|
|
+В итоге должна получиться таблица (правая колонка, слева описание):
|
|
|
+
|
|
|
+ |
|
|
|
+--|------
|
|
|
+*Имя прецедента* | Прецедент: Выбор товара
|
|
|
+*Идентификатор прецедента* | ID 1
|
|
|
+*Краткое описание* | Краткое описание<br/>Покупатель выбирает товар в магазине автосервиса
|
|
|
+*Акторы, вовлеченные в прецедент* | Главные акторы:<br/>Покупатель<br/>Второстепенные акторы:<br/>Менеджер
|
|
|
+*Состояние системы на начало прецедента* | Предусловия:<br/>нет
|
|
|
+*Фактические этапы прецедента* | Основной поток:<br/>1. Прецедент начинается, когда Покупатель выбирает товар<br/>2. Если Покупатель выбирает товар у которого есть дополнительные товары<br/> 2.1 Менеджер предлагает дополнительные товары<br/> 3. Если Покупатель выбирает товар которого нет в наличии<br/> 3.1 Менеджер предлагает оформить заказ
|
|
|
+*Альтернативные потоки* | Альтернативные потоки:<br/>2.1 Менеджер предлагает дополнительные товары<br/>3.1 Менеджер предлагает оформить заказ
|
|
|
+*Состояние системы после окончания прецедента* | Постусловия<br/>1. Покупатель выбрал товар<br/>2. Покупатель отказался от покупки
|
|
|
+
|
|
|
+
|
|
|
+ |
|
|
|
+-|------
|
|
|
+ | Прецедент: Оформление заказа
|
|
|
+ | ID 2
|
|
|
+ | Краткое описание<br/>Покупатель оформляет заказ на товар, которого нет в наличии
|
|
|
+ | Главные акторы:<br/>Покупатель<br/>Второстепенные акторы:<br/>Менеджер
|
|
|
+ | Предусловия:<br/>Покупатель выбрал товар
|
|
|
+ | Основной поток:<br/>1. Прецедент начинается, когда Покупатель оформляет заказ<br/>2. Менеджер принимает заказ
|
|
|
+ | Альтернативные потоки:<br/>нет
|
|
|
+ | Постусловия:<br/>1. Покупатель оставил заказ
|
|
|
+
|
|
|
+
|