HTML Diff
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 --&gt; (Login). А сервис перестраивает это в UML-диаграмму. Подробная документация доступна на сайте ПО.</p>
132 <p><a>PlantUML</a> - это инструмент для тех, кто предпочитает текст графическим элементам. Здесь диаграммы описываются кодом - короткими строками вроде actor User, usecase "Login", User --&gt; (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>