303 lines
30 KiB
TeX
303 lines
30 KiB
TeX
\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}
|