Files
interfaces/lab1/report/report.tex
2025-11-17 15:03:53 +03:00

352 lines
34 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{Постановка задачи}
Требуется разработать пользовательский интерфейс интерактивного приложения, помогающего семье планировать и проводить походы за грибами. В отчёте системно описываются цели проекта, заинтересованные лица, требования, портреты пользователей, риски, сценарии задач, методы обработки ошибок и основы информационной модели. Экранные формы будут включены в приложение, поэтому внимание сосредоточено на структурировании требований и диалогов.
\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}