\documentclass[a4paper, final]{article}
%\usepackage{literat} % Нормальные шрифты
\usepackage[14pt]{extsizes} % для того чтобы задать нестандартный 14-ый размер шрифта
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{amsmath}
\usepackage[left=25mm, top=20mm, right=20mm, bottom=20mm, footskip=10mm]{geometry}
\usepackage{ragged2e} %для растягивания по ширине
\usepackage{setspace} %для межстрочно   го интервала
\usepackage{moreverb} %для работы с листингами
\usepackage{indentfirst} % для абзацного отступа
\usepackage{moreverb} %для печати в листинге исходного кода программ
\usepackage{pdfpages} %для вставки других pdf файлов
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{afterpage}
\usepackage{longtable}
\usepackage{float}
\usepackage{xcolor}



% \usepackage[paper=A4,DIV=12]{typearea}
\usepackage{pdflscape}
% \usepackage{lscape}

\usepackage{array}
\usepackage{multirow}

\renewcommand\verbatimtabsize{4\relax}
\renewcommand\listingoffset{0.2em} %отступ от номеров строк в листинге
\renewcommand{\arraystretch}{1.4} % изменяю высоту строки в таблице
\usepackage[font=small, singlelinecheck=false, justification=centering, format=plain, labelsep=period]{caption} %для настройки заголовка таблицы
\usepackage{listings} %листинги
\usepackage{xcolor} % цвета
\usepackage{hyperref}% для гиперссылок
\usepackage{enumitem} %для перечислений

