Главная / Программирование /
Язык UML 2 в анализе и проектировании программных систем и бизнес-процессов / Тест 2
Упражнение 1:
Номер 1
Какое определение диаграммы вариантов использования (use case diagram) является правильным?
Ответ:
(1) диаграмма вариантов использования визуализирует отношения между актерами и вариантами использования
(2) диаграмма вариантов использования визуализирует функции моделируемой системы.
(3) диаграмма вариантов использования визуализирует отношения между сотрудниками компании и разрабатываемой системой
Номер 2
Как изображается вариант использования (use case) в нотации UML 2?
Ответ:
(1)
(2)
(3)
Номер 3
Какое определение актера (actor) является правильным в UML 2?
Ответ:
(1) актер представляет собой человека-пользователя, который взаимодействует с системой и использует ее функциональные возможности для достижения некоторых целей или решения своих задач.
(2) актер – это любой сотрудник моделируемой системы, который выполняет определенные задачи и обеспечивает достижение системой заданных целей или функциональных возможностей.
(3) актер представляет собой любую внешнюю по отношению к моделируемой системе сущность, которая взаимодействует с системой и использует ее функциональные возможности для достижения определенных целей или решения частных задач .
Упражнение 2:
Номер 1
Как изображается актер (actor) в нотации UML 2?
Ответ:
(1)
(2)
(3)
Номер 2
Какое из высказываний справедливо применительно к отношению включения?
Ответ:
(1) отношение включения связывает актера с отдельным вариантом использования
(2) отношение включения связывает только два варианта использования
(3) отношение включения используется для изображения вложенности диаграмм вариантов использования друг в друга
Номер 3
Как изображается отношение включения в нотации UML 2?
Ответ:
(1)
(2)
(3)
Упражнение 3:
Номер 1
Какое из высказываний справедливо применительно к отношению расширения?
Ответ:
(1) отношение расширения связывает актера с отдельным вариантом использования
(2) отношение расширения связывает только два варианта использования
(3) отношение расширения связывает отдельных актеров между собой
Номер 2
Как изображается отношение расширения в нотации UML 2?
Ответ:
(1)
(2)
(3)
Номер 3
Выберите правильное окончание следующей фразы: "Ассоциация на диаграмме вариантов использования связывает…"
Ответ:
(1) «…отдельного актера с некоторым вариантом использования»
(2) «…отдельных актеров между собой»
(3) «…отдельные варианты использования между собой»
Упражнение 4:
Номер 1
Как изображается отношение ассоциации в нотации UML 2?
Ответ:
(1)
(2)
(3)
Номер 2
Какие из высказываний справедливы применительно к отношению обобщения?
Ответ:
(1) отношение обобщения может связывать актера с отдельным вариантом использования
(2) отношение обобщения может связывать два варианта использования
(3) отношение обобщения может связывать отдельных актеров между собой
Номер 3
Как изображается отношение обобщения в нотации UML 2?
Ответ:
(1)
(2)
(3)
Упражнение 5:
Номер 1
Какое определение сценария (scenario) является правильным?
Ответ:
(1) сценарий представляет собой требования к пользователю, который взаимодействует с моделируемой системой
(2) сценарий – это любой вариант использования, который обеспечивает достижение системой заданных целей или функциональных возможностей
(3) сценарий — определенная последовательность действий, которая описывает поведение актеров и моделируемой системы в форме обычного текста
Номер 2
Как изображается бизнес-актер (business actor) на диаграмме вариантов использования?
Ответ:
(1)
(2)
(3)
Номер 3
Какие разделы могут входить в шаблон сценария варианта использования?
Ответ:
(1) главный раздел
(2) типичный ход событий
(3) требования к интерфейсу пользователя
(4) рекомендации программистам
(5) исключения
Упражнение 6:
Номер 1
Выберите правильное окончание следующей фразы: "Типичный ход событий сценария варианта использования…"
Ответ:
(1) «…всегда выполняется системой в первую очередь»
(2) «…приводит к успешному выполнению варианта использования»
(3) «…выполняется системой автономно без взаимодействия с актером»
Номер 2
Как изображается бизнес-вариант использования (business use case) на диаграмме вариантов использования?
Ответ:
(1)
(2)
(3)
Номер 3
Выберите правильное окончание следующей фразы: "Исключение из типичного хода событий …"
Ответ:
(1) «…всегда выполняется системой в фоновом режиме»
(2) «…всегда приводит к успешному выполнению варианта использования»
(3) «…всегда требует спецификации дополнительных логических условий»
Упражнение 7:
Номер 1
Какие категории требований входят в классификацию требований модели FURPS+?
Ответ:
(1) структурные требования
(2) функциональные требования
(3) требования производительности
(4) требования ответственности пользователей
(5) требования надежности
Номер 2
Как изображается сотрудник (business worker) в нотации UML 2?
Ответ:
(1)
(2)
(3)
Номер 3
Каким образом могут быть представлены исключения из типичного хода событий на диаграмме вариантов использования?
Ответ:
(1) в форме примечаний
(2) в форме дополнительных актеров
(3) в форме дополнительных вариантов использования
(4) в форме вложенных диаграмм вариантов использования
Упражнение 8:
Номер 1
Какие дополнительные требования входят в классификацию требований модели FURPS+?
Ответ:
(1) требования написания сценариев
(2) проектные ограничения
(3) требования выполнения
(4) психологические требования
(5) физические требования
Номер 2
Какой графический символ служит для изображения примечания (note) в нотации UML 2?
Ответ:
(1)
(2)
(3)
Номер 3
Выберите правильное окончание следующей фразы: "При разработке диаграммы вариантов использования…"
Ответ:
(1) «…в первую очередь необходимо определить главных и второстепенных актеров»
(2) «…в первую очередь необходимо определить базовые классы моделируемой системы »
(3) «…в первую очередь необходимо определить варианты использования системы»
Тест
Какое определение диаграммы вариантов использования (use case diagram) является правильным?
(Отметьте один правильный вариант ответа.)
Вариант 1 диаграмма вариантов использования визуализирует отношения между актерами и вариантами использования
Вариант 2 диаграмма вариантов использования визуализирует отношения между сотрудниками компании и разрабатываемой системой
Вариант 3 диаграмма вариантов использования визуализирует функции моделируемой системы.
Как изображается отношение включения в нотации UML 2?
(Отметьте один правильный вариант ответа.)
Вариант 2
Вариант 3
Как изображается отношение расширения в нотации UML 2?
(Отметьте один правильный вариант ответа.)
Вариант 1
Вариант 2
Вариант 3
Какие из высказываний справедливы применительно к отношению обобщения?
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 отношение обобщения может связывать два варианта использования
Вариант 2 отношение обобщения может связывать отдельных актеров между собой
Вариант 3 отношение обобщения может связывать актера с отдельным вариантом использования
Какие разделы могут входить в шаблон сценария варианта использования?
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 главный раздел
Вариант 2 требования к интерфейсу пользователя
Вариант 3 рекомендации программистам
Вариант 4 исключения
Вариант 5 типичный ход событий
Выберите правильное окончание следующей фразы: «Типичный ход событий сценария варианта использования…»
(Отметьте один правильный вариант ответа.)
Вариант 1 «…приводит к успешному выполнению варианта использования»
Вариант 2 «…всегда выполняется системой в первую очередь»
Вариант 3 «…выполняется системой автономно без взаимодействия с актером»
Как изображается сотрудник (business worker) в нотации UML 2?
(Отметьте один правильный вариант ответа.)
Вариант 1
Вариант 2
Вариант 3
Какой графический символ служит для изображения примечания (note) в нотации UML 2?
(Отметьте один правильный вариант ответа.)
Вариант 1
Вариант 2
Вариант 3
Как изображается вариант использования (use case) в нотации UML 2?
(Отметьте один правильный вариант ответа.)
Вариант 1
Вариант 2
Вариант 3
Выберите правильное окончание следующей фразы: «Ассоциация на диаграмме вариантов использования связывает…»
(Отметьте один правильный вариант ответа.)
Вариант 1 «…отдельные варианты использования между собой»
Вариант 2 «…отдельного актера с некоторым вариантом использования»
Вариант 3 «…отдельных актеров между собой»
Как изображается отношение ассоциации в нотации UML 2?
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1
Вариант 2
Вариант 3
Как изображается бизнес-актер (business actor) на диаграмме вариантов использования?
(Отметьте один правильный вариант ответа.)
Вариант 1
Вариант 2
Вариант 3
Какие категории требований входят в классификацию требований модели FURPS+?
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 требования надежности
Вариант 2 структурные требования
Вариант 3 требования производительности
Вариант 4 функциональные требования
Вариант 5 требования ответственности пользователей
Табличные представления варианта использования
Иногда представляется удобным помещать
сценарии вариантов использования в
таблицу, как это показано ниже. Информация
при этом принимает более структурированный
вид.
Таблица 8.1. Таблица в 2 колонки: |
||
Актор |
Действие |
|
Пользователь |
Формирует запрос на |
|
Система |
Отображает список |
|
Пользователь |
Выбирает требуемый |
|
Система |
Показывает подробную |
|
Таблица 8.2. Таблица в 3 колонки: |
||
№ шага |
Пользователь |
Система |
1 |
Делает запрос на |
Отображает список |
2 |
Выбирает требуемый |
Показывает подробную |
Шаблон варианта использования rup
С шаблоном описания варианта
использования RUP и примерами можно
ознакомиться в интерактивной версии
RUP1).
Ниже приведен краткий обзор его разделов.
-
Наименования и краткое описание.В этом разделе указывается: наименование
варианта использования, акторы варианта
использования, краткое (в один абзац)
описание варианта использования. -
Поток событий
2.1. Основной
поток событий
Так же, как в «Основной сценарий».
2.2. Альтернативные
потоки событий
Каждый из альтернативных сценариев
описывается в отдельном параграфе, в
том же стиле, что и основной поток
событий. Альтернативные сценарии
описывают поведение системы при любых
отклонениях от основного сценария, а
также поведение в исключительных
ситуациях.
-
Специальные требования
Здесь перечисляются нефункциональные
требования, имеющие непосредственное
отношение именно к этому варианту
использования.
-
Предусловия
События, описываемые
предусловиями или постусловиями, должны
быть состояниями, которые пользователь
может наблюдать [8.3].
Предусловие описывает состояние, в
котором система должна находиться до
начала исполнения прецедента.
-
Постусловия
Постусловие RUP по сути
описывает то же, что и минимальная
гарантия у Коберна. Л.Новиков [8.3]
акцентирует внимание на том, что корректно
сформулированное постусловие должно
быть истинным при любом возможном
сценарии прецедента, а не описанном в
основном потоке.
-
Точки расширения
Данный параграф определяет положение
точек, расширяющих поток событий.
Выбор формы описания варианта использования
При выборе формы и степени подробности
варианта использования следует учитывать
такие факторы, как:
-
Размеры проекта,
-
Важность проекта и варианта использования,
-
Традиции, сложившиеся в коллективе
«Заказчик-Разработчик».
Для небольшого проекта вряд ли будет
целесообразным применять описания
вариантов использования в развернутом
формате, достаточно использовать краткую
форму свободного стиля. Для проекта, в
котором задействовано более десяти
участников, в котором возникают проблемы
разбиения на микро-коллективы, координации
участников, следует выбрать более
формализованный и более подробный
вариант.
Степень подробности зависит также от
критичности проекта в целом и критичности
варианта использования в данном проекте.
А.Коберн делит все программные проекты
по степени критичности на 4 категории:
исходя из цены ошибок: «проекты, ошибки
в которых могут привести к…»:
-
опасности для жизни людей,
-
невосполнимым финансовым потерям,
-
финансовым потерям в ограниченном
объеме, -
снижению комфортности конечного
пользователя.
Очевидно, что военные системы, либо
системы управления сложными техническими
объектами требуют более скрупулезного
документирования, в том числе — и на
уровне описания вариантов использования.
Кроме того, в одном и том же проекте
могут встречаться более важные — с
позиций частоты и массовости использования,
сложности для понимания, технических
рисков и т.д. и менее важные прецеденты.
В этом случае для разных прецедентов
одного и того же проекта вполне допустимо
описание с разной степенью подробности.
Наконец, спецификация
вариантов в стиле Коберна, стиле RUP, в
табличной форме, с использованием
псевдокодов или графических конструкций
(см. материалы лекции
9) во многом
определяется субъективным выбором
автора прецедентов и сложившимся опытом
работы с заказчиком проекта.
Соседние файлы в папке Лекции
- #
- #
- #
- #
- #
- #
Данная статья поможет молодым специалистам легко начать работу со сценариями использования.
Сценарии использования- это сценарий взаимодействия пользователя (или пользователей) с программным продуктом для достижения конкретной цели.
Цель: моделирование и проектирование взаимодействия пользователя с системой в рамках выполнения одного сценария. Пошаговое подробное взаимодействие пользователя с системой.
Документирование: таблица с описанием действий актора и реагирование системы на определенные шаги пользователя.
Один сценарий использования имеет несколько потоков: основной и альтернативные.
Выделение сценариев
Один сценарий использования должен описывать действия пользователя, которые приведут к одному большому действию- функционалу пользователя. Например, авторизоваться, добавить товар в корзину и тд.
Если мы имеем большой сценарий использования, необходимо выделить из него те части, которые мы можем вынести в отдельный самостоятельный сценарий, но в предусловии указать условия начала инициации данного сценария.
Каждый основной сценарий использования должен быть независимым от другого основного. Если есть определенные условия выполнения- указываем в “Предусловия”
Например, если нам необходимо описать авторизацию пользователя с вводом кода подтверждения, можно выделить отдельный сценарий “Ввод кода подтверждения”, чтобы не нагружать сценарий “Авторизация”. А уже в в сценарии “ввод кода подтверждения” подробно расписать условия ввода кода, повторной отправки, работу таймера повторной отправки, неверный код подтверждения, возможные ошибки.
Уровни описания и степени детализации
Сценарии использования могут быть описаны на абстрактном уровне (деловой сценарий использования, иногда называемый ключевым сценарием использования), или на системном уровне (системный сценарий использования). Различия между ними — в деталях.
-
Деловой сценарий использования не затрагивает технологий, рассматривает систему как «черный ящик» и описывает бизнес-процесс, который используется деловыми актерами (людьми, или системами, внешними к бизнесу) для достижения своих целей. Деловой сценарий использования описывает процесс, ценный для клиента, описывает что именно делает процесс.
-
Системный сценарий использования обычно описывается на уровне функций системы и определяет функцию или сервис, предоставляемые системой для пользователя. Системный сценарий использования описывает что актер может сделать взаимодействуя с системой. По этой причине рекомендуется, чтобы системные случаи использования началась с глагола (например, создайте ваучер, выберите платежи, отмените ваучер)
Степень формализма выполняемого проекта и стадия, на которой он находится, прямо влияют на степень детальности и проработанности вариантов использования. Определяют следующие степени детальности при написании вариантов использования:
-
Краткий (brief) вариант использования состоит (помимо названия) из одного-двух описательных предложений. Он хорош при сведении функциональных требований в таблицу при планировании приоритетности, технической сложности, номера версии продукта и т. д.
Краткая степень детальности применяется при начале работы над проектом; когда еще не прорабатываются детали, а верхнеуровнего описываются сценарии использования. Также, краткую степень детализации допустимо использовать при сжатых сроках написания ТЗ для кейсов с низким уровнем риска.
-
Детальный (detailed) вариант использования – это формальный документ с предопределённой структурой разделов; это, собственно, и есть Use case в его традиционном понимании.
Детальный уровень описания применяют при написании ТЗ. Преимущественно, при написании ТЗ все кейсы необходимо описывать на детальной степени; обязательно применять детальную степень и системный уровень при описании кейсов с высоким уровнем риска.
Структура сценария использования
Сценарии использования включают в себя следующие разделы:
-
Название. Краткое, максимально понятное. Описывающее общее действие пользователя.
Пример:
UC-1. Регистрация в личном кабинете
UC-2. Регистрация в программе лояльности
UC-3. Добавление товара в корзину
-
Предусловие. Формулировка условий, при которых данный вариант использования может быть инициирован. Условие, помимо прочего, может быть упоминанием о выполнении других вариантов использования. Также в предусловии необходимо указывать, в какой части системы находится пользователь, кратко- какие действия уже выполнил.
Пример: пользователь находится в “Корзине”, в “Корзине” добавлено 2 товара”.
Данное предусловие мы можем указать для описания кейса работы пользователя в “Корзине”. Если мы описываем кейс “Добавление товара в корзину” или “Оформление заказа”, где необходимо указать всю цепочку шагов пользователя- то данное предусловие не подойдет.
-
Основной сценарий. Сценарий – это последовательность шагов, описывающая процесс решения задачи, которой посвящен вариант использования. Шаги удобно последовательно нумеровать.
-
Альтернативные сценарии, в которых процесс развития событий на каком-либо шаге чем-либо заметно отличается от основного, то есть имеет место ветвление.
Сценарий использования должен отвечать на вопрос “Что делает пользователь?” “Что делает система?”
При описании сценария использования важно соблюдать пошаговый план действий пользователя, указывая физическое действие пользователя.
Например, формулировка “добавил товар в корзину” неверная.
Правильно: “нажимает на кнопку “Добавить товар в корзину” и далее- реакцию системы на действия пользователя.
Пользователь |
Система |
Какое физическое действие произвел пользователь? |
Как отреагировала система? |
Нажимает “Добавить в корзину” |
Система добавляет выбранный товар в корзину. В иконке “Корзина” система выводит маркер- кол-во добавленного товара в корзину. Изменяет кнопку “Добавить в корзину” у выбранного товара на кнопку “Перейти в корзину” |
Пользователь нажимает “перейти в корзину” |
Система переводит пользователя в корзину, где отображается добавленный товар. |
Альтернативные сценарии
При проработке основного сценария, все варианты действий пользователя и поведения системы, отличных от основного сценария необходимо выносить в альтернативный сценарий. То есть, везде, где можно указать “если”- это и будет альтернативный сценарий.
Важно! Альтернативный сценарий должен ссылаться только на один успешный сценарий. Недопустимо прописывать альтернативный сценарий для альтернативного сценария.
Рассмотрим на примере авторизации
Предусловие: неавторизованный пользователь находится на странице авторизации и регистрации
Пользователь |
Система |
Какое физическое действие произвел пользователь? |
Как отреагировала система? |
Пользователь нажал кнопку “Зарегистрироваться” |
Система вывела форму регистрации, поле “email” |
Пользователь вводит данные в поле “email” |
3. Система производит проверку введенных данных на валидацию. Данные проходят по условиям валидации Если данные не прошли проверку валидации, запускается альтернативный сценарий №1. |
Система производит поиск введенных данных “email” по учетным записям в системе. Учетных записей с такими данными “email” не найдено. Если в системе найдена учетная запись с таким логином, запускается альтернативный сценарий №2 |
|
Система отправляет пользователю код подтверждения на email Система выводит пользователю поле “код подтверждения” Сценарий “ввод кода подтверждения” вынесен в отдельный сценарий. — обязательно указываем, если какой-либо функционал выносим в отдельный кейс, более подробный. |
|
Пользователь вводит корректный код подтверждения в поле “код подтверждения” |
Система производит проверку кода подтверждения. Код введен верно. Пользователь зарегистрирован. Альтернативный сценарий с неверным кодом подтверждения выносим в сценарий “Ввод кода подтверждения” |
Пример альтернативного сценария
Альтернативный сценарий №1
На шаге №3 успешного сценария, введенные данные не прошли проверку валидации.
-
Система выводит информер с указанием запрещенных символов.
-
Пользователь вводит корректные данные в поле “email”.
Далее сценарий продолжается от шага №3 успешного сценария.
Сценарии использования являются важным и частым артефактом работы системных аналитиков. И я надеюсь, что данная статья немного облегчит жизнь молодой крови, только вступившей на долгий и тернистый путь системного анализа
Анна Вичугова | Анна Гасраталиева
Алгоритм описания функциональных требований к системе в формате Use Case
Существуют разные формы представления функциональных требований: пользовательская история (user story), каноническая форма с привязкой к CRUDL-операциям и модели данных (классический формат описания требований), а также описание сценариев использования (Use Case).
Use Case до сих пор является одной из самых популярных форм представления функциональных требований как среди российских компаний, так и за рубежом. Поэтому именно о них и пойдет речь в нашей статье.
В официальной литературе на русский язык Use Case принято переводить как вариант использования (сокращённо ВИ), хотя в разговорной речи и проектных документах достаточно часто употребляется ещё и транслитерация термина Use Case, то есть говорят и пишут юскейс.
В связке с понятием варианта использования идёт термин Use case scenario, который переводится как сценарий варианта использования или пользовательский сценарий.
Технически, разница есть, то есть Use case это не тоже самое, что Use case scenario. Например, «Купить Товар» — Use case, и у него есть Use case scenario (пошаговое описание того, как именно купить товар: 1. Выбрать товар, 2. Добавить в корзину, 3. Оплатить).
Однако в литературе и документации вы достаточно часто будете сталкиваться с тем, что и пошаговый сценарий тоже называют юскейсом. Так происходит потому, что сам по себе, без описания сценария, юскейс, как правило, мало кого интересует.
В этой статье мы будем придерживаться термина UC, иногда заменяя его на другие, чтобы упростить восприятие статьи читателем.
Итак, Use case (UC) — это популярная форма представления функциональных требований к ПО в виде пошагового сценария взаимодействия актора (пользователя или внешнего сервиса) с проектируемой системой, включая описание метаданных этого взаимодействия: области применения, предусловия, триггеры, постусловия, релевантные бизнес-правила и пр.
Давайте рассмотрим на примере, как описать UC и избежать ошибок в работе с этим методом.
Алгоритм описания функциональных требований к системе
Типовую последовательность разработки функциональных требований в форме UC можно представить следующим образом:
- Определить Акторов — тех, кто взаимодействует с системой
- Выявить и составить список UC — задач, которые стейкхолдеры смогут решить с помощью системы
- Для каждого юскейса определить приоритет — важность UC по отношению к другим вариантам использования
- Для каждого важного юскейса определить контекст применения, конечную цель и результат
- Описать основной поток каждого UC с высоким приоритетом в виде последовательности шагов, которая приведёт к достижению его цели — пользовательского сценария (use case scenario)
- Дополнить основной поток расширениями, исключениями и циклами
- Собрать воедино результаты шагов 4−6, детально описав каждый юскейс с высоким приоритетом как алгоритм взаимодействия пользователя с системой
Теперь давайте рассмотрим каждый шаг поподробнее.
1. Определить акторов, которые взаимодействуют с системой
Актором может быть несколько разных пользовательских ролей и/или внешние сервисы, которые будут интегрироваться с проектируемой системой, то есть получать из неё данные или вносить их в неё.
Например, если рассматривать мобильный телефон как систему, то актором будет человек — пользователь мобильного телефона. Результат этого шага можно оформить в виде таблицы или диаграммы ролей.
2. Для каждого актора составить список задач, которые он сможет решить с помощью системы
Мы советуем делать это в виде реестра юскейсов — единой таблицы, показывающей распределение юскейсов по акторам.
Рекомендуем называть UC в формате «Инфинитив + Объект», где «Инфинитив» — это инфинитив глагол в совершенного вида с большой буквы, а «Объект» — это существительное, обозначающее объект управления с большой буквы.
Из названия вариант использования должно быть сразу понятно, какую именно задачу пользователя он решает. Например, «Подписать Документ», «Оформить Заказ», «Оплатить Товар», «Сделать Звонок» и так далее.
Для повышения наглядности можно сделать это в табличном виде или UML-диаграммы вариантов использования (она же Use case diagram, диаграмма прецедентов).
Обычно для продуктов и проектов в сфере B2C исходные данные для этого извлекаются из изучения интересов, потребностей и пользовательского опыта людей (клиентов, экспертов предметной области) и конкурентного анализа, а также CJM-карты.
Для B2B-продуктов и проектов исходными данными для юскейсов, как правило, являются отраслевые и корпоративные регламенты, описание бизнес-процессов и запросы стейкхолдеров.
Давайте сформируем реестр юскейсов. Например, ранее для пользователя мобильного телефона мы определи функциональные возможности «Сделать звоноки» и «Отправить СМС». Они реализуют единую пользовательскую потребность: «Связаться с другим человеком», поэтому их можно объединить в один юскейс.
Юскейсы «Поиграть в казуальную Игру» и «Посмотреть фотографии» относятся к потребности «Скоротать время».
Таким образом, для данного примера с мобильным телефоном реестр юскейсов может выглядеть следующим образом:
3. Для каждого UC определить его приоритет
Реализация юскейсов в коде — трудоёмкая работа, поэтому надо понимать, с каких лучше начать в первую очередь, а до каких очередь может не дойти никогда.
Реестр юскейсов может использоваться для приоритизации пользовательских функциональных требований с целью их ранжирования по степени важности, которая определяет порядок реализации.
Самым простым методом приоритизации, который часто применяется на практике, считается метод MoSCoW. Он получил своё название не в честь российской столицы, а как сокращение следующих 4 категорий:
- Must — то, что необходимо сделать в любом случае. Считается, что без реализации этих требований решение не будет работать или при отсутствии этих фич продукт не будет нужен потребителям. Чаще всего этот приоритет называется 1-я очередь и обозначается цифрой 1
- Should — требования 2-ой очереди, которые должны быть реализованы после тех, что отнесены к группе Must. Это приоритет номер 2
- Could — желательные требования, которые можно сделать, если останется время и будут ресурсы. Это приоритет номер 3
- Would — требования, которые хотелось бы реализовать, но пока их можно проигнорировать или перенести на следующие итерации без вреда для продукта. Это приоритет номер 4
В нашем примере с мобильным телефоном приоритизировать юскейсы можно так, как показано в таблице 2.
Справедливости ради стоит отметить, что метод MoSCoW в качестве базиса приоритизации выбирает менеджерскую точку зрения, то есть не учитывает технические зависимости между требованиями, которые определяются при трассировке требований, то есть. их связей друг с другом.
Впрочем, тема трассировки и приоритизации требований достаточно обширна и заслуживает отдельной статьи.
4. Для каждого высокоприоритетного (Must или Should) UC определить контекст применения, конечную цель и результат
Это можно оформить в виде списка или таблицы, например в Notion:
5. Раскрыть содержание основного потока каждого юскейса высокого приоритета в виде пользовательского сценария
Напомним, что пользовательский сценарий — это последовательность шагов, которая приведёт к достижению конечной цели юскейса, получению нужного актору результата.
Основную часть пользовательского сценария составляет так называемый happy path (основной поток), который представляет собой пошаговый алгоритм выполнения сценария без логических операторов XOR (исключающее или), используемых для ветвления потока управления в результате проверки каких-либо условий.
Как может выглядеть черновик сценария основного потока юскейса:
1. Пользователь даёт команду совершить звонок
2. Система запрашивает номер телефона вызываемого абонента
3. Пользователь сообщает номер абонента
4. Система убеждается в корректности указанного номера телефона
5. Система вызывает абонента с указанным номером телефона
6. Система убеждается, что звонок начался
7. Система передаёт голос собеседников в ходе разговора
Для наглядности можно нарисовать эту линейную последовательность шагов в виде простого процесса в нотациях EPC, BPMN (рис.1), UML activity или sequence, а также блок-схемы алгоритма по ГОСТ 19.701−90.
Последовательность шагов в виде BPMN-диаграммы
На практике подавляющая часть сценариев описывается только текстовым описанием. Пример такого описания мы разберём с вами ниже.
6. Дополнить линейную последовательность основного потока в описании UC расширениями, исключениями и циклами
На этом этапе аналитик усложняет ранее полученный happy path, включая в схему различные ветвления с помощью логического оператора XOR.
Вместо BPMN для отображения логики сценария нашего юскейса можно использовать любую другую нотацию (EPC, UML activity diagram, IDEF3 или даже простого текстового алгоритма).
Расширенная BPMN-диаграмма юскейса с исключениями и альтернативными потоками
7. Собрать воедино результаты выполнения трёх предыдущих шагов, детально описав каждый UC как алгоритм взаимодействия пользователя с системой
На этом этапе у каждого юскейса появляется описание, структура которого всегда примерно такая:
- Имя
- Приоритет
- Область действия
- Контекст
- Актор
- Цель
- Предусловия
- Результат (постусловие)
- Основной поток
- Расширения или альтернативные потоки
- Бизнес-правила
Давайте разберем каждый элемент этой структуры поподробнее.
Эту структуру можно представить в текстовом виде или, для наглядности, в виде таблицы. Давайте завершим описание этого юскейса так, как мы делаем это на реальных проектах, то есть полностью опишем happy path и альтернативные сценарии.
Пример 1. UC «Сделать Звонок»
При описании юскейсов на реальном проекте мы рекомендуем в первую очередь учитывать текущие нужды и предпочтения ваших стейкхолдеров (заказчика, разработчиков, тестировщиков и так далее).
Главная задача любого юскейса состоит в том, чтобы создать общее понимание взаимодействия у пользователя системы, у заказчика и у всей проектной команды. Поэтому зацикливаться на «правильном» формате будет неэффективно, гораздо лучше ориентироваться на нужды потребителей вашей документации, а значит, нужно поговорить с ними, показать наработки и согласовать удобный всем формат.
Как структурировать UC из набора
исходных ФТ
Задача:
Рассмотрим пример информационной системы, которая позволяет клиенту выбрать один или несколько обучающих курсов, заключить договор на участие в них и оплатить сумму через онлайн-оплату.
Если у клиента есть промо-код на скидку по конкретному курсу, сумма в договоре будет снижена на размер скидки.
Таким образом, мы имеем следующий базовый, стартовый набор функциональных требований к информационной системе управления договорами на обучение:
- FRQ1 Система должна предоставить пользователю с ролью «Клиент» возможность заключить договор на участие в одном или нескольких обучающих курсах
- FRQ2 Система должна предоставить пользователю с ролью «Клиент» возможность добавить курсы к договору
- FRQ2 Система должна предоставить пользователю с ролью «Клиент» возможность удалить курсы из договора
- FRQ4 Система должна предоставить пользователю с ролью «Клиент» оплатить сумму по заключенному договору через шлюз онлайн-оплаты
- FRQ5 Система должна предоставить пользователю с ролью «Клиент» снизить сумму по заключенному договору с применением промо-кода на скидку
Формируем описание в формате UC, применяя алгоритм:
Шаг 1. Определяем акторов. Судя по требованиям, с системой взаимодействует клиент и шлюз оплаты.
Шаг 2. Сформируем реестр юскейсов. Для этого мы можем, например, представить имеющийся набор функциональных требований в виде UML-диаграммы вариантов использования (UML Use case diagram).
Исходная UML-диаграмма use case
Чтобы составить реестр юскейсов, давайте выделим из ранее представленных юскейсов именно те, что имеют бизнес-ценность для пользователя без привязки к системе.
Упрощённая UML-диаграмма use case
Давайте также сопоставим получившиеся юскейсы и функциональные требования в таблице ниже.
При формировании реестра юскейсов для пользователя мобильного телефона мы можем выделить такие функциональные возможности как «Сделать Звонок» и «Отправить СМС». Оба этих юскейса отражают непосредственное взаимодействие актора с системой, направленное на достижение определённой бизнес-цели, это системный юскейс.
Функциональные возможности «Сделать звонок» и «Отправить СМС» относятся к одной потребности пользователя «связаться с другим человеком», которая будет состоять из двух системных юскейсов: «Позвонить Человеку» и «Отправить СМС». Показать эту трассировку (связь) можно с помощью реестра вариантов использования.
Реестр вариантов использования:
Шаг 3. Определить приоритеты системных юскейсов
Поскольку юскейсы в рассматриваемой части системы тесно связаны между собой, ранее рассмотренный метод приоритизации MoSCow не совсем подходит для этого случая. Здесь целесообразнее расставить приоритеты с точки зрения технических зависимостей данных юскейсов между собой: сперва должны быть реализованы требования относительно возможности заключить договор, чтобы потом проводить оплату по заключённому договору.
Шаги 4−7. Эти шаги (описать основной поток и расширения для каждого из приоритетных юскейсов) мы представим в виде примера описания одного из юскейсов (UC «Оплатить Договор», см. ниже). По аналогии будет описан и UC «Заключить Договор».
Пример 2. UC «Оплатить Договор»
Для нашего примера вариант использования «Оплатить Договор» может выглядеть так:
У нас получилось представление варианта использования в виде подробного описания взаимодействия актора с проектируемой системой по заданному шаблону, включая последовательность шагов основного потока, приводящего к достижению пользовательской цели в заданном бизнес-контексте, альтернативные поток, пред- и постусловия.
Такой формат хорошо подходит для реализации, если в юскейсе описана конкретная привязка к модели данных, указаны сущности и атрибуты, над которыми выполняются операции.
Рассмотренная табличная форма описания UC является не единственной возможной. Бывают ещё и другие форматы, например, таблица в две колонки, юскейс в стиле RUP и так далее.
Кроме того, у нас получилось слишком много шагов в юскейсе, что является сигналом к его разделению на несколько. В данном случае можно было бы, например, вынести в отдельный юскейс работу с промо-кодами.
Пример 3. UC «Обновить Анкету»
Достоинства и недостатки UC как формы представления требований
Основными преимуществами UC являются следующие:
- Нисходящая и восходящая трассировка (от системного уровня к бизнесу) улучшает понятность требований для Заказчика и команды реализации: UC несёт конечную бизнес-ценность, детально описывает структуры данных и бизнес-логику их обработки, позволяет убедиться в реализации
- Вариант использования можно использовать как единицу поставки при планировании, реализации, тестировании и приёмке работ;
- Набор связанных друг с другом вариантов использования позволяет обеспечить полноту функциональных требований, следующих из потребностей пользователей
- Детальный шаблон представления UC позволяет полностью описать взаимодействие актора с системой, включая контекст, предшествующие, сопутствующие и результирующие события, а также ссылки к бизнес-правилам и нефункциональным требованиям (ограничения и некоторые атрибуты качества)
- UC — отличная база для формирования тестовых сценариев (test cases) для проверки того, работает ли реализованная система как ожидалось
Обратной стороной этих достоинств являются следующие недостатки:
- Плохо подходят для документирования требований, основанных не на взаимодействии с системой, а на выполнении расчётов и преобразованиях уже имеющихся в системе данных. Например, построение графиков и отчётов, вычисления, описание математических алгоритмов
- Субъективность: качество изложения как самого UC, так и их реестра (ширина, глубина детализации уровней абстракции) зависит от навыков аналитика
- На детальную проработку каждого UC уходит много времени. Например, у меня это занимает в среднем от 30 минут; добиться существенного повышения скорости работы можно за счёт повторного использования типовых юскейсов (опытный аналитик или отдел могут создать библиотеку своих юскейсов)
- Проектирование системы только по UC исключает другие потенциально ценные методики документирования и анализа требований, такие как каноническая форма представления функциональных требований с привязкой с CRUD-операциям или популярная в Agile-проектах форма User Story по INVEST с критериям приёмки (Acceptance Criteria)
Откуда взялся такой формат как Use Case
Разумеется, не мы изобрели юскейсы как формат описания требований. Существуют общепризнанные мировые эксперты в этой области, а также книги-первоисточники, к которым стоит обращаться в случае возникновения споров и недопонимания. Скажем о них пару слов, чтобы вы знали, куда обратиться при необходимости.
Исторически функциональные требования, представляющие поведение системы, описывались в виде отдельных функций. Например, так:
- FRQ1 Система должна предоставить пользователю с ролью «Клиент» возможность заключить договор на участие в одном или нескольких обучающих курсах
- FRQ2 Система должна предоставить пользователю с ролью «Клиент» возможность добавить курсы к договору
В 1986 году Ивар Якобсон (шведский учёный, который вместе с Гради Бучем и Джеймсом Рамбо стоял у истоков ООП и UML) предложил альтернативную форму представления функциональных возможностей системы. Вместо описания функциональных требований к системе в виде отдельных функций Якобсон предложил объединить их по контексту, а затем превратить в набор вариантов использования (ВИ), который будет обеспечивать полноту и неизбыточность требований.
Якобсон обнаружил, что отдельные системные ФТ обычно не представляют большой самостоятельной ценности для заказчика, менеджера, пользователя, так как являются слишком мелкими единицами функциональности. Подход Якобсона позволил вместо сотен-тысяч системных функций применять единицы-десятки юскейсов, что гораздо удобнее в целях управления, планирования и сдачи ИТ-продукта/системы. Кроме того, он хорошо стыкуется с задачами тестирования и создания пользовательской документации. Подробнее об этом см в статье.
В 2001 году Алистер Коберн, эксперт в разработке ПО, расширил и уточнил идеи Якобсона, выпустив книгу «Современные методы описания функциональных требований к системам» (Writing Effective Use Cases). Книга получилась достаточно подробной, содержащей множество примеров. Помимо техник описания самих UC, работа Коберна включает также связанные вопросы о контексте, границах и основных компонентах проектируемой системы, то есть так называемый scope системы.
Эти и другие аспекты работы с требованиями были изложены в книге ещё одного автора, широко известного в системном и бизнес-анализе. В 2003 году Карл Вигерс (Karl Wiegers) написал 2-е издание своей книги «Разработка требований к программному обеспечению» (Software Requirements), где рассмотрены не только техники разработки требований, но и вопросы управления ими, включая сбор, документирование, трассировку, работу с изменениями и анализ рисков. Эта книга почти вдвое объёмнее труда Коберна и больше подходит для начинающих аналитиков.
UC рассматривает проектируемое ПО как «чёрный ящик», описывая взаимодействие с системой с точки зрения внешнего наблюдателя: ЧТО система должна сделать, чтобы актор достиг своей цели, а НЕ КАК это должно быть сделано.
Благодаря отсутствию привязки к элементам пользовательского интерфейса, ВИ становятся повторно используемыми требованиями, которые остаются актуальными при изменении платформы или других особенностей реализации.
Несмотря на повсеместное распространение гибких методологий разработки ПО, UC как подход к описанию функциональных требований очень активно применяется на практике. В отличие от пользовательских историй (User Story), другой популярной формы представления требований, UC охотно принимают в реализацию — в основном благодаря структурированному формату и детальной проработке бизнес-логики с привязкой к модели данных.
Полный реестр UC и структурированное описание каждого из них позволяет разработчикам воплотить описанные структуры данных и алгоритмы их обработки. Таким образом, большая трудоемкость при разработке вариантов использования на этапе анализа и спецификации требований окупается сокращением времени на этапе реализации и тестирования. Кроме того, реестр юскейсов можно использовать для оценки трудоёмкости проекта — менеджеры проектов часто приходят к аналитикам и тимлидам с этим вопросом.
В завершение статьи хотелось бы напомнить: если ваш юскейс решает проблемы разработки ПО, то есть создаёт общее понимание требований у заказчика и всей проектной команды, то вы написали хороший юскейс. Следование формату само по себе не самоценно.
Получить навыки уверенного написания юскейсов вы можете только на опыте. На курсе «Системный анализ и разработка требований в ИТ-проектах» мы предлагаем вам получить этот опыт быстрее и удобнее: в концентрированной форме, под руководством опытных инструкторов.
Анна Вичугова
- Кандидат технических наук (Системный анализ, управление и обработка информации, 2013)
- Сертифицированный бизнес-аналитик (CBAP 2020, международная сертификация IIBA)
- Сертифицированный специалист Business Studio (2010, 2012, 2013, 2018)
- Сертифицированный специалист и администратор СЭД Directum (2011
Профессиональные интересы: системный анализ, бизнес-анализ, разработка и поддержка СМК, ССП (KPI), анализ и формализация бизнес-процессов (UML, IDEF, BPMN), Data Science, технологии Big Data, разработка технической документации (ТЗ по ГОСТам серии 19.***, 34.***, руководства пользователя и администратора, описание программных продуктов), управление продуктами и проектами.
Анна Гасраталиева
Системный аналитик, выпускающий редактор Systems. Education
Системный аналитик, выпускающий редактор Systems. Education
Профессиональные интересы: телекоммуникации, интеграции, управление задачами, управление людьми, обучения
- Что такое юзкейс
- Из чего состоит
- Как написать
- Пример
- Диаграммы
- Польза для команды
Что такое юзкейс
Use case (также юзкейс, сценарий использования) – это сценарий взаимодействия пользователя (или пользователей) с программным продуктом для достижения конкретной цели.
Юзкейсы содержат следующие сведения:
- кто использует сайт или приложение
- что пользователь хочет сделать
- цель пользователя
- шаги, которые делает пользователь, чтобы совершить определенное действие
- описание того, как сайт или приложение реагируют на действия пользователя.
Юзкейсы не содержат детали реализации, а также описания пользовательского интерфейса или экранов.
В общем, в юзкейсе описывается не каким образом программа делает что-либо, а что именно она делает. Именно этого подхода и нужно придерживаться, создавая юзкейсы.
В отличие от user story, которая излагается от имени какого-то конкретного пользователя, в use case может быть описано взаимодействие (с определенной целью) нескольких участников. Например:
- покупка товара в магазине (Покупатель – Продавец);
- отправка письма по электронной почте (Отправитель – Почтовый клиент);
- запрос страницы браузером (браузер – веб-сервер).
Элементы use case
Юзкейсы могут содержать следующие элементы (их количество зависит от сложности сценария):
- Актор (actor) — тот, кто использует систему. Если взять за пример онлайн-магазин, там может быть несколько акторов: покупатели, продавцы, компании, занимающиеся доставкой, компании, проводящие платежи.
- Стейкхолдер (stakeholder) — тот, кто заинтересован в определенном поведении системы. Зачастую это не конечный пользователь, а кто-то, получающий выгоду от функционирования системы. В случае с онлайн-магазином это может быть партнер — платежная платформа.
- Первичное действующее лицо (primary actor) — человек или система, чьи цели достигаются при помощи нашего продукта. В онлайн-магазине это может быть основной дистрибьютор, чьи товары продаются на этой онлайн-платформе.
- Предусловия и постусловия — что должно быть в наличии или должно произойти до и после запуска сценария использования.
- Триггеры — события, запускающие юзкейс.
- Успешный сценарий — юзкейс, при котором все идет по плану, без ошибок и неожиданностей.
- Альтернативные пути — вариации основного успешного сценария на случай, если что-то пойдет не так на уровне системы.
Как написать use case?
Шаги в юзкейсе описываются максимально понятно. Что касается самих шагов, они могут быть следующими:
- Определите, кто будет использовать сайт.
- Выберите одного из этих пользователей.
- Определите, что этот пользователь хочет делать на сайте. Все, что пользователь делает на сайте, становится юзкейсом.
- Для каждого use case определите нормальный ход событий.
- Опишите основной путь пользователя: что именно делает пользователь и каков ожидаемый ответ системы.
- Далее рассмотрите альтернативные варианты развития событий и добавьте их, чтобы «расширить» use case.
- Повторите шаги 2-6 для всех остальных пользователей.
Пример use case
В этом юзкейсе изложен сценарий входа пользователя в школьную систему.
Название use case | Login |
Описание use case | Пользователь входит в систему, чтобы получить доступ к ее функционалу. |
Акторы | Родители, Ученики, Учитель, Админ |
Предусловия | Система должна быть подсоединена к сети |
Постусловия | После успешного входа пользователю отсылается уведомление на mail id |
Основные сценарии | Номер | Шаги |
Акторы/пользователи | 1 | Ввод username Ввод пароля |
2 | Проверить имя пользователя и пароль | |
3 | Разрешить на вход в систему | |
Расширения | 1a | Неверное имя пользователя Система выбрасывает сообщение об ошибке |
2b | Неверный пароль Система выбрасывает сообщение об ошибке |
|
3c | Неверный пароль введен 4 раза Приложение закрывается |
Юзкейс-диаграммы
Для визуализации юзкейсов используют диаграммы. В них система обозначается прямоугольником, use case — овалом, актор — схематическим человечком.
Пример диаграммы для юзкейсов входа в школьную систему:
Зачем нужны use case?
Давайте рассмотрим, в чем ценность юзкейсов для участников проекта разработки ПО.
- Заказчики
В юзкейсе отражается конечная бизнес-ценность, понятная заказчику. Реализация сценария использования в системе очевидна даже для нетехнического специалиста. Наличие готового use case позволяет заказчику своевременно дать старт дальнейшей работе тестировщиков и разработчиков.
- Разработчики
В сценарии использования указываются основной и альтернативные потоки событий. Вся информация в нем подается максимально структурированно и понятно, в привязке к конечному результату. Это удобно для понимания запутанных требований. Если сценарий поведения пользователя в системе сложный, use case просто необходим.
- Тестировщики
Юзкейсы — отличная основа для формирования тест-кейсов. Это, по сути, пригодные для тестирования требования с понятной целью и путями ее достижения. Тестирование по сценариям использования (use case testing) позволяет обнаружить в приложении недостатки, которые сложно найти, например, при юнит-тестировании.
Данная статья поможет молодым специалистам легко начать работу со сценариями использования.
Сценарии использования- это сценарий взаимодействия пользователя (или пользователей) с программным продуктом для достижения конкретной цели.
Цель: моделирование и проектирование взаимодействия пользователя с системой в рамках выполнения одного сценария. Пошаговое подробное взаимодействие пользователя с системой.
Документирование: таблица с описанием действий актора и реагирование системы на определенные шаги пользователя.
Один сценарий использования имеет несколько потоков: основной и альтернативные.
Выделение сценариев
Один сценарий использования должен описывать действия пользователя, которые приведут к одному большому действию- функционалу пользователя. Например, авторизоваться, добавить товар в корзину и тд.
Если мы имеем большой сценарий использования, необходимо выделить из него те части, которые мы можем вынести в отдельный самостоятельный сценарий, но в предусловии указать условия начала инициации данного сценария.
Каждый основной сценарий использования должен быть независимым от другого основного. Если есть определенные условия выполнения- указываем в “Предусловия”
Например, если нам необходимо описать авторизацию пользователя с вводом кода подтверждения, можно выделить отдельный сценарий “Ввод кода подтверждения”, чтобы не нагружать сценарий “Авторизация”. А уже в в сценарии “ввод кода подтверждения” подробно расписать условия ввода кода, повторной отправки, работу таймера повторной отправки, неверный код подтверждения, возможные ошибки.
Уровни описания и степени детализации
Сценарии использования могут быть описаны на абстрактном уровне (деловой сценарий использования, иногда называемый ключевым сценарием использования), или на системном уровне (системный сценарий использования). Различия между ними — в деталях.
-
Деловой сценарий использования не затрагивает технологий, рассматривает систему как «черный ящик» и описывает бизнес-процесс, который используется деловыми актерами (людьми, или системами, внешними к бизнесу) для достижения своих целей. Деловой сценарий использования описывает процесс, ценный для клиента, описывает что именно делает процесс.
-
Системный сценарий использования обычно описывается на уровне функций системы и определяет функцию или сервис, предоставляемые системой для пользователя. Системный сценарий использования описывает что актер может сделать взаимодействуя с системой. По этой причине рекомендуется, чтобы системные случаи использования началась с глагола (например, создайте ваучер, выберите платежи, отмените ваучер)
Степень формализма выполняемого проекта и стадия, на которой он находится, прямо влияют на степень детальности и проработанности вариантов использования. Определяют следующие степени детальности при написании вариантов использования:
-
Краткий (brief) вариант использования состоит (помимо названия) из одного-двух описательных предложений. Он хорош при сведении функциональных требований в таблицу при планировании приоритетности, технической сложности, номера версии продукта и т. д.
Краткая степень детальности применяется при начале работы над проектом; когда еще не прорабатываются детали, а верхнеуровнего описываются сценарии использования. Также, краткую степень детализации допустимо использовать при сжатых сроках написания ТЗ для кейсов с низким уровнем риска.
-
Детальный (detailed) вариант использования – это формальный документ с предопределённой структурой разделов; это, собственно, и есть Use case в его традиционном понимании.
Детальный уровень описания применяют при написании ТЗ. Преимущественно, при написании ТЗ все кейсы необходимо описывать на детальной степени; обязательно применять детальную степень и системный уровень при описании кейсов с высоким уровнем риска.
Структура сценария использования
Сценарии использования включают в себя следующие разделы:
-
Название. Краткое, максимально понятное. Описывающее общее действие пользователя.
Пример:
UC-1. Регистрация в личном кабинете
UC-2. Регистрация в программе лояльности
UC-3. Добавление товара в корзину
-
Предусловие. Формулировка условий, при которых данный вариант использования может быть инициирован. Условие, помимо прочего, может быть упоминанием о выполнении других вариантов использования. Также в предусловии необходимо указывать, в какой части системы находится пользователь, кратко- какие действия уже выполнил.
Пример: пользователь находится в “Корзине”, в “Корзине” добавлено 2 товара”.
Данное предусловие мы можем указать для описания кейса работы пользователя в “Корзине”. Если мы описываем кейс “Добавление товара в корзину” или “Оформление заказа”, где необходимо указать всю цепочку шагов пользователя- то данное предусловие не подойдет.
-
Основной сценарий. Сценарий – это последовательность шагов, описывающая процесс решения задачи, которой посвящен вариант использования. Шаги удобно последовательно нумеровать.
-
Альтернативные сценарии, в которых процесс развития событий на каком-либо шаге чем-либо заметно отличается от основного, то есть имеет место ветвление.
Сценарий использования должен отвечать на вопрос “Что делает пользователь?” “Что делает система?”
При описании сценария использования важно соблюдать пошаговый план действий пользователя, указывая физическое действие пользователя.
Например, формулировка “добавил товар в корзину” неверная.
Правильно: “нажимает на кнопку “Добавить товар в корзину” и далее- реакцию системы на действия пользователя.
Пользователь |
Система |
Какое физическое действие произвел пользователь? |
Как отреагировала система? |
Нажимает “Добавить в корзину” |
Система добавляет выбранный товар в корзину. В иконке “Корзина” система выводит маркер- кол-во добавленного товара в корзину. Изменяет кнопку “Добавить в корзину” у выбранного товара на кнопку “Перейти в корзину” |
Пользователь нажимает “перейти в корзину” |
Система переводит пользователя в корзину, где отображается добавленный товар. |
Альтернативные сценарии
При проработке основного сценария, все варианты действий пользователя и поведения системы, отличных от основного сценария необходимо выносить в альтернативный сценарий. То есть, везде, где можно указать “если”- это и будет альтернативный сценарий.
Важно! Альтернативный сценарий должен ссылаться только на один успешный сценарий. Недопустимо прописывать альтернативный сценарий для альтернативного сценария.
Рассмотрим на примере авторизации
Предусловие: неавторизованный пользователь находится на странице авторизации и регистрации
Пользователь |
Система |
Какое физическое действие произвел пользователь? |
Как отреагировала система? |
Пользователь нажал кнопку “Зарегистрироваться” |
Система вывела форму регистрации, поле “email” |
Пользователь вводит данные в поле “email” |
3. Система производит проверку введенных данных на валидацию. Данные проходят по условиям валидации Если данные не прошли проверку валидации, запускается альтернативный сценарий №1. |
Система производит поиск введенных данных “email” по учетным записям в системе. Учетных записей с такими данными “email” не найдено. Если в системе найдена учетная запись с таким логином, запускается альтернативный сценарий №2 |
|
Система отправляет пользователю код подтверждения на email Система выводит пользователю поле “код подтверждения” Сценарий “ввод кода подтверждения” вынесен в отдельный сценарий. — обязательно указываем, если какой-либо функционал выносим в отдельный кейс, более подробный. |
|
Пользователь вводит корректный код подтверждения в поле “код подтверждения” |
Система производит проверку кода подтверждения. Код введен верно. Пользователь зарегистрирован. Альтернативный сценарий с неверным кодом подтверждения выносим в сценарий “Ввод кода подтверждения” |
Пример альтернативного сценария
Альтернативный сценарий №1
На шаге №3 успешного сценария, введенные данные не прошли проверку валидации.
-
Система выводит информер с указанием запрещенных символов.
-
Пользователь вводит корректные данные в поле “email”.
Далее сценарий продолжается от шага №3 успешного сценария.
Сценарии использования являются важным и частым артефактом работы системных аналитиков. И я надеюсь, что данная статья немного облегчит жизнь молодой крови, только вступившей на долгий и тернистый путь системного анализа
Когда какая-либо IT-компания начинает разработку программного продукта, ей приходится задумываться о том, как быстрее и проще начать реализацию проекта и создать прототип, с помощью которого можно передать все функциональные возможности ПП. Что такое Use Case, для чего он нужен, чем он может помочь в разработке — расскажет наша статья.
Что такое Use Case
Use Case — это сценарный план взаимодействия пользователя с программным продуктом, в котором четко прописаны шаги для достижения того или иного результата. Последовательность действий, при этом, может быть расписана не для одного, а для нескольких юзеров.
В юзеркейсах для программных продуктов прописываются разные манипуляции. Это может быть покупка товаров через мобильное приложение, отправка данных, рассылка электронных писем и так далее.
Главной задачей юзеркейса является улучшение коммуникации среди членов команды при разработке программы или мобильного приложения. Пишутся эти кейсы на этапах проектирования и при планировании внедрения каких-либо функций.
Вообще, отвечать за составление юзеркейсов должны системные аналитики, имеющие опыт в ведении переговоров с заказчиками и проведении анализа ЦА. Но так как у многих компаний бюджет не всегда позволяет нанимать для этого сторонних специалистов, разработкой Use Case могут заниматься тестировщики, дизайнеры, разработчики ПП и даже продакт-менеджеры.
В каких ситуациях может помочь Use Case
Грамотно составленный юзеркейс может помочь в тех случаях, когда:
- при проведении подготовительных работ разработчики не могут правильно составить ТЗ;
- после долгих обсуждений функциональных возможностей команда отклонилась от первоначальной идеи продукта;
- команда разработчиков неправильно поняла начальный сценарий взаимодействия юзера и ПП;
- команда разработчика неправильно внедрила ту или иную функцию;
- в процессе тестирования программы появляется много непредвиденных ошибок;
- к команде подключились новые специалисты, которых нужно в кратчайшие сроки посвятить в курс дела.
Также Use Case незаменим в тех случаях, когда один и тот же кейс по-своему реализован в разных местах, тем самым затягивая процесс разработки ПП.
В чем польза юзеркейса
Качественно составленный Use Case может решать разные задачи. Например:
- облегчение коммуникации между разнопрофильными членами команды (дизайнеры, тестировщики, разработчики, менеджеры, аналитики);
- фиксирование принятых решений, что позволяет в дальнейшем не сбиваться с курса;
- быстрое возвращение к заданному сценарию с целью проверки его корректности на разных этапах разработки;
- упрощение порядка передачи информации между членами команды;
- определение самых важных аспектов сценария взаимодействия.
Use Case играет важную роль, когда необходимо подготовить прототип ПП, который покажет особенности и преимущества проекта.
Из каких элементов состоит Use Case
В зависимости от сложности сценария, юзеркейсы могут содержать порядок действий следующих лиц:
- Actor — человек, который пользуется созданной системой. В качестве примера можно привести какой-нибудь интернет-магазин, где в качестве actor выступают продавцы, покупатели, поставщики и все те, кто взаимодействует с этим интернет-магазином.
- Primary actor — это человек, у которого получается достигнуть поставленных целей с помощью созданного программного продукта. Если вернуться к тому же интернет-магазину, то primary actor в нем может быть производитель вещей, у которого получается реализовывать эти вещи с помощью функционала онлайн-площадки.
- Stakeholder — человек, который заинтересован в том, чтобы созданы ПП выполнял те или иные действия. В интернет-магазине это может быть какой-нибудь партнер, получающий доход от приведенных покупателей, или подключенная к магазину платежная платформа, через которую совершаются онлайн-платежи.
Также к элементам юзеркейса относятся:
Арбитраж трафика на крипту [2022] — ОПРОС ЭКСПЕРТОВ
- понятный заголовок, содержащий конечный результат Use Case;
- описание последовательности действий;
- результат, к которому должен привести юзеркейс;
- предусловия — это то, что должно произойти до или после запуска кейса;
- триггеры, влияющие на запуск кейса.
А еще в любом Use Case должны быть прописаны альтернативные пути — события, к которым прибегают в том случае, если кейс не сработал.
Какими должен качественный быть Use Case
Высокое качество юзеркейса определяют следующие критерии:
- Правильная детализация. При составлении Use Case нет смысла описывать каждый шаг пользователей и состояние элементов ПП в этот момент. Главная задача юзеркейса — всего лишь дать общую картину.
- Простота изложения. Чтобы содержимое юзеркейса было понятным даже новым членам команды, его необходимо писать максимально простым языком. Не стоит использовать для Use Case сложные термины и вставки кода.
- Единый стиль. Старайтесь использовать для всех юзеркейсов один и тот же шаблон. Это поможет сэкономить время на изучении ПП.
- Важен контекст. В каждом юзеркейсе должны быть уточнения по поводу тех или иных действий. Так разработчики смогут разобраться в том, какая задача перед ними стоит.
- Целенаправленность. Не стоит использовать юзеркейса для того, чтобы описать весь путь пользователя. Лучше представить конкретные шаги (регистрация, покупка, отправка заявки и так далее).
Когда сценарий будет обновляться, не стоит забывать о своевременном внесении изменений в юзеркейс.
Какую пользу несет Use Case для определенных специалистов в команде
Для каждого из участников команды юзеркейс несет свою ценность. Например, для заказчика Use Case полезен тем, что на простой языке отображает конечную бизнес-ценность. Как правило, сценарий взаимодействия составляется таким образом, чтобы даже далекие от программной разработки пользователи могли понять, что написано в кейсе. Чем проще для заказчика будет составлен юзеркейс, тем быстрее он с ним ознакомиться и даст добро на продолжение разработки.
Для разработчика же ценность заключается в другом. В первую очередь речь идет о структурированных блоках информации, что упрощает создание ПП. Особенно это касается сложных проектов с жесткими требованиями. Также структурированная информация привязывается к конечному результату, благодаря чему разработки гораздо проще понять, что должно получиться в итоге.
Польза в юзеркейсах есть и для разработчиков. Во-первых, благодаря Use Case они могут тестировать программные продукты по заранее заданному сценарию. Это экономит время и избавляет от необходимости искать способы проверки на ошибки. Во-вторых, грамотно составленный кейс помогает находить в программе минусы, которые вряд ли удастся найти с помощь unit-тестирования.
Как составить Use Case
Как говорилось ранее, составлять юзеркейсы нужно на этапах проектирования ПП. Также кейс пересматривается в тот момент, когда команда начинает внедрять новые или улучшать уже имеющиеся фичи. При этом писать юзеркейсы стоит только после того, как будет составлен путь пользователя.
Чтобы составить юзерйкейс, необходимо выполнить следующие действия:
- В первую очередь определяем, какие пользователи будут работать с программным продуктом. Помочь в этом может обычный анализ рынка и ЦА.
- Выявляем определенную группу пользователей, которые будут работать с ПП.
- Рисуем портрет группы пользователей и приблизительно определяем, что они будут делать разрабатываемой программе. Каждое действие в рамках ПП — потенциальный Use Case.
- Определяем последовательность действий для каждого юзеркейса.
- Приблизительно описываем основной путь пользователя.
- Прогнозируем ответ системы на действия пользователя.
- Разрабатываем альтернативные пути для расширения юзеркейса.
- Повторяем перечисленные шаги для каждой группы пользователей.
Есть пара советов, которые помогут в составлении юзеркейсов. Во-первых, для экономии времени следует разработать шаблон. Такой подход позволит выработать единый стиль и экономить время при разработке других кейсов.
Во-вторых, если идет работа над Use Case под узкоспециализированный продукт, тогда необходимо разработать словарь с терминами. Также это может помочь в том случае, когда члены команды часто используются определенные термины, требующие расшифровки.
Чтобы читатели могли ознакомиться с приблизительным видом кейсов, мы решили разобрать несколько примеров.
Пример 1: регистрация на сайте
Результат кейса: пользователь создает аккаунт с личным кабинетом.
Номер шага | Действующее лицо | Действие |
1 | Пользователь | Пользователь нажимает на кнопку регистрации |
2 | Система | Открывает форма регистрации |
3 | Пользователь | Пользователь заполняет форма, указывает данные, подтверждает регистрацию |
4 | Система | Идет проверка корректности заполнения, пользователь вносится в базу данных, на почту отправляется письмо со ссылкой для активации акк |
5 | Пользователь | Пользователь открывает письмо, переходит по ссылке |
6 | Система | Система активирует аккаунт, высылает инструкцию по работе с сервисом |
Это из самых простых кейсов. Как правило, большая часть юзеркейсов имеют более сложно схему взаимодействия.
Пример 2: регистрация в интернет-магазине по сложной схеме
- цель: зарегистрироваться в интернет-магазине;
- действующее лицо: незарегистрированный пользователь;
- триггер: пользователь увидел рекламу интернет-магазина и решил зарегистрироваться;
- результат: у пользователя появляется аккаунт с бонусной системой.
Шаги юзеркейса выглядят следующим образом:
- Пользователь нажимает на кнопку регистрации.
- Система открывает форму регистрации, запрашивает контактные данные и платежные реквизиты.
- Пользователь заполняет поля, отправляет на проверку.
- Система проверяет инфу на корректность, вносит пользователя в базу, отправляет письмо со ссылкой активации.
- Пользователь открывает письмо, переходит по ссылке.
- Система активирует аккаунт.
Также может указываться переход к юзеркейсу. Например, с главной страницы.
Пример 3: кейс по взаимодействию с сайтом вуза на примере диаграммы
Некоторым специалистам проще делать юзеркейсы в виде диаграммы. Они удобны и практичны, однако в них нельзя отследить последовательность действий. Один из примеров – диаграмма юзеркейса, в котором прописаны шаги разных групп пользователей в рамках сайта ВУЗа.
Как видно на рисунке, студенты могут просматривать темы и записываться на курсовые проекты. Руководители могут просматривать уже имеющиеся и вносить новые темы. Система же отвечает за предоставление информации и внесения указанных сведений в базу данных.
Эксперты отвечают
ССергей Галоген
Что такое сценарий Use Case?
Сценарий или спецификация ВИ (use case scenario or specification) – тестовое формальное описание последовательности действий, которые происходят внутри ВИ для достижения некой цели актера.
ЮЮрий Булуй
Можно ли считать юзеркейс фукнцией?
ВИ – это не функция, это некая последовательность действий, которая приносит пользу для основного актера, инициирующего данный ВИ. ВИ – это скорее цель Пользователя, чем отдельная функция. ВИ теоретически может быть разбит на несколько функций, и как правило не является одной лишь функцией.
Вывод
Use Case — это инструмент, созданный для упрощения взаимодействия с разрабатываемым ПП. Перед созданием этого инструмента стоит тщательно изучить все материалы, заранее подготовить список разделов и обсудить все шаги с членами команды. Если юзеркейс будет составлен правильно, появится возможность не только наладить коммуникации, но и упростить процессе ведения технической и пользовательской документации.
Приходилось сталкиваться с Use case?
1 голос
Да — 100%
Нет — 0%