\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*{Контекст и назначение приложения} Приложение рассчитано на семьи, которые хотят собирать грибы в пригородных лесах и координироваться в реальном времени. Оно должно объединять подготовку (маршрут, снаряжение, приглашения), сопровождение в пути (навигация, контрольные точки, уведомления) и подведение итогов (отчёты, архив маршрутов, семейная «корзина»). \section{Цель проекта} Сформировать макет интерфейса мобильного и веб-приложения, который объединяет семью при планировании походов за грибами, повышает безопасность и позволяет в удобной форме вести учёт собранных грибов. Интерфейс должен быть понятен людям с разной цифровой подготовкой и предусматривать офлайн-работу. \section{Заинтересованные лица} \begin{itemize} \item Семейные участники: родители, дети, пожилые родственники. \item Организатор похода (обычно один из родителей или старший родственник). \item Волонтёр-поисковик или знакомый грибник, готовый подключиться к поискам. \item Разработчики и техническая поддержка приложения. \item Региональные лесничие, получающие статистику посещений и предупреждения. \end{itemize} \section{Ожидания заинтересованных лиц} \begin{itemize} \item Участники хотят простой интерфейс с крупными элементами, офлайн-картой и быстрым доступом к тревожной кнопке. \item Организатор ожидает совместного планирования: приглашения, список снаряжения, контроль состава группы. \item Пожилые пользователи ждут голосовых подсказок и минимального числа действий на экране. \item Поисковики рассчитывают на автоматическую передачу координат в экстренных сообщениях. \item Лесничие заинтересованы в обезличенной статистике посещений и уведомлениях о запретах. \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}