Files
interfaces/lab1/report/report.tex

303 lines
30 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\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 Семейные участники: родители, дети, пожилые родственники.
\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}