0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>27 ноя 2025</li>
2
<ul><li>27 ноя 2025</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Учимся на практических примерах.</p>
4
</ul><p>Учимся на практических примерах.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
6
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7
<p>Когда компания решает создать новое ПО, ей необходимо заранее понять, какие именно задачи бизнеса и пользователей оно будет решать и каким именно образом. Чтобы разобраться в этом, готовят use case (сценарий использования).</p>
7
<p>Когда компания решает создать новое ПО, ей необходимо заранее понять, какие именно задачи бизнеса и пользователей оно будет решать и каким именно образом. Чтобы разобраться в этом, готовят use case (сценарий использования).</p>
8
<p>В этой статье мы разберёмся, что это за документ, какие задачи он решает и как правильно его составить.</p>
8
<p>В этой статье мы разберёмся, что это за документ, какие задачи он решает и как правильно его составить.</p>
9
<p><strong>Содержание</strong></p>
9
<p><strong>Содержание</strong></p>
10
<ul><li><a>Что такое use case и когда он нужен</a></li>
10
<ul><li><a>Что такое use case и когда он нужен</a></li>
11
<li><a>Этапы создания сценария использования</a></li>
11
<li><a>Этапы создания сценария использования</a></li>
12
<li><a>Какие виды use case существуют</a></li>
12
<li><a>Какие виды use case существуют</a></li>
13
<li><a>Как составить use case: пошаговая инструкция</a></li>
13
<li><a>Как составить use case: пошаговая инструкция</a></li>
14
<li><a>Примеры сценарий использования из практики</a></li>
14
<li><a>Примеры сценарий использования из практики</a></li>
15
<li><a>Популярные сервисы и программы для создания use case</a></li>
15
<li><a>Популярные сервисы и программы для создания use case</a></li>
16
<li><a>В чём разница между use case и user story</a></li>
16
<li><a>В чём разница между use case и user story</a></li>
17
</ul><p>Use case (сценарий использования) - это описание того, как пользователь взаимодействует с ПО, чтобы достичь конкретной цели. Он показывает, какие шаги выполняет человек, как на них реагирует программа и к какому результату это приводит.</p>
17
</ul><p>Use case (сценарий использования) - это описание того, как пользователь взаимодействует с ПО, чтобы достичь конкретной цели. Он показывает, какие шаги выполняет человек, как на них реагирует программа и к какому результату это приводит.</p>
18
<p>Например, компания решает создать приложение для заказа такси. Use case будет описывать процесс его работы для пользователей - с главного экрана и до завершения поездки с указанием обратной связи. Подробное описание позволяет разработчикам и дизайнерам понять, как должна работать система и какие функции требуется реализовать.</p>
18
<p>Например, компания решает создать приложение для заказа такси. Use case будет описывать процесс его работы для пользователей - с главного экрана и до завершения поездки с указанием обратной связи. Подробное описание позволяет разработчикам и дизайнерам понять, как должна работать система и какие функции требуется реализовать.</p>
19
<p>В начале разработки use case задаёт общее представление о ПО: что важно для пользователя, какие ограничения стоит учитывать, как именно должно работать приложение или веб-сайт, какие ошибки могут возникнуть и что с ними делать, и многое другое. Позже эти сценарии используются для тестирования - по ним проверяют, выполняет ли система действия так, как нужно пользователям.</p>
19
<p>В начале разработки use case задаёт общее представление о ПО: что важно для пользователя, какие ограничения стоит учитывать, как именно должно работать приложение или веб-сайт, какие ошибки могут возникнуть и что с ними делать, и многое другое. Позже эти сценарии используются для тестирования - по ним проверяют, выполняет ли система действия так, как нужно пользователям.</p>
20
<p>Посмотрим на несколько ситуаций, в которых используется use case:</p>
20
<p>Посмотрим на несколько ситуаций, в которых используется use case:</p>
21
<ul><li>Создание интернет-магазина. Сценарии будут описывать, как покупатель выбирает товар и оплачивает заказ, что делать, если товар закончился или оплата не прошла. То есть укажет на все возможные варианты развития событий, которые следует предусмотреть в разработке и тестировании.</li>
21
<ul><li>Создание интернет-магазина. Сценарии будут описывать, как покупатель выбирает товар и оплачивает заказ, что делать, если товар закончился или оплата не прошла. То есть укажет на все возможные варианты развития событий, которые следует предусмотреть в разработке и тестировании.</li>
22
<li>Создание мобильного приложения, например для изучения иностранных языков. Use case будет описывать регистрацию пользователя, вход в систему, восстановление пароля, настройки профиля: текущий уровень владения языком, цель обучения, напоминания о занятиях и тому подобное. Сценарии использования должны включать в себя работу с настройками профиля, отображение ошибок, например когда сервис недоступен, и так далее.</li>
22
<li>Создание мобильного приложения, например для изучения иностранных языков. Use case будет описывать регистрацию пользователя, вход в систему, восстановление пароля, настройки профиля: текущий уровень владения языком, цель обучения, напоминания о занятиях и тому подобное. Сценарии использования должны включать в себя работу с настройками профиля, отображение ошибок, например когда сервис недоступен, и так далее.</li>
23
</ul><p>Чтобы написать качественный сценарий использования, полезный на этапах разработки и тестирования, надо пройти четыре последовательных этапа: собрать информацию о ПО, описать задачи в виде общей диаграммы, детализировать сценарии, запланировать их проверку и уточнение при необходимости. Разберём каждый из них подробно.</p>
23
</ul><p>Чтобы написать качественный сценарий использования, полезный на этапах разработки и тестирования, надо пройти четыре последовательных этапа: собрать информацию о ПО, описать задачи в виде общей диаграммы, детализировать сценарии, запланировать их проверку и уточнение при необходимости. Разберём каждый из них подробно.</p>
24
<p>Ключевая задача на старте работы над use case - понять цели бизнеса, то есть то, что важно заказчику разработки. Эту часть обычно формулирует бизнес-аналитик или продакт-менеджер. Например, в ходе сбора информации может выясниться, что сейчас требуется увеличить количество заказов, сократить время обслуживания или повысить удовлетворённость клиентов.</p>
24
<p>Ключевая задача на старте работы над use case - понять цели бизнеса, то есть то, что важно заказчику разработки. Эту часть обычно формулирует бизнес-аналитик или продакт-менеджер. Например, в ходе сбора информации может выясниться, что сейчас требуется увеличить количество заказов, сократить время обслуживания или повысить удовлетворённость клиентов.</p>
25
<p>Следом переходят к требованиям пользователей - что нужно им самим от нашего ПО: возможность выбора тарифа, быстрой оплаты покупки или что-то другое. Здесь в процесс включается системный аналитик или продакт-менеджер: они проводят интервью с пользователями, изучают, как те будут работать с системой, и превращают эти наблюдения в чёткие формулировки.</p>
25
<p>Следом переходят к требованиям пользователей - что нужно им самим от нашего ПО: возможность выбора тарифа, быстрой оплаты покупки или что-то другое. Здесь в процесс включается системный аналитик или продакт-менеджер: они проводят интервью с пользователями, изучают, как те будут работать с системой, и превращают эти наблюдения в чёткие формулировки.</p>
26
<p>После анализа собранных данных системный аналитик описывает задачу целиком, указывая возможные сценарии, но без их детализации. Для этого он использует язык UML - набор правил по созданию визуальных схем. Основное преимущество его выбора - графические материалы будут понятны всем, кто знаком с языком. То есть у UML есть определённые правила, по которым применяются все элементы: стрелочки, кружки, квадраты и другие.</p>
26
<p>После анализа собранных данных системный аналитик описывает задачу целиком, указывая возможные сценарии, но без их детализации. Для этого он использует язык UML - набор правил по созданию визуальных схем. Основное преимущество его выбора - графические материалы будут понятны всем, кто знаком с языком. То есть у UML есть определённые правила, по которым применяются все элементы: стрелочки, кружки, квадраты и другие.</p>
27
<p>Диаграмма сценария использования показывает всех участников процесса и то, как они взаимодействуют с ПО: акторы изображаются в виде человечков, сами действия - овальными фигурами, а связи между ними оформляются стрелками и короткими пояснениями.</p>
27
<p>Диаграмма сценария использования показывает всех участников процесса и то, как они взаимодействуют с ПО: акторы изображаются в виде человечков, сами действия - овальными фигурами, а связи между ними оформляются стрелками и короткими пояснениями.</p>
28
Диаграмма сценариев использования приложения такси - как со стороны клиента, так и со стороны водителя. Мы видим все возможные действия, для которых необходимо продумать конкретные шаги и возможные ошибки<em>Иллюстрация: Майя Мальгина для Skillbox Media</em><p>После создания диаграммы переходят к подробному описанию каждого сценария в текстовом формате. Use case обычно состоит из нескольких обязательных частей:</p>
28
Диаграмма сценариев использования приложения такси - как со стороны клиента, так и со стороны водителя. Мы видим все возможные действия, для которых необходимо продумать конкретные шаги и возможные ошибки<em>Иллюстрация: Майя Мальгина для Skillbox Media</em><p>После создания диаграммы переходят к подробному описанию каждого сценария в текстовом формате. Use case обычно состоит из нескольких обязательных частей:</p>
29
<ul><li><strong>Заголовок.</strong>Краткое описание действия.</li>
29
<ul><li><strong>Заголовок.</strong>Краткое описание действия.</li>
30
<li><strong>Акторы.</strong>Те, кто взаимодействует с системой. Это может быть человек (например, покупатель в интернет-магазине), другая программа (платёжный сервис) или устройство. Нужно перечислить всех акторов, чтобы понимать, кто и какие действия выполняет, и не пропустить их проработку в дальнейшем.</li>
30
<li><strong>Акторы.</strong>Те, кто взаимодействует с системой. Это может быть человек (например, покупатель в интернет-магазине), другая программа (платёжный сервис) или устройство. Нужно перечислить всех акторов, чтобы понимать, кто и какие действия выполняет, и не пропустить их проработку в дальнейшем.</li>
31
<li><strong>Основной поток событий.</strong>Это главный сценарий - то, как система должна работать в обычной ситуации. Например, пользователь вводит логин и пароль → система проверяет данные → открывается личный кабинет.</li>
31
<li><strong>Основной поток событий.</strong>Это главный сценарий - то, как система должна работать в обычной ситуации. Например, пользователь вводит логин и пароль → система проверяет данные → открывается личный кабинет.</li>
32
<li><strong>Альтернативные потоки.</strong>Это варианты, которые могут отличаться от основного сценария. Например: пользователь вводит неверный пароль → система показывает сообщение об ошибке и предлагает попробовать ещё раз.</li>
32
<li><strong>Альтернативные потоки.</strong>Это варианты, которые могут отличаться от основного сценария. Например: пользователь вводит неверный пароль → система показывает сообщение об ошибке и предлагает попробовать ещё раз.</li>
33
<li><strong>Предусловия.</strong>То, что должно быть выполнено перед началом сценария. Например: "Пользователь зарегистрирован в ПО, имеет логин и пароль".</li>
33
<li><strong>Предусловия.</strong>То, что должно быть выполнено перед началом сценария. Например: "Пользователь зарегистрирован в ПО, имеет логин и пароль".</li>
34
<li><strong>Постусловия.</strong>Результат, который должен быть достигнут после выполнения сценария. Например: "Пользователь успешно вошёл в личный кабинет ПО".</li>
34
<li><strong>Постусловия.</strong>Результат, который должен быть достигнут после выполнения сценария. Например: "Пользователь успешно вошёл в личный кабинет ПО".</li>
35
<li><strong>Исключения и ошибки.</strong>Описывают, что происходит в нестандартных ситуациях. Например: сервер недоступен или платёж не прошёл.</li>
35
<li><strong>Исключения и ошибки.</strong>Описывают, что происходит в нестандартных ситуациях. Например: сервер недоступен или платёж не прошёл.</li>
36
<li><strong>Триггеры.</strong>Это события, которые запускают сценарий. Например: "Пользователь нажал кнопку "Войти“".</li>
36
<li><strong>Триггеры.</strong>Это события, которые запускают сценарий. Например: "Пользователь нажал кнопку "Войти“".</li>
37
</ul><p>После написания сценариев нужно их проверить и убедиться, что учтены все требования к ПО или его части и ожидания от них. Для этого системный аналитик обсуждает use case с заказчиком.</p>
37
</ul><p>После написания сценариев нужно их проверить и убедиться, что учтены все требования к ПО или его части и ожидания от них. Для этого системный аналитик обсуждает use case с заказчиком.</p>
38
<p>После этого сценарии рассматривают вместе с командой: разработчиками, дизайнерами и тестировщиками. Это необходимо для того, чтобы были учтены все возможные шаги пользователей, а также возможные отклонения от основного потока событий.</p>
38
<p>После этого сценарии рассматривают вместе с командой: разработчиками, дизайнерами и тестировщиками. Это необходимо для того, чтобы были учтены все возможные шаги пользователей, а также возможные отклонения от основного потока событий.</p>
39
<p>Один и тот же use case можно описать как с точки зрения бизнеса, так и с позиции системы в целом.</p>
39
<p>Один и тот же use case можно описать как с точки зрения бизнеса, так и с позиции системы в целом.</p>
40
<p><strong>Бизнес-сценарий</strong>показывает задачу глазами заказчика и пользователей. В нём описывается цель и результат без технических деталей, чтобы было понятно, что нужно бизнесу. Например: "Покупатель оформляет заказ в интернет-магазине: выбирает товар, оплачивает и получает подтверждение". Здесь не указывается, как технически работает платёжная система или какой код выполняется: важен только итог.</p>
40
<p><strong>Бизнес-сценарий</strong>показывает задачу глазами заказчика и пользователей. В нём описывается цель и результат без технических деталей, чтобы было понятно, что нужно бизнесу. Например: "Покупатель оформляет заказ в интернет-магазине: выбирает товар, оплачивает и получает подтверждение". Здесь не указывается, как технически работает платёжная система или какой код выполняется: важен только итог.</p>
41
<p><strong>Системный сценарий</strong>предназначен для разработчиков и тестировщиков. Он показывает, что происходит внутри ПО: какие проверки реализованы и проводятся, куда отправляются запросы, как приложение или веб-сайт реагируют на ошибки. Вот как может выглядеть формулировка: "Система проверяет наличие товара на складе, рассчитывает доставку, передаёт данные в платёжный шлюз, обрабатывает ошибки и верстает письмо с подтверждением".</p>
41
<p><strong>Системный сценарий</strong>предназначен для разработчиков и тестировщиков. Он показывает, что происходит внутри ПО: какие проверки реализованы и проводятся, куда отправляются запросы, как приложение или веб-сайт реагируют на ошибки. Вот как может выглядеть формулировка: "Система проверяет наличие товара на складе, рассчитывает доставку, передаёт данные в платёжный шлюз, обрабатывает ошибки и верстает письмо с подтверждением".</p>
42
<p><strong>Коротко:</strong>бизнес-сценарий показывает то, какие задачи будет решать продукт, а системный - как будет реализовано их решение.</p>
42
<p><strong>Коротко:</strong>бизнес-сценарий показывает то, какие задачи будет решать продукт, а системный - как будет реализовано их решение.</p>
43
<p>Кроме этого, сценарии можно разделить по глубине проработки на два варианта:</p>
43
<p>Кроме этого, сценарии можно разделить по глубине проработки на два варианта:</p>
44
<ul><li>высокоуровневые описывают общую идею без подробной проработки;</li>
44
<ul><li>высокоуровневые описывают общую идею без подробной проработки;</li>
45
<li>детализированные разбирают каждый шаг пользователя и реакцию системы, в том числе редкие случаи и ошибки.</li>
45
<li>детализированные разбирают каждый шаг пользователя и реакцию системы, в том числе редкие случаи и ошибки.</li>
46
</ul><p><strong>Как выбрать формат?</strong>В начале проекта пишут бизнес-сценарии: они помогают договориться с заказчиком о требованиях и ожиданиях и согласовать их с ним. Когда начинается разработка, переходят к системным и детализированным сценариям: по ним программисты и тестировщики понимают, что и как нужно делать.</p>
46
</ul><p><strong>Как выбрать формат?</strong>В начале проекта пишут бизнес-сценарии: они помогают договориться с заказчиком о требованиях и ожиданиях и согласовать их с ним. Когда начинается разработка, переходят к системным и детализированным сценариям: по ним программисты и тестировщики понимают, что и как нужно делать.</p>
47
<p>Стандартных шаблонов для сценария использования нет - разные компании оформляют их по-своему, опираясь на специфику разрабатываемого ПО. Главное, чтобы в итоге получился структурированный документ, который позволяет команде разработки одинаково представлять конечный результат или по отдельным функциям приложения или веб-сайта, или в целом.</p>
47
<p>Стандартных шаблонов для сценария использования нет - разные компании оформляют их по-своему, опираясь на специфику разрабатываемого ПО. Главное, чтобы в итоге получился структурированный документ, который позволяет команде разработки одинаково представлять конечный результат или по отдельным функциям приложения или веб-сайта, или в целом.</p>
48
<p>Рассмотрим основные элементы, которые обычно включают в описание use case.</p>
48
<p>Рассмотрим основные элементы, которые обычно включают в описание use case.</p>
49
<p>Сначала системный аналитик определяет, за что отвечает система, а что выходит за её рамки. Это необходимо для того, чтобы понять, какие функции она выполняет и с кем или чем взаимодействует: с пользователями, другими сервисами или устройствами.</p>
49
<p>Сначала системный аналитик определяет, за что отвечает система, а что выходит за её рамки. Это необходимо для того, чтобы понять, какие функции она выполняет и с кем или чем взаимодействует: с пользователями, другими сервисами или устройствами.</p>
50
<p>Границы помогают не уходить в лишние детали и не тратить ресурсы на их проработку. Например, в приложении такси в границах use case может быть заказ поездки, оплата и карта города, а управление автопарком или маршрутизацию описывать необязательно.</p>
50
<p>Границы помогают не уходить в лишние детали и не тратить ресурсы на их проработку. Например, в приложении такси в границах use case может быть заказ поездки, оплата и карта города, а управление автопарком или маршрутизацию описывать необязательно.</p>
51
<p>Нужно чётко определить, кто участвует в сценарии использования. Есть первичные акторы (они начинают процесс, и конечный результат важен для них) и вторичные (те, кто подключается позже). Актором может быть не только человек, но и, например, платёжная система.</p>
51
<p>Нужно чётко определить, кто участвует в сценарии использования. Есть первичные акторы (они начинают процесс, и конечный результат важен для них) и вторичные (те, кто подключается позже). Актором может быть не только человек, но и, например, платёжная система.</p>
52
<p>После того как акторы определены, нужно понять, чего они хотят. Цель должна быть конкретной и полезной для акторов. Часто её формулируют как<strong>"глагол + объект"</strong>: например, "оформить заказ", "авторизоваться в программе" или "запросить поддержку".</p>
52
<p>После того как акторы определены, нужно понять, чего они хотят. Цель должна быть конкретной и полезной для акторов. Часто её формулируют как<strong>"глагол + объект"</strong>: например, "оформить заказ", "авторизоваться в программе" или "запросить поддержку".</p>
53
<p>Цель помогает сосредоточиться на основной задаче сценария и не уходить в технические детали.</p>
53
<p>Цель помогает сосредоточиться на основной задаче сценария и не уходить в технические детали.</p>
54
<p>Это стандартный путь, когда всё идёт без ошибок. Шаг за шагом аналитик описывает действия акторов и реакцию ПО.</p>
54
<p>Это стандартный путь, когда всё идёт без ошибок. Шаг за шагом аналитик описывает действия акторов и реакцию ПО.</p>
55
<p>Несколько советов по проработке основного сценария:</p>
55
<p>Несколько советов по проработке основного сценария:</p>
56
<ul><li>Используйте нумерованный список.</li>
56
<ul><li>Используйте нумерованный список.</li>
57
<li>Каждый шаг - простое действие: "Пользователь вводит адрес", "Система проверяет наличие машины поблизости" и тому подобное.</li>
57
<li>Каждый шаг - простое действие: "Пользователь вводит адрес", "Система проверяет наличие машины поблизости" и тому подобное.</li>
58
<li>Ошибки пока не учитываются. Мы игнорируем то, что они могут появиться.</li>
58
<li>Ошибки пока не учитываются. Мы игнорируем то, что они могут появиться.</li>
59
<li>Сценарий должен логично завершаться - цель пользователя достигнута.</li>
59
<li>Сценарий должен логично завершаться - цель пользователя достигнута.</li>
60
</ul><p>Здесь учитываются отклонения от основного пути: ошибки, отмены и другие возможные варианты событий. Для каждого шага аналитик продумывает, что может пойти не так и как система должна реагировать на это.</p>
60
</ul><p>Здесь учитываются отклонения от основного пути: ошибки, отмены и другие возможные варианты событий. Для каждого шага аналитик продумывает, что может пойти не так и как система должна реагировать на это.</p>
61
<p>Важно всегда указывать условия перехода к альтернативному сценарию и то, как вернуться к основному или завершить работу пользователя с ошибкой.</p>
61
<p>Важно всегда указывать условия перехода к альтернативному сценарию и то, как вернуться к основному или завершить работу пользователя с ошибкой.</p>
62
<p>Когда основной и альтернативные сценарии готовы, нужно убедиться, что описание получилось цельным и логичным: нет ли противоречий и пробелов, которые могут вызвать ошибки при реализации.</p>
62
<p>Когда основной и альтернативные сценарии готовы, нужно убедиться, что описание получилось цельным и логичным: нет ли противоречий и пробелов, которые могут вызвать ошибки при реализации.</p>
63
<p>Сначала оценивают, насколько согласованы акторы и границы системы: нет ли действий, которые выполняют пользователи, не имеющие к этому доступа? Затем смотрят, все ли возможные ситуации учтены: предусмотрены ли ошибки или непредвиденные сбои?</p>
63
<p>Сначала оценивают, насколько согласованы акторы и границы системы: нет ли действий, которые выполняют пользователи, не имеющие к этому доступа? Затем смотрят, все ли возможные ситуации учтены: предусмотрены ли ошибки или непредвиденные сбои?</p>
64
<p>После этого аналитик проверяет переходы между ветками сценария: если пользователь может вернуться из альтернативного пути в основной, это должно быть явно описано. Каждый сценарий обязан завершаться определённым состоянием системы - успешным или с ошибкой.</p>
64
<p>После этого аналитик проверяет переходы между ветками сценария: если пользователь может вернуться из альтернативного пути в основной, это должно быть явно описано. Каждый сценарий обязан завершаться определённым состоянием системы - успешным или с ошибкой.</p>
65
<p>После этого use case показывают команде: разработчикам, тестировщикам и заказчику, чтобы заметить нестыковки, которые можно пропустить. Наконец, важно убедиться, что сценарий читается легко, иначе его лучше разделить на несколько связанных use case или подзадач - так описание останется понятным и управляемым.</p>
65
<p>После этого use case показывают команде: разработчикам, тестировщикам и заказчику, чтобы заметить нестыковки, которые можно пропустить. Наконец, важно убедиться, что сценарий читается легко, иначе его лучше разделить на несколько связанных use case или подзадач - так описание останется понятным и управляемым.</p>
66
<p>Посмотрим на упрощённые примеры сценариев использования из разных сфер: корпоративной системы, интернет-магазина и мобильного приложения.</p>
66
<p>Посмотрим на упрощённые примеры сценариев использования из разных сфер: корпоративной системы, интернет-магазина и мобильного приложения.</p>
67
<p><strong>Название:</strong>Авторизация пользователя.</p>
67
<p><strong>Название:</strong>Авторизация пользователя.</p>
68
<p><strong>Акторы:</strong></p>
68
<p><strong>Акторы:</strong></p>
69
<ul><li>пользователь;</li>
69
<ul><li>пользователь;</li>
70
<li>система аутентификации.</li>
70
<li>система аутентификации.</li>
71
</ul><p><strong>Предусловия:</strong></p>
71
</ul><p><strong>Предусловия:</strong></p>
72
<ul><li>пользователь зарегистрирован или ему разрешено войти как гостю;</li>
72
<ul><li>пользователь зарегистрирован или ему разрешено войти как гостю;</li>
73
<li>нужные данные (логин/пароль или токен) доступны.</li>
73
<li>нужные данные (логин/пароль или токен) доступны.</li>
74
</ul><p><strong>Основной сценарий:</strong></p>
74
</ul><p><strong>Основной сценарий:</strong></p>
75
<ul><li>Пользователь открывает экран входа на веб-сайте.</li>
75
<ul><li>Пользователь открывает экран входа на веб-сайте.</li>
76
<li>Вводит логин и пароль.</li>
76
<li>Вводит логин и пароль.</li>
77
<li>Система проверяет данные.</li>
77
<li>Система проверяет данные.</li>
78
<li>Если данные корректные - система переводит пользователя на главную страницу.</li>
78
<li>Если данные корректные - система переводит пользователя на главную страницу.</li>
79
<li>Сценарий успешно завершён.</li>
79
<li>Сценарий успешно завершён.</li>
80
</ul><p><strong>Альтернативные сценарии:</strong></p>
80
</ul><p><strong>Альтернативные сценарии:</strong></p>
81
<ul><li>Если пользователь вводит неверный пароль, то программа показывает сообщение об ошибке и предлагает повторить ввод.</li>
81
<ul><li>Если пользователь вводит неверный пароль, то программа показывает сообщение об ошибке и предлагает повторить ввод.</li>
82
<li>Если пользователь забыл пароль, то может нажать на кнопку "Забыли пароль" и выполнить восстановление через электронную почту, которая уже зарегистрирована в системе.</li>
82
<li>Если пользователь забыл пароль, то может нажать на кнопку "Забыли пароль" и выполнить восстановление через электронную почту, которая уже зарегистрирована в системе.</li>
83
</ul><p><strong>Постусловия:</strong></p>
83
</ul><p><strong>Постусловия:</strong></p>
84
<p>Пользователь либо авторизован и может использовать функции корпоративной системы, либо получил понятное сообщение об ошибке с вариантами её устранения.</p>
84
<p>Пользователь либо авторизован и может использовать функции корпоративной системы, либо получил понятное сообщение об ошибке с вариантами её устранения.</p>
85
<p><strong>Название:</strong>Оформление заказа.</p>
85
<p><strong>Название:</strong>Оформление заказа.</p>
86
<p><strong>Акторы:</strong></p>
86
<p><strong>Акторы:</strong></p>
87
<ul><li>клиент (покупатель);</li>
87
<ul><li>клиент (покупатель);</li>
88
<li>система магазина;</li>
88
<li>система магазина;</li>
89
<li>служба доставки;</li>
89
<li>служба доставки;</li>
90
<li>система оплаты.</li>
90
<li>система оплаты.</li>
91
</ul><p><strong>Предусловия:</strong></p>
91
</ul><p><strong>Предусловия:</strong></p>
92
<ul><li>клиент вошёл в аккаунт или сделал заказ как гость;</li>
92
<ul><li>клиент вошёл в аккаунт или сделал заказ как гость;</li>
93
<li>товары, которые требуется заказать, добавлены в корзину;</li>
93
<li>товары, которые требуется заказать, добавлены в корзину;</li>
94
<li>способы оплаты и доставки доступны в регионе клиента.</li>
94
<li>способы оплаты и доставки доступны в регионе клиента.</li>
95
</ul><p><strong>Основной сценарий:</strong></p>
95
</ul><p><strong>Основной сценарий:</strong></p>
96
<ul><li>Клиент проверяет корзину и подтверждает состав товаров.</li>
96
<ul><li>Клиент проверяет корзину и подтверждает состав товаров.</li>
97
<li>Выбирает адрес доставки.</li>
97
<li>Выбирает адрес доставки.</li>
98
<li>Выбирает способ оплаты.</li>
98
<li>Выбирает способ оплаты.</li>
99
<li>Система рассчитывает стоимость доставки и итоговую сумму.</li>
99
<li>Система рассчитывает стоимость доставки и итоговую сумму.</li>
100
<li>Клиент подтверждает заказ.</li>
100
<li>Клиент подтверждает заказ.</li>
101
<li>Система отправляет запрос в платёжную систему.</li>
101
<li>Система отправляет запрос в платёжную систему.</li>
102
<li>После подтверждения платёжной системы заказ обозначается как оплаченный, происходит уведомление склада и службы доставки. Подтверждение оплаты обязательно направляется клиенту по email или в приложении.</li>
102
<li>После подтверждения платёжной системы заказ обозначается как оплаченный, происходит уведомление склада и службы доставки. Подтверждение оплаты обязательно направляется клиенту по email или в приложении.</li>
103
</ul><p><strong>Альтернативные сценарии:</strong></p>
103
</ul><p><strong>Альтернативные сценарии:</strong></p>
104
<ul><li>Если один из товаров отсутствует на складе, то система предлагает удалить его или выбрать аналог.</li>
104
<ul><li>Если один из товаров отсутствует на складе, то система предлагает удалить его или выбрать аналог.</li>
105
<li>Если оплата отклонена, то пользователь получает уведомление и предложение попробовать другую карту или способ оплаты.</li>
105
<li>Если оплата отклонена, то пользователь получает уведомление и предложение попробовать другую карту или способ оплаты.</li>
106
<li>Если адрес доставки введён некорректно, то появляется сообщение об ошибке и окно для корректировки адреса.</li>
106
<li>Если адрес доставки введён некорректно, то появляется сообщение об ошибке и окно для корректировки адреса.</li>
107
</ul><p><strong>Название:</strong>Отправка push-уведомления пользователю.</p>
107
</ul><p><strong>Название:</strong>Отправка push-уведомления пользователю.</p>
108
<p><strong>Акторы:</strong></p>
108
<p><strong>Акторы:</strong></p>
109
<ul><li>приложение (серверная часть);</li>
109
<ul><li>приложение (серверная часть);</li>
110
<li>пользователь (устройство).</li>
110
<li>пользователь (устройство).</li>
111
</ul><p><strong>Предусловия:</strong></p>
111
</ul><p><strong>Предусловия:</strong></p>
112
<ul><li>пользователь установил приложение;</li>
112
<ul><li>пользователь установил приложение;</li>
113
<li>разрешил получение push-уведомлений в настройках операционной системы;</li>
113
<li>разрешил получение push-уведомлений в настройках операционной системы;</li>
114
<li>имеется событие, которое должно вызвать вызов уведомления, например новое сообщение, акция или другое.</li>
114
<li>имеется событие, которое должно вызвать вызов уведомления, например новое сообщение, акция или другое.</li>
115
</ul><p><strong>Основной сценарий:</strong></p>
115
</ul><p><strong>Основной сценарий:</strong></p>
116
<ul><li>Событие генерируется на сервере (например, новая акция или сообщение).</li>
116
<ul><li>Событие генерируется на сервере (например, новая акция или сообщение).</li>
117
<li>Сервер формирует содержимое уведомления: заголовок, текст, ссылку и так далее.</li>
117
<li>Сервер формирует содержимое уведомления: заголовок, текст, ссылку и так далее.</li>
118
<li>Сервер отправляет уведомление через push-сервер (FCM, APNS и другие).</li>
118
<li>Сервер отправляет уведомление через push-сервер (FCM, APNS и другие).</li>
119
<li>Устройство пользователя получает уведомление.</li>
119
<li>Устройство пользователя получает уведомление.</li>
120
<li>На устройстве отображается уведомление.</li>
120
<li>На устройстве отображается уведомление.</li>
121
<li>Пользователь нажимает на уведомление.</li>
121
<li>Пользователь нажимает на уведомление.</li>
122
<li>Открывается приложение с соответствующим экраном, например с информацией про акцию.</li>
122
<li>Открывается приложение с соответствующим экраном, например с информацией про акцию.</li>
123
</ul><p><strong>Альтернативные сценарии:</strong></p>
123
</ul><p><strong>Альтернативные сценарии:</strong></p>
124
<ul><li>Если пользователь отключил уведомления, то устройство не получает уведомление. Возможно, ПО будет логировать то, что уведомление отправлено, но не доставлено.</li>
124
<ul><li>Если пользователь отключил уведомления, то устройство не получает уведомление. Возможно, ПО будет логировать то, что уведомление отправлено, но не доставлено.</li>
125
<li>Если устройство находится вне зоны доступа или не подключено к Сети в момент отправки, то уведомление доставляется, когда устройство снова будет доступно.</li>
125
<li>Если устройство находится вне зоны доступа или не подключено к Сети в момент отправки, то уведомление доставляется, когда устройство снова будет доступно.</li>
126
<li>Если уведомление имеет неправильный формат данных для отображения на устройстве, то оно не отображается. Сервер должен логировать это событие для последующего решения бага.</li>
126
<li>Если уведомление имеет неправильный формат данных для отображения на устройстве, то оно не отображается. Сервер должен логировать это событие для последующего решения бага.</li>
127
</ul>Упрощённая UML-диаграмма для use case с отправкой push-уведомления в мобильном приложении<em>Иллюстрация: Майя Мальгина для Skillbox Media</em><p>Составлять сценарий использования удобнее всего при помощи специализированных сервисов. Они позволяют быстро строить диаграммы, используя принципы UML, хранить их в проекте и совместно работать над ними с командой.</p>
127
</ul>Упрощённая UML-диаграмма для use case с отправкой push-уведомления в мобильном приложении<em>Иллюстрация: Майя Мальгина для Skillbox Media</em><p>Составлять сценарий использования удобнее всего при помощи специализированных сервисов. Они позволяют быстро строить диаграммы, используя принципы UML, хранить их в проекте и совместно работать над ними с командой.</p>
128
<p><a>Draw.io</a> - бесплатный онлайн-редактор диаграмм, у которого есть десктопная версия. Работает прямо в браузере и не требует регистрации, хотя с аккаунтом можно подключить синхронизацию через Google Drive или другие облачные сервисы.</p>
128
<p><a>Draw.io</a> - бесплатный онлайн-редактор диаграмм, у которого есть десктопная версия. Работает прямо в браузере и не требует регистрации, хотя с аккаунтом можно подключить синхронизацию через Google Drive или другие облачные сервисы.</p>
129
<p>В библиотеке Draw.io есть готовые элементы для UML: символы для акторов, овалы для конкретных действий, рамка системы и стрелки со связями. Можно нарисовать схему вручную или взять готовый шаблон, чтобы упростить работу. Ограничение одно: поддерживать актуальность сложной документации придётся вручную, без автоматического внесения изменений в созданные диаграммы.</p>
129
<p>В библиотеке Draw.io есть готовые элементы для UML: символы для акторов, овалы для конкретных действий, рамка системы и стрелки со связями. Можно нарисовать схему вручную или взять готовый шаблон, чтобы упростить работу. Ограничение одно: поддерживать актуальность сложной документации придётся вручную, без автоматического внесения изменений в созданные диаграммы.</p>
130
<p><a>Lucidchart</a> - это облачный сервис для команд, где можно строить UML-диаграммы и сразу делиться ими с коллегами. В Lucidchart есть готовые шаблоны и возможность создавать диаграммы из текста. Например, аналитик пишет описание шагов, а система автоматически собирает из него последовательную диаграмму.</p>
130
<p><a>Lucidchart</a> - это облачный сервис для команд, где можно строить UML-диаграммы и сразу делиться ими с коллегами. В Lucidchart есть готовые шаблоны и возможность создавать диаграммы из текста. Например, аналитик пишет описание шагов, а система автоматически собирает из него последовательную диаграмму.</p>
131
<p>Инструмент интегрируется с Google Drive, Confluence и Jira. Благодаря этому его часто используют в больших командах, где важна интеграция с другими сервисами. Большая часть функций доступна только на платных тарифах.</p>
131
<p>Инструмент интегрируется с Google Drive, Confluence и Jira. Благодаря этому его часто используют в больших командах, где важна интеграция с другими сервисами. Большая часть функций доступна только на платных тарифах.</p>
132
<p><a>PlantUML</a> - это инструмент для тех, кто предпочитает текст графическим элементам. Здесь диаграммы описываются кодом - короткими строками вроде actor User, usecase "Login", User --> (Login). А сервис перестраивает это в UML-диаграмму. Подробная документация доступна на сайте ПО.</p>
132
<p><a>PlantUML</a> - это инструмент для тех, кто предпочитает текст графическим элементам. Здесь диаграммы описываются кодом - короткими строками вроде actor User, usecase "Login", User --> (Login). А сервис перестраивает это в UML-диаграмму. Подробная документация доступна на сайте ПО.</p>
133
<p>Схемы в PlantUML можно хранить в репозитории вместе с кодом, разделять на отдельные версии и обновлять автоматически. Минус в том, что графического интерфейса нет: придётся учить синтаксис, а визуально схемы в итоге выглядят проще, чем в специализированных редакторах.</p>
133
<p>Схемы в PlantUML можно хранить в репозитории вместе с кодом, разделять на отдельные версии и обновлять автоматически. Минус в том, что графического интерфейса нет: придётся учить синтаксис, а визуально схемы в итоге выглядят проще, чем в специализированных редакторах.</p>
134
<p>Каждый инструмент решает свои задачи. Draw.io подойдёт, если нужно быстро и бесплатно построить диаграмму use case. Lucidchart - выбор для команд, когда важна интеграция и совместная работа. PlantUML - хороший вариант, если диаграммы должны храниться рядом с кодом и аналитик предпочитает описывать действия текстом, а не работать с визуальными инструментами.</p>
134
<p>Каждый инструмент решает свои задачи. Draw.io подойдёт, если нужно быстро и бесплатно построить диаграмму use case. Lucidchart - выбор для команд, когда важна интеграция и совместная работа. PlantUML - хороший вариант, если диаграммы должны храниться рядом с кодом и аналитик предпочитает описывать действия текстом, а не работать с визуальными инструментами.</p>
135
<p>Часто два этих понятия путают, но это разные инструменты, которые решают разные задачи.</p>
135
<p>Часто два этих понятия путают, но это разные инструменты, которые решают разные задачи.</p>
136
<p><strong>User story</strong>(пользовательская история) - это короткое описание того, что нужно пользователю от продукта и зачем. Она помогает сформулировать задачу с точки зрения человека - чтобы команда понимала, какую пользу несёт отдельная функция или ПО в целом.</p>
136
<p><strong>User story</strong>(пользовательская история) - это короткое описание того, что нужно пользователю от продукта и зачем. Она помогает сформулировать задачу с точки зрения человека - чтобы команда понимала, какую пользу несёт отдельная функция или ПО в целом.</p>
137
<p>Структура у user story простая:<strong>"Как [роль] я хочу [цель], чтобы [результат]"</strong>.<strong></strong>Например: "Как покупатель я хочу сохранять товары в избранное, чтобы вернуться к ним позже". Для user story, в отличие от use case, не прорабатывают пошаговые сценарии и не строят для них диаграммы. Основной акцент делают на коротком описании желаемого для пользователя результате.</p>
137
<p>Структура у user story простая:<strong>"Как [роль] я хочу [цель], чтобы [результат]"</strong>.<strong></strong>Например: "Как покупатель я хочу сохранять товары в избранное, чтобы вернуться к ним позже". Для user story, в отличие от use case, не прорабатывают пошаговые сценарии и не строят для них диаграммы. Основной акцент делают на коротком описании желаемого для пользователя результате.</p>
138
<p>Пользовательские истории появляются на этапе планирования продукта. Продакт-менеджер или аналитик собирает их, оценивает приоритеты и формирует бэклог - список функций, которые предстоит реализовать. На следующем этапе каждая история превращается в более детальные сценарии, макеты и задачи для разработки.</p>
138
<p>Пользовательские истории появляются на этапе планирования продукта. Продакт-менеджер или аналитик собирает их, оценивает приоритеты и формирует бэклог - список функций, которые предстоит реализовать. На следующем этапе каждая история превращается в более детальные сценарии, макеты и задачи для разработки.</p>
139
<p>На практике use case и user story хорошо сочетаются. User story задаёт направление: что нужно пользователю и зачем. А use case раскрывает детали: как именно система должна реагировать на действия пользователя и какие исключения нужно учесть.</p>
139
<p>На практике use case и user story хорошо сочетаются. User story задаёт направление: что нужно пользователю и зачем. А use case раскрывает детали: как именно система должна реагировать на действия пользователя и какие исключения нужно учесть.</p>
140
<a>Курс с трудоустройством: "Профессия Разработчик + ИИ" Узнать о курсе</a>
140
<a>Курс с трудоустройством: "Профессия Разработчик + ИИ" Узнать о курсе</a>