\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{Цели приложения}
    Цель приложения --- сделать семейные походы за грибами безопасными, продуктивными и комфортными для всех участников независимо от их возраста и цифровой грамотности. Приложение призвано превратить поход из разрозненной активности в слаженное семейное мероприятие с чётким планированием, надёжной координацией и возможностью сохранить положительные воспоминания в виде архива маршрутов и находок.
    
    Для достижения этой цели приложение решает следующие задачи:
    \begin{itemize}
        \item Объединение семьи при планировании и проведении походов за грибами через совместное редактирование маршрутов, списков снаряжения и координацию действий в реальном времени.
        \item Повышение безопасности участников похода за счёт отслеживания местоположения, контрольных точек, оперативного оповещения об отклонениях от маршрута и быстрой отправки сигналов о помощи.
        \item Ведение удобного учёта собранных грибов с фотофиксацией, геометками и формированием семейного архива находок.
        \item Обеспечение доступности для людей с разной цифровой подготовкой через адаптивный интерфейс, голосовые подсказки и упрощённые режимы взаимодействия.
        \item Гарантия работоспособности в условиях нестабильной связи благодаря офлайн-картам и локальному кешированию данных.
    \end{itemize}

    \section{Заинтересованные лица}
    \begin{itemize}
        \item \textbf{Родители-участники похода} --- взрослые члены семьи, непосредственно участвующие в сборе грибов и отвечающие за безопасность детей.
        
        \item \textbf{Дети и подростки} --- младшие участники похода, нуждающиеся в простом интерфейсе и элементах геймификации.
        
        \item \textbf{Пожилые родственники-грибники} --- опытные грибники старшего поколения, носители традиций и знаний о грибных местах.
        
        \item \textbf{Родственники, остающиеся дома} --- члены семьи, не участвующие в походе, но заинтересованные в безопасности грибников.
        
        \item \textbf{Организатор похода} --- ответственное лицо (обычно один из родителей), координирующее планирование и проведение похода.
        
        \item \textbf{Друзья семьи и знакомые грибники} --- приглашённые участники или консультанты, обладающие опытом и знанием местности.
        
        \item \textbf{Волонтёры-поисковики и службы спасения} --- специалисты, привлекаемые в экстренных ситуациях для поиска и оказания помощи.
        
        \item \textbf{Региональные лесничие и экологи} --- представители государственных служб, контролирующие использование лесных ресурсов.
        
        \item \textbf{Разработчики и техническая поддержка} --- команда, обеспечивающая функционирование и развитие приложения.
    \end{itemize}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    \section{Физическая реализация команд пользователей}
    Команды выполняются через крупные кнопки и свайпы. В режиме «Проводник» используются физические кнопки громкости как горячие клавиши: двойное нажатие --- отправка геометки, долгое удержание --- SOS. Такой подход учитывает перчатки, мокрые экраны и минимизирует вероятность промаха.

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

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

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

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

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

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

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

\end{document}