\newcommand{\specialcell}[2][l]{\begin{tabular}[#1]{@{}l@{}}#2\end{tabular}}


\setlist[enumerate,itemize]{leftmargin=1.2cm} %отступ в перечислениях

\hypersetup{colorlinks,
    allcolors=[RGB]{010 090 200}} %красивые гиперссылки (не красные)

% подгружаемые языки — подробнее в документации listings (это всё для листингов)
\lstloadlanguages{ SQL}
% включаем кириллицу и добавляем кое−какие опции
\lstset{tabsize=2,
    breaklines,
    basicstyle=\footnotesize,
    columns=fullflexible,
    flexiblecolumns,
    numbers=left,
    numberstyle={\footnotesize},
    keywordstyle=\color{blue},
    inputencoding=cp1251,
    extendedchars=true
}
\lstdefinelanguage{MyC}{
    language=SQL,
%    ndkeywordstyle=\color{darkgray}\bfseries,
%    identifierstyle=\color{black},
%    morecomment=[n]{/**}{*/},
%    commentstyle=\color{blue}\ttfamily,
%    stringstyle=\color{red}\ttfamily,
%    morestring=[b]",\
%    showstringspaces=false,
%    morecomment=[l][\color{gray}]{//},
    keepspaces=true,
    escapechar=\%,
    texcl=true
}

\textheight=24cm % высота текста
\textwidth=16cm % ширина текста
\oddsidemargin=0pt % отступ от левого края
\topmargin=-1.5cm % отступ от верхнего края
\parindent=24pt % абзацный отступ
\parskip=5pt % интервал между абзацами
\tolerance=2000 % терпимость к "жидким" строкам
\flushbottom % выравнивание высоты страниц


% Настройка листингов
\lstset{
    language=python,
    extendedchars=\true,
    inputencoding=utf8,
    keepspaces=true,
    % captionpos=b, % подписи листингов снизу
}

\begin{document} % начало документа



    % НАЧАЛО ТИТУЛЬНОГО ЛИСТА
    \begin{center}
        \hfill \break
        \hfill \break
        \normalsize{МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ\\
            федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский политехнический университет Петра Великого»\\[10pt]}
        \normalsize{Институт компьютерных наук и кибербезопасности}\\[10pt]
        \normalsize{Высшая школа технологий искусственного интеллекта}\\[10pt]
        \normalsize{Направление: 02.03.01 <<Математика и компьютерные науки>>}\\

        \hfill \break
        \hfill \break
        \hfill \break
        \large{Лабораторная работа №1}\\
        \large{разработка интерфейса пользователя для интерактивного приложения по теме}\\
        \large{<<Организация семейного похода за грибами>>}\\
        \large{по дисциплине}\\
        \large{<<Разработка человеко-машинного интерфейса>>}\\

        \hfill \break
        \hfill \break
    \end{center}

    \small{
        \begin{tabular}{lrrl}
            \!\!\!Студент, & \hspace{2cm} & & \\
            \!\!\!группы 5130201/20101 & \hspace{2cm} & \underline{\hspace{3cm}} &Тищенко А. А. \\\\
            \!\!\!Преподаватель & \hspace{2cm} &  \underline{\hspace{3cm}} &  Курочкин М. А. \\\\
            &&\hspace{4cm}
        \end{tabular}
        \begin{flushright}
            <<\underline{\hspace{1cm}}>>\underline{\hspace{2.5cm}} 2025г.
        \end{flushright}
    }

    \hfill \break
    % \hfill \break
    \begin{center} \small{Санкт-Петербург, 2025} \end{center}
    \thispagestyle{empty} % выключаем отображение номера для этой страницы

    % КОНЕЦ ТИТУЛЬНОГО ЛИСТА
    \newpage

    \tableofcontents

    \newpage
    \section*{Введение}
    \addcontentsline{toc}{section}{Введение}
    Цель лабораторной работы --- закрепить навыки системного описания пользовательского интерфейса для интерактивного приложения. В качестве предметной области выбрана организация семейного похода за грибами: сервис должен помогать нескольким поколениям планировать маршрут, следить за безопасностью и вести учёт собранных грибов. В отчёте зафиксированы заинтересованные лица, риски, пользовательские модели и сценарии взаимодействия.

    \newpage
    \section{Постановка задачи}
    Требуется разработать пользовательский интерфейс интерактивного приложения, помогающего семье планировать и проводить походы за грибами. В отчёте системно описываются цели проекта, заинтересованные лица, требования, портреты пользователей, риски, сценарии задач, методы обработки ошибок и основы информационной модели. Экранные формы будут включены в приложение, поэтому внимание сосредоточено на структурировании требований и диалогов.

    \subsection*{Контекст и назначение продукта}
    Приложение предназначено для семей с разным уровнем цифровой грамотности, которые хотят безопасно собирать грибы в пригородных лесах. Оно должно объединить подготовку (маршруты, снаряжение), сопровождение в пути (навигация, контрольные точки, экстренные сигналы) и подведение итогов (отчёты и архив).

    \subsection*{Основные цели решения}
    \begin{itemize}
        \item Упростить совместное планирование похода: выбор лесного массива, приглашение участников, согласование времени и проверка готовности по чек-листу.
        \item Повысить безопасность во время маршрута за счёт контроля геопозиций, напоминаний о контрольных точках и понятных действий в экстренной ситуации.
        \item Поддержать интерес семьи через ведение «корзины» найденных грибов, фотофиксацию и краткие рекомендации по бережному сбору.
    \end{itemize}

    \subsection*{Функциональные требования первого прототипа}
    \begin{itemize}
        \item Планирование похода: создание маршрута с контрольными точками, предварительная загрузка офлайн-карты, проверка погоды и тайминг контрольных сборов.
        \item Совместная подготовка: формирование чек-листа снаряжения, назначение ответственных, отправка приглашений из телефонной книги с подтверждением участия.
        \item Навигация в лесу: отображение текущего положения и расстояния до ближайшей точки, голосовые подсказки, переключение в упрощённый «Проводник» для пожилых участников.
        \item Аварийный режим: кнопка SOS с автоматической отправкой координат, заряда батареи и последней контрольной точки выбранным контактам и волонтёру.
        \item Фиксация находок: добавление фотографий грибов, сохранение координат и заметок, быстрый просмотр общей «корзины» семьи.
    \end{itemize}

    \subsection*{Нефункциональные требования и ограничения}
    \begin{itemize}
        \item Доступность: крупные элементы управления, настраиваемый шрифт, голосовые подсказки и контрастная тема для слабовидящих пользователей.
        \item Работа в условиях плохой связи: офлайн-кеш карт и контрольных точек, автосохранение маршрута, SMS-резерв для критических уведомлений.
        \item Защита данных: шифрование локального кеша, явное согласие на обмен геопозицией, понятные настройки приватности без скрытых опций.
        \item Производительность: время отклика ключевых действий (открытие карты, отметка точки, отправка SOS) не более 2 секунд на устройствах среднего уровня.
        \item Совместимость: поддержка актуальных версий Android и iOS, веб-доступ через современные браузеры для подготовки похода.
    \end{itemize}

    \subsection*{Границы и допущения}
    \begin{itemize}
        \item Приложение не принимает медицинских решений и не заменяет связь со службами спасения, а лишь передаёт координаты и контакты.
        \item Классификация грибов выполняется пользователем вручную; автоматическое распознавание фото может быть добавлено позже как дополняющая функция.
        \item Предполагается базовая подготовка похода в зоне стабильной связи для предварительной загрузки карт и рассылки приглашений.
        \item Пользователи согласны делиться минимальным набором данных (имя, телефон, местоположение во время похода) в пределах семьи и выбранных волонтёров.
    \end{itemize}

    \subsection*{Критерии готовности лабораторной работы}
    \begin{itemize}
        \item Требования сформулированы и увязаны с пользовательскими сценариями: планирование, совместная подготовка, навигация, SOS, фиксация находок.
        \item Риски описаны и снабжены способами смягчения в контексте интерфейса и поведения пользователя.
        \item Модель пользователей, задачи, диалоговые структуры и информационная модель оформлены в отчёте и могут служить основой для построения прототипа экранов.
    \end{itemize}

    \section{Цели и заинтересованные лица}
    \subsection{Цель проекта}
    Создать прототип интерфейса мобильного и веб-приложения, который объединяет семью при планировании походов за грибами, обеспечивает безопасность участников и помогает вести инвентаризацию добычи. Продукт должен быть понятен людям с разным опытом в цифровых технологиях и предусматривать офлайн-работу.

    \subsection{Заинтересованные лица}
    \begin{itemize}
        \item Семейные участники: родители, дети, пожилые родственники.
        \item Организатор похода (обычно один из родителей).
        \item Волонтёр-поисковик или знакомый грибник, готовый помочь в случае ЧП.
        \item Разработчики и сопровождение продукта.
        \item Региональные лесничие (получатели статистики посещений и предупреждений).
    \end{itemize}

    \subsection{Ожидания заинтересованных лиц}
    \begin{itemize}
        \item Участники хотят простого интерфейса с крупными элементами, режимом офлайн-карт и быстрым доступом к тревожной кнопке.
        \item Организатор ожидает совместного планирования: приглашения, список снаряжения, контроль состава группы.
        \item Пожилые пользователи ждут голосовых подсказок и минимального количества действий на экране.
        \item Поисковики рассчитывают на автоматические координаты в экстренных сообщениях.
        \item Лесничие заинтересованы в агрегации обезличенной статистики посещений и предупреждении о запретах.
    \end{itemize}

    \subsection{Критерии оценки результата}
    Успешным считается прототип, в котором пользователь за три шага может: (1) выбрать или создать маршрут, (2) пригласить участников и назначить время сбора, (3) включить режим безопасности. Дополнительно измеряются: время на ввод данных (не более 2 минут), количество ошибок на сценарий (не более одной) и субъективная удовлетворённость (NPS \(>30\)).

    \section{Планируемые результаты и платформа}
    \subsection{Планируемые результаты использования продукта}
    \begin{itemize}
        \item Снижение числа заблудившихся благодаря обмену геометками и контрольным точкам.
        \item Повышение дисциплины сборов через чек-листы снаряжения и уведомления.
        \item Создание семейного архива маршрутов и корзины собранных грибов с фото.
        \item Повышение экологической ответственности через советы по бережному сбору.
    \end{itemize}

    \subsection{Риски проекта и использования}
    \begin{itemize}
        \item \textbf{Технические риски}: потеря связи в лесу, разряд батареи, сбой GPS. Смягчается офлайн-кешированием и показом запаса заряда в SOS.
        \item \textbf{Человеческие риски}: забытые контрольные точки, неверное толкование навигационных меток, панические действия у детей. Снижается через упрощённые надписи, голосовые подсказки и дополнительные подтверждения.
        \item \textbf{Риски безопасности данных}: утечка геопозиций и персональной информации. Требуются шифрование, минимизация собираемых данных и прозрачные настройки доступа.
        \item \textbf{Организационные риски}: несогласованность расписания между участниками, отсутствие ответственного взрослого. Покрывается ролями и уведомлениями с подтверждением участия.
        \item \textbf{Риски удобства использования для пожилых}: мелкий шрифт, сложные жесты. Смягчается крупными кнопками, голосовым вводом и настройкой контрастности.
    \end{itemize}

    \subsection{Описание технической платформы}
    Прототип ориентирован на мобильные устройства Android/iOS с GPS и ограниченным интернетом в лесу. Веб-версия доступна из браузера для подготовки похода. Хранение данных предполагается в облаке с локальным кешем маршрутов и фотографий. Обмен координатами --- через push-уведомления и SMS-шлюз в аварийном режиме.

    \section{Требования и модель пользователей}
    \subsection{Формулировка требований к системе}
    \begin{itemize}
        \item Поддержка офлайн-карт с предварительным кешированием области.
        \item Совместное редактирование маршрутов и списка снаряжения.
        \item Быстрая отправка SOS с координатами и состоянием батареи.
        \item Защита персональных данных: шифрование хранилища, явное согласие на обмен геоданными.
        \item Адаптивный интерфейс с возможностью увеличения шрифта и контрастной темы.
        \item Локализация: русский по умолчанию, возможность подключить английский.
    \end{itemize}

    \subsection{Модель пользователей продукта}
    Основные персонажи:
    \begin{itemize}
        \item \textbf{Мария, 38 лет, организатор}. Опытный пользователь смартфона, планирует маршрут, отвечает за детей. Цели: быстро собрать группу, убедиться в готовности, контролировать местоположение.
        \item \textbf{Иван, 65 лет, дедушка-грибник}. Сильная предметная экспертиза в грибах, слабый опыт приложений. Цели: делиться знаниями, безопасно перемещаться, не тратить время на сложные меню.
        \item \textbf{Алиса, 12 лет, ребёнок}. Использует телефон для фото, любит геймификацию. Цели: видеть своё местоположение, получать простые задания и напоминания.
    \end{itemize}
    Второстепенные персонажи:
    \begin{itemize}
        \item \textbf{Сосед Пётр, 45 лет, волонтёр}. Может помочь в поиске, получает уведомления.
        \item \textbf{Инженер техподдержки}. Следит за стабильностью сервиса.
    \end{itemize}

    \subsection{Ментальная модель пользователя, метафоры и идиомы}
    Пользователи мыслят поход как совместное путешествие с точками сбора и таймерами. Интерфейс опирается на метафоры: \textit{карта тропы} (основной экран), \textit{корзина} для списка грибов, \textit{костёр} как общий чат. Идиомы: перетаскивание контрольных точек, чек-лист с галочками, крупная красная кнопка SOS.

    \subsection{Квалификация пользователя}
    Мария --- уверенный пользователь, знакома с мессенджерами и навигацией; Иван --- базовые навыки, нуждается в подсказках и крупном шрифте; Алиса --- цифрово грамотна, но требует защиты от лишних настроек; Пётр --- продвинутый пользователь, ожидает доступ к координатам и логам.

    \section{Задачи и процессы}
    \subsection{Задачи, решаемые персонажем}
    \begin{itemize}
        \item Мария: подготовка маршрута, приглашение участников, контроль присутствия, ведение чек-листа, запуск тревоги.
        \item Иван: просмотр маршрута офлайн, отметка найденных грибов, отправка фото, быстрый вызов помощи.
        \item Алиса: следование маршруту, выполнение мини-квестов (найти безопасные грибы), отправка местоположения родителям.
        \item Пётр: получение SOS, просмотр последней точки, связь с группой.
    \end{itemize}

    \subsection{Описание задач и процессов}
    \begin{enumerate}
        \item \textbf{Планирование маршрута (Мария)}: выбрать лесной массив, скачать офлайн-карту, добавить контрольные точки, отправить приглашения. Проверки: наличие связи, объём кеша.
        \item \textbf{Сбор снаряжения (Мария + Иван)}: использовать чек-лист, отмечать исполнителей, получать напоминания. Возможность напечатать список.
        \item \textbf{Навигация в лесу (все)}: просматривать текущее положение, видеть направление к контрольной точке, получать голосовые подсказки.
        \item \textbf{Фиксация находок (Иван)}: сделать фото гриба, классифицировать по шаблону, добавить заметку о месте.
        \item \textbf{Аварийный сигнал (любой участник)}: нажать кнопку SOS, автоматически отправить координаты и заряд батареи выбранным контактам и службам.
        \item \textbf{Аналитика после похода (Мария)}: просмотреть трек, количество собранных грибов, экспортировать в семейный альбом.
    \end{enumerate}

    \subsection{Описание функций}
    \begin{itemize}
        \item Кеширование карт и контрольных точек.
        \item Совместный чек-лист и чат с аудио-сообщениями.
        \item Режим "Проводник" с крупными кнопками и голосовым управлением.
        \item Фотофиксация с шаблонами и автоматическим сохранением координат.
        \item Шаблоны уведомлений SOS и связи с волонтёром.
        \item Экспорт отчёта о походе (GPX, PDF для семейного альбома).
    \end{itemize}

    \subsection{Минимизация накладных расходов}
    \begin{itemize}
        \item Предзаполнение форм (дата, привычные участники, прошлые маршруты).
        \item Голосовой ввод заметок для пожилых пользователей.
        \item Шаблоны списков снаряжения под разные погодные условия.
        \item Однакликовое продление маршрута и повторение прошлой поездки.
    \end{itemize}

    \section{Диалог и команды}
    \subsection{Структура диалога и её обоснование}
    Диалоговая модель основана на мастер-пошаговом подходе: сначала пользователь формирует маршрут, затем подтверждает состав группы и включает режим навигации. Такой порядок минимизирует когнитивную нагрузку и уменьшает вероятность пропуска ключевых шагов. Для пожилых пользователей важна линейность и повторяемость действий, поэтому глубоких вложенных меню избегаем.

    \subsection{Структура команд пользователей}
    Основные команды расположены на нижней панели: \textit{Маршрут}, \textit{Группа}, \textit{Корзина}, \textit{SOS}. Дополнительные действия скрыты за контекстным меню карты. Команды формулируются глаголами действия ("Скачать карту", "Отметить точку", "Отправить сигнал"), чтобы снизить неоднозначность.

    \subsection{Физическая реализация команд пользователей}
    Команды выполняются через большие кнопки и свайпы. Для режима "Проводник" предусмотрены физические кнопки громкости как горячие клавиши: двойное нажатие --- отправка геометки, долгое удержание --- SOS. Это учитывает использование устройства в перчатках.

    \subsection{Технология ввода данных}
    Используются касания, свайпы и голосовой ввод для заметок и поиска грибов. Формы ограничены минимальным числом обязательных полей. Геоданные и фотографии подставляются автоматически. Для детей ввод ограничен подтверждением родителей через push.

    \section{Ошибки и обработка}
    \subsection{Описание ошибок пользователей}
    Возможные ошибки: случайное нажатие SOS, неверный выбор контрольной точки, закрытие навигации из-за слабого интернета, дублирование отметок грибов, опоздание на контрольное время.

    \subsection{Методы обработки ошибок}
    \begin{itemize}
        \item Подтверждение SOS с обратным отсчётом и отменой.
        \item Автосохранение маршрута офлайн при пропадании сети.
        \item Проверка контрольных точек (минимальная дистанция между точками, предупреждение о запретных зонах).
        \item Объединение похожих отметок грибов и предложение удалить дубль.
        \item Напоминания о контрольном времени с эскалацией: уведомление участнику, затем организатору.
    \end{itemize}

    \section{Информационная модель и дизайн}
    \subsection{Описание структуры информационной модели экранной формы}
    Основной экран --- карта с наложением маршрута, панелью состояния (связь, заряд, шаги) и плавающей кнопкой SOS. Ниже --- горизонтальный список контрольных точек. Карточка точки содержит название, ETA, кнопки "Отметиться" и "Фото". Чат и чек-лист открываются свайпом вверх. Экран приглашения содержит поля: дата, время, список контактов, чек-лист снаряжения, радиокнопки для режима сложности.

    \subsection{Описание дизайна экранной формы}
    Используются шрифты без засечек (Inter или Roboto), базовый размер 16--18pt для читабельности в лесу. Цветовая палитра: зелёные оттенки для маршрутов, тёплые оранжевые акценты для действий, красный для SOS. Контрастные режимы и крупные кнопки для пожилых пользователей. Пиктограммы грибов и костра помогают ориентироваться.

    \subsection{Сравнение с нормативными документами}
    Проект следует ISO 9241-161: учитывается доступность (крупные элементы, читабельные шрифты), однозначность команд и предсказуемость диалогов. Учитываются требования по защите данных (GDPR-подобные согласия) и рекомендации по доступности WCAG 2.1 AA: цветовой контраст, фокусируемость элементов, альтернативные описания для иконок.

    \section{Выводы}
    Проработаны основные аспекты пользовательского интерфейса приложения для семейного похода за грибами: цели и ожидания заинтересованных лиц, модели пользователей, ключевые задачи и процессы, методы снижения ошибок и накладных расходов. Следующим шагом станет разработка экранных форм и интерактивного прототипа с учётом описанных требований.

\end{document}
