граф состояний

This commit is contained in:
2025-11-18 09:43:39 +03:00
parent c90daa8cd1
commit 8eafc13720
3 changed files with 174 additions and 7 deletions

View File

@@ -458,16 +458,113 @@
\end{itemize}
\section{Описание структуры диалога и его обоснование}
Диалоговая модель основана на мастер-пошаговом подходе: сначала пользователь формирует маршрут, затем подтверждает состав группы и включает режим навигации. Такой порядок минимизирует когнитивную нагрузку и уменьшает вероятность пропуска ключевых шагов. Линейность важна для пожилых пользователей, поэтому избегаются глубокие вложенные меню и скрытые жесты.
\section{Описание структуры команд пользователей}
Основные команды расположены на нижней панели: \textit{Маршрут}, \textit{Группа}, \textit{Корзина}, \textit{SOS}. Дополнительные действия скрыты за контекстным меню карты. Команды формулируются глаголами действия ("Скачать карту", "Отметить точку", "Отправить сигнал"), что снижает неоднозначность и помогает пользователям с разным опытом.
Структура диалога приложения организована в виде графа состояний, отражающего полный цикл взаимодействия пользователя с системой: от первоначальной авторизации до завершения похода и анализа результатов. Граф учитывает различные роли пользователей (организатор, участник, дистанционный наблюдатель, доверенный волонтёр) и обеспечивает быстрый доступ к критически важным функциям безопасности из любого состояния.
\section{Физическая реализация команд пользователей}
Команды выполняются через крупные кнопки и свайпы. В режиме «Проводник» используются физические кнопки громкости как горячие клавиши: двойное нажатие --- отправка геометки, долгое удержание --- SOS. Такой подход учитывает перчатки, мокрые экраны и минимизирует вероятность промаха.
\textbf{Приложение может находиться в следующих состояниях:}
\begin{itemize}
\item[a)] \textbf{Начальное состояние.} Главный экран с выбором основных действий: создание нового похода, присоединение к существующему по приглашению, просмотр архива прошлых походов.
\item[b)] \textbf{Планирование похода.} Конструктор маршрута с размещением контрольных точек на карте, выбором даты и времени, просмотром прогноза погоды, загрузкой офлайн-карт региона.
\item[c)] \textbf{Управление участниками.} Формирование группы похода: отправка приглашений членам семьи и друзьям, просмотр подтверждений участия, назначение ролей (организатор, участник), добавление доверенных контактов для экстренных ситуаций.
\item[d)] \textbf{Чек-лист снаряжения.} Совместная подготовка к походу: выбор шаблона снаряжения, распределение ответственности за предметы между участниками, отслеживание выполнения сборов.
\item[e)] \textbf{Режим активной навигации.} Основное состояние во время похода: отображение карты с местоположением всех участников, навигация к контрольным точкам, мониторинг расстояний и времени, контроль заряда батарей устройств. Доступны адаптивные режимы: полная карта, упрощённый "Проводник" для пожилых, компасный режим при слабом GPS.
\item[f)] \textbf{Фиксация находки.} Фотографирование найденного гриба с автоматическим сохранением GPS-координат, времени и погодных условий. Возможность добавления текстовых или голосовых комментариев, выбора вида гриба из справочника.
\item[g)] \textbf{Семейная корзина.} Просмотр всех зафиксированных находок группы в реальном времени с указанием авторов, местоположений на карте, фотографиями. Возможность добавления реакций, комментариев, экспертных оценок от опытных грибников.
\item[h)] \textbf{Семейный чат.} Обмен текстовыми и голосовыми сообщениями между участниками похода, отправка фотографий, быстрые реакции, автоматическое прикрепление геолокации к сообщениям.
\item[i)] \textbf{Справочник грибов.} Просмотр базы знаний о распространённых видах грибов с эталонными фотографиями, описаниями съедобности, сезонов плодоношения, предупреждениями о ядовитых двойниках. Поиск и сравнение найденных грибов с базой.
\item[j)] \textbf{Экстренный режим (SOS).} Активация тревожного сигнала с обратным отсчётом для предотвращения случайных нажатий. Автоматическая отправка координат, состава группы и медицинской информации доверенным контактам и службам спасения.
\item[k)] \textbf{Панель организатора.} Расширенный режим мониторинга для ответственного лица: отслеживание всех участников, контроль соблюдения графика, управление маршрутом, корректировка контрольных точек, принудительное оповещение группы.
\item[l)] \textbf{Архив походов.} Просмотр списка завершённых походов с краткой статистикой: дата, маршрут, участники, количество найденных грибов, пройденное расстояние.
\item[m)] \textbf{Детальный просмотр похода.} Анализ конкретного похода из архива: GPS-трек на карте, временная шкала событий, фотографии всех находок с геометками, статистика по участникам, экспорт отчёта в PDF.
\end{itemize}
\textbf{Переходы между состояниями происходят по следующим действиям:}
\begin{enumerate}
\item \textbf{Создание нового похода.} Переход из начального состояния (a) в планирование похода (b). Инициируется организатором для подготовки нового маршрута.
\item \textbf{Присоединение к походу по приглашению (день похода).} Переход из начального состояния (a) в режим активной навигации (e) для участников, принявших приглашение и готовых начать поход.
\item \textbf{Присоединение к походу по приглашению (подготовка).} Переход из начального состояния (a) в чек-лист снаряжения (d) на этапе подготовки к походу.
\item \textbf{Переход к управлению участниками.} Из планирования похода (b) в управление участниками (c) для формирования группы и отправки приглашений.
\item \textbf{Переход к чек-листу снаряжения.} Из управления участниками (c) в чек-лист снаряжения (d) для подготовки необходимых предметов.
\item \textbf{Переход к чек-листу снаряжения.} Из планирования похода (b) в чек-лист снаряжения (d) напрямую.
\item \textbf{Начало похода.} Переход из чек-листа (d) в режим активной навигации (e). Активирует GPS-отслеживание и синхронизацию местоположений всех участников.
\item \textbf{Начало похода.} Переход из планирования похода (b) в режим активной навигации (e) напрямую.
\item \textbf{Фотографирование находки.} Из режима навигации (e) в фиксацию находки (f). Доступно любому участнику при обнаружении гриба.
\item \textbf{Сохранение находки и возврат к навигации.} Из фиксации находки (f) обратно в режим навигации (e) с автоматическим добавлением записи в семейную корзину (g).
\item \textbf{Открытие семейной корзины.} Из режима навигации (e) в просмотр семейной корзины (g) для анализа всех находок группы.
\item \textbf{Возврат к навигации из корзины.} Из семейной корзины (g) обратно в режим навигации (e).
\item \textbf{Открытие семейного чата.} Из режима навигации (e) в семейный чат (h) для координации и обмена сообщениями.
\item \textbf{Возврат к навигации из чата.} Из семейного чата (h) обратно в режим навигации (e).
\item \textbf{Открытие справочника грибов.} Из фиксации находки (f) в справочник грибов (i) для уточнения вида и съедобности.
\item \textbf{Открытие справочника грибов.} Из семейной корзины (g) в справочник грибов (i) для проверки информации о найденных грибах.
\item \textbf{Возврат к фиксации находки.} Из справочника грибов (i) обратно в фиксацию находки (f).
\item \textbf{Возврат к семейной корзине.} Из справочника грибов (i) обратно в семейную корзину (g).
\item \textbf{Переход в панель организатора.} Из режима навигации (e) в панель организатора (k) для расширенного контроля группы. Доступно только ответственному лицу.
\item \textbf{Возврат к навигации из панели организатора.} Из панели организатора (k) обратно в режим навигации (e).
\item \textbf{Завершение похода.} Из режима навигации (e) в архив походов (l) с автоматическим сохранением всех данных: трека, находок, статистики.
\item \textbf{Просмотр архива.} Из начального состояния (a) в архив походов (l) для анализа прошлых маршрутов.
\item \textbf{Открытие конкретного похода.} Из архива (l) в детальный просмотр похода (m) с полной статистикой и картой.
\item \textbf{Активация SOS.} Из любого состояния в экстренный режим (j) при нажатии тревожной кнопки. Критически важный переход, доступный с любого экрана.
\item \textbf{Возврат на главный экран.} Из любого состояния (кроме активной навигации e и экстренного режима j) в начальное состояние (a). Из навигации возврат возможен только через завершение похода для предотвращения случайного выхода.
\end{enumerate}
\textbf{Обоснование структуры диалога:}
Предложенная структура диалога основана на трёх ключевых принципах. Во-первых, обеспечение безопасности: переход в экстренный режим (SOS) доступен из любого состояния одним действием, что критически важно в опасных ситуациях. Во-вторых, минимизация когнитивной нагрузки: для пожилых пользователей предусмотрен линейный переход по основным состояниям (начало → навигация → фиксация находки → возврат к навигации) без необходимости глубокой навигации по меню. В-третьих, гибкость для опытных пользователей: организатор и участники с высокой цифровой грамотностью могут быстро переключаться между параллельными состояниями (навигация, чат, корзина, панель организатора) для эффективной многозадачности.
\addtocounter{figure}{1}
\includepdf[pages={1}, fitpaper, pagecommand={
\thispagestyle{empty}
\begin{tikzpicture}[remember picture, overlay]
\node at (current page.south) [anchor=north, yshift=35pt] {\large{Рис 1. Граф состояний приложения}};
\end{tikzpicture}
}]{pdf/graph.pdf}
% \section{Описание структуры команд пользователей}
% \section{Физическая реализация команд пользователей}
% Команды выполняются через крупные кнопки и свайпы. В режиме «Проводник» используются физические кнопки громкости как горячие клавиши: двойное нажатие --- отправка геометки, долгое удержание --- SOS. Такой подход учитывает перчатки, мокрые экраны и минимизирует вероятность промаха.
\section{Технология ввода данных}
Используются касания, свайпы и голосовой ввод для заметок и поиска грибов. Формы содержат минимальное число обязательных полей, геоданные и фотографии подставляются автоматически. Для детей ввод действий требует подтверждения родителей через push-уведомление.
\section{Описание ошибок пользователей}
Возможные ошибки: случайное нажатие SOS, неверный выбор контрольной точки, закрытие навигации из-за слабого интернета, дублирование отметок грибов, опоздание на контрольное время, неверное указание координаты при плохом GPS.