From d440647a6790518ac5c1cba8e2a2e8d51df47a87 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Mon, 1 Dec 2025 19:53:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B5=D1=80=D0=B5=D1=81=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab2/report.tex | 198 +++++++++++++----------------------------------- 1 file changed, 52 insertions(+), 146 deletions(-) diff --git a/lab2/report.tex b/lab2/report.tex index 5ffb18f..cc70dbf 100644 --- a/lab2/report.tex +++ b/lab2/report.tex @@ -270,7 +270,7 @@ \begin{itemize} \item ранее не работал с Label Studio; \item обладает базовыми навыками работы с компьютером, браузером и офисными программами; - \item знает общие понятия в разметке данных, такие как ограничивающий прямоугольник (bounding box), полигональная разметка (polygon annotation), классификация (classification), сегментация (segmentation) и т. д., но не знаком со специфичными для Label Studio понятиями (labeling configuration templates, labels panel, tasks и т. п.). + \item знает общие понятия в разметке данных, такие как ограничивающий прямоугольник (bounding box), полигональная разметка (polygon annotation), классификация (classification), сегментация (segmentation) и т. д., но не знаком со специфичными для Label Studio понятиями. \end{itemize} @@ -279,22 +279,22 @@ Задание для пользователя формулируется следующим образом: \begin{quote} - «Создать простую разметку с использованием ограничивающих прямоугольников (bounding boxes) для нескольких изображений со светофорами и выгрузить результаты разметки в формате JSON». + «На фотографиях городских улиц выделить светофоры (пешеходные и автомобильные) с помощью прямоугольных оболочек (bounding boxes). Оболочки задаются координатами в пространстве устройства (в пикселях) и ориентированы параллельно осям изображения. Количество оболочек на одном изображении не ограничено. Прямоугольные оболочки могут пересекаться и быть вложенными друг в друга. Результаты разметки выгрузить в формате JSON». \end{quote} Результатом выполнения задания считается наличие в Label Studio проекта, содержащего размеченные изображения со светофорами, где на каждом изображении объекты выделены корректными ограничивающими прямоугольниками, а также наличие JSON файла с разметкой. - \subsection{Условия использования} + % \subsection{Условия использования} - В терминах ГОСТ Р ИСО 9241-11 условия использования включают пользователей, задачи, оборудование (аппаратные средства и программные средства), физическую и социальную среду. Пользователя и задачу мы уже определили, остальные условия следующие: + % В терминах ГОСТ Р ИСО 9241-11 условия использования включают пользователей, задачи, оборудование (аппаратные средства и программные средства), физическую и социальную среду. Пользователя и задачу мы уже определили, остальные условия следующие: - \begin{itemize} - \item \textbf{Аппаратные средства:} настольный компьютер с мышью и клавиатурой, подключённый к интернету; дисплей с разрешением 1920 на 1080 пикселей; - \item \textbf{Программные средства:} приложение Label Studio; - \item \textbf{Физическая среда:} стандартное офисное рабочее место, компьютерное кресло, стол; - \item \textbf{Социальная среда:} индивидуальная работа. - \end{itemize} + % \begin{itemize} + % \item \textbf{Аппаратные средства:} настольный компьютер с мышью и клавиатурой, подключённый к интернету; дисплей с разрешением 1920 на 1080 пикселей; + % \item \textbf{Программные средства:} приложение Label Studio; + % \item \textbf{Физическая среда:} стандартное офисное рабочее место, компьютерное кресло, стол; + % \item \textbf{Социальная среда:} индивидуальная работа. + % \end{itemize} \newpage \section{Сценарий выполнения задания в Label Studio} @@ -311,9 +311,9 @@ 1 & Открыть Label Studio. \\ \hline - 2 & Создать новый проект и указать его название (например, «Разметка светофоров»). \\ \hline + 2 & Создать новый проект и указать его название - «Разметка светофоров». \\ \hline - 3 & Загрузить исходные изображения со светофорами. \\ \hline + 3 & Загрузить 4 исходных изображения со светофорами. \\ \hline 4 & Ознакомиться с интерфейсом проекта: панель задач, область разметки, панель меток и основные кнопки управления. \\ \hline @@ -334,9 +334,7 @@ \newpage - \section{Анализ соответствия интерфейса Label Studio требованиям ГОСТ Р ИСО 9241 при выполнении задания} - - Для оценки удобства использования Label Studio пользователем-новичком был проведён анализ интерфейса системы на соответствие ключевым принципам эргономики интерактивных систем, установленным в серии стандартов ГОСТ Р ИСО 9241. + \section{Выполнение задания в Label Studio} \subsection*{Шаг 1. Открыть Label Studio и зарегистрироваться} @@ -368,18 +366,7 @@ \label{first-screen} \end{figure} - \textbf{Соответствие требованиям ГОСТ:} - - \begin{itemize} - \item После регистрации появилась страница с надписью "Welcome", так что пользователю стало ясно, что регистрация прошла успешно. Это соответствует пункту 4.3.1 ГОСТ Р ИСО 9241-110 "В процессе диалога пользователю должна быть предоставлена информация об успешном завершении производственного задания". - \item При первой попытке регистрации, я неправильно заполнил поле с адресом электронной почты и после нажатия на кнопку регистрации, система подсветила поле с ошибкой. Это соответствует пункту 4.8.3, согласно которому если ошибка произошла, её происхождение должно быть объяснено пользователю. - \end{itemize} - - \textbf{Несоответствие требованиям ГОСТ:} - \begin{itemize} - \item Согласно пункту 4.5.5 ГОСТ Р ИСО 9241-110 "Форматы должны соответствовать культурным и лингвистическим соглашениям". В данном случае пользователь русскоязычный, в настройках браузера также установлен русский язык. Однако Label Studio всё равно отображает весь текст на английском языке. - \item Согласно пункту 4.4.4 ГОСТ Р ИСО 9241-110 система должна предоставить информацию об ожидаемом формате ввода данных. Однако Label Studio не выводит требования к почтовому адресу и паролю. По этой причине, мне не с первого раза удалось указать пароль, подходящий под все требования. - \end{itemize} + Кнопку регистрации нашёл легко. Однако при вводе пароля возникли сложности: система не показывала требования к паролю заранее, и пришлось несколько раз подбирать подходящий вариант. \subsection*{Шаг 2. Создать новый проект и указать его название} @@ -401,22 +388,9 @@ \label{project-page} \end{figure} + Создание проекта прошло быстро. Понравилось, что достаточно ввести только название и нажать одну кнопку. \newpage - \textbf{Соответствие требованиям ГОСТ:} - - \begin{itemize} - \item Соответствие пункту 4.3.5 ГОСТ Р ИСО 9241-110: этапы диалога при создании проекта сведены к одному действию — вводу названия и нажатию кнопки сохранения. Лишние шаги отсутствуют, что соответствует требованию исключать ненужные этапы. - \item Соответствие пункту 4.7.2: на странице присутствует кнопка ``Cancel'', позволяющая отменить действие и вернуться назад, тем самым предоставляя пользователю альтернативный путь продолжения диалога. - \end{itemize} - - \textbf{Несоответствие требованиям ГОСТ:} - - \begin{itemize} - \item Несоответствие пункту 4.5.1: вся терминология на экране представлена на английском языке (``Project name'', ``Create project''), несмотря на русскоязычные настройки пользователя. Это делает терминологию менее понятной для пользователя-новичка. - \item Несоответствие пункту 4.3.4: система не предлагает типовых значений по умолчанию для проекта (например, шаблона разметки или типа данных). Пользователь должен полностью настраивать проект вручную на последующих шагах, что увеличивает когнитивную нагрузку. - \end{itemize} - \subsection*{Шаг 3. Загрузить исходные изображения со светофорами} После того, как проект создан, пользователь попадает на страницу проекта (см. Рис.~\ref{project-page}). Для того, чтобы загрузить исходные изображения со светофорами, достаточно нажать на кнопку "Import" ("Импортировать"). После чего откроется страница для загрузки файлов (см. Рис.~\ref{upload-files}). @@ -446,29 +420,10 @@ \label{project-page-with-files} \end{figure} + Понравился прогресс-бар загрузки и зелёная полоска успешного завершения. Сразу видно, какие форматы поддерживаются. Не понравилось, что нельзя удалить отдельный файл из списка --- только сбросить всё и начать заново. + \newpage - \textbf{Соответствие требованиям ГОСТ:} - - \begin{itemize} - \item Соответствие пункту 4.4.4 --- система должна предоставить информацию об ожидаемом формате ввода данных. - На странице загрузки файлов сразу отображается список поддерживаемых форматов изображений. Это позволяет пользователю-новичку заранее понять, какие файлы можно загружать, и снижает вероятность ошибки. - - \item Соответствие пункту 4.4.1 --- информация, предоставляемая пользователю, должна помогать завершить диалог. - В процессе загрузки система показывает прогресс-бар, размеры файлов и индикатор успешной загрузки. Наличие визуальной обратной связи облегчает понимание текущего состояния и способствует успешному выполнению задачи. - \end{itemize} - - \textbf{Несоответствие требованиям ГОСТ:} - - \begin{itemize} - \item Несоответствие пункту 4.7.2 --- пользователь должен иметь возможность выбора вариантов продолжения диалога. - В интерфейсе отсутствует возможность удалить отдельный файл из списка загружаемых. Единственный вариант отмены --- сбросить весь список и начинать процесс заново. - - \item Несоответствие пункту 4.8.2 --- система должна предупреждать о действиях, которые могут привести к отказу системы. - При загрузке большого количества файлов или потенциально слишком крупных изображений система не сообщает о возможных ограничениях по размеру, количеству или доступному месту. Отсутствие подобных предупреждений может привести к неожиданным сбоям или неудачным загрузкам. - - \end{itemize} - - \subsection*{Шаг 5. Открыть настройки проекта и выбрать тип разметки} + \subsection*{Шаг 4. Открыть настройки проекта и выбрать тип разметки} После того, как файлы загружены, пользователь попадает на страницу проекта (см. Рис.~\ref{project-page-with-files}). Для того, чтобы открыть настройки проекта, достаточно нажать на кнопку "Settings" ("Настройки") в правом верхнем углу страницы. После чего откроется страница настроек проекта (см. Рис.~\ref{project-settings}). В меню настроек нужно выбрать пункт "Labeling Interface" ("Интерфейс разметки"). @@ -498,7 +453,9 @@ \label{template-settings} \end{figure} - \subsection*{Шаг 6. В конфигурации разметки указать единственный класс — «Светофор»} + Нужный шаблон нашёлся сразу на первой странице. Это удобно. Однако на странице настроек шаблона в качестве примера всегда отображается изображение самолёта, независимо от того, какие классы указывает пользователь. Это может запутать пользователя-новичка, который ожидает увидеть изоображение, которое он сам загружал на предыдущих шагах. + + \subsection*{Шаг 5. В конфигурации разметки указать единственный класс — «Светофор»} На странице с настройками шаблона можно увидеть раздел <> ("Классы"). Программа автоматически добавила два класса для машин и самолётов, однако нам они не нужны. Поэтому их нужно удалить. Для этого достаточно навести мышь на ненужный класс и нажать на иконку мусорной корзины (см. Рис.~\ref{template-settings-labels}). @@ -527,24 +484,9 @@ \label{template-settings-labels-saved} \end{figure} - \textbf{Соответствие требованиям ГОСТ Р ИСО 9241-110:} + Добавление и удаление классов интуитивно понятно. Понравилась зелёная надпись <> --- сразу видно, что изменения сохранены. - \begin{itemize} - \item Соответствие пункту 4.3.3 --- формат ввода и вывода должен соответствовать производственному заданию. - Интерфейс выбора шаблонов разметки сразу предлагает вариант «Object Detection with Bounding Boxes», который полностью соответствует задаче выделения объектов прямоугольниками. Это помогает пользователю-новичку быстро выбрать корректный тип разметки. - - \item Соответствие пункту 4.5.1 --- терминология должна соответствовать знаниям пользователя. - На странице выбора шаблонов используется терминология, понятная пользователю: детекция объектов (object detection), ограничивающие прямоугольники (bounding boxes). - \end{itemize} - - \textbf{Несоответствие требованиям ГОСТ Р ИСО 9241-110:} - - \begin{itemize} - \item Несоответствие пункту 4.7.4 --- пользователь должен иметь возможность отменить, по крайней мере, последний этап диалога. - В настройках шаблона нет функции отмены последнего действия: если пользователь случайно удалит класс или внесёт ошибочные изменения в конфигурацию, вернуть состояние невозможно. Единственный вариант — создавать элементы заново. - \end{itemize} - - \subsection*{Шаг 7. Перейти к первому изображению и изучить инструменты разметки} + \subsection*{Шаг 6. Перейти к первому изображению и изучить инструменты разметки} После загрузки файлов и сохранения шаблона, можно приступить к разметке. Для этого достаточно нажать на первое изображение в списке файлов проекта (см. Рис.~\ref{project-page-with-files1}). @@ -575,45 +517,26 @@ В правом нижнем углу расположена кнопка <> ("Сохранить"), с помощью которой можно сохранить разметку. - \textbf{Соответствие требованиям ГОСТ Р ИСО 9241-110:} + Понравились всплывающие подсказки при наведении на инструменты. Интерфейс не перегружен, всё необходимое под рукой. Не хватает кнопки отмены для сброса разметки без сохранения. - \begin{itemize} - \item Соответствие пункту 4.4.1 --- информация, предоставляемая пользователю, должна помогать завершить диалог. - Все элементы интерфейса снабжены понятными иконками: масштабирование, перемещение изображения, кнопка сохранения. Это уменьшает неопределённость и помогает пользователю-новичку быстрее ориентироваться в интерфейсе. - - \item Соответствие пункту 4.6.3 --- система должна поддерживать пользователя при ознакомлении с диалогом. - При наведении курсора на инструменты появляются всплывающие подсказки с пояснениями («Zoom In», «Zoom Out», «Move»), что облегчает первичное обучение работе с интерфейсом и снижает риск ошибочных действий. - - \item Соответствие пункту 4.6.4 --- обратная связь должна помогать формировать понимание системы. - Активный инструмент визуально выделяется, а границы создаваемого прямоугольника отображаются сразу в процессе разметки. Такое поведение интерфейса делает действия пользователя предсказуемыми и усиливает ощущение контроля. - - \item Соответствие пункту 4.7.1 --- темп взаимодействия должен определяться пользователем. - Страница разметки не содержит автоматических переключений или тайм-аутов: пользователь может спокойно изучать инструменты, масштабировать изображение и выполнять разметку в комфортном темпе. - \end{itemize} - - \textbf{Несоответствие требованиям ГОСТ Р ИСО 9241-110:} - - \begin{itemize} - \item Частичное несоответствие пункту 4.7.2 --- «пользователь должен иметь возможность выбора вариантов продолжения диалога». - Несмотря на наличие кнопки сохранения («Submit») и списка изображений слева, отсутствует явная кнопка «Отмена» для отклонения результата разметки или возврата к исходному состоянию изображения без сохранения. Это снижает гибкость работы и может привести к необходимости вручную удалять ошибочно нанесённые прямоугольники. - \end{itemize} - - - \subsection*{Шаг 8. Для каждого изображения выделить объекты «Светофор» с помощью ограничивающих прямоугольников} + \newpage + \subsection*{Шаг 7. Для каждого изображения выделить объекты «Светофор» с помощью ограничивающих прямоугольников} Для того, чтобы выделить объекты «Светофор» с помощью ограничивающих прямоугольников, достаточно нажать на слово <<Светофор>>, а затем нарисовать прямоугольник в нужном месте изображения (см. Рис.~\ref{labeling-page-object}). \begin{figure}[h!] \centering \includegraphics[width=0.5\linewidth]{img/labeling-page-object.png} - \caption{Выделение светофора с помощью ограничивающего прямоугольника} + \caption{Выделение одного из пешеходных светофоров с помощью ограничивающего прямоугольника} \label{labeling-page-object} \end{figure} + - Как уже было сказано ранее, на панели слева, выодится список загруженных изображений. С его помощью можно переключаться между ними. Остальные изображения размечаются аналогичным образом. + Как уже было сказано ранее, на панели слева выводится список загруженных изображений. С его помощью можно переключаться между ними. Остальные изображения размечаются аналогичным образом. + Рисование прямоугольников работает плавно. Границы прямоугольника видны сразу в процессе рисования. - \subsection*{Шаг 9. Сохранить результаты для всех изображений} + \subsection*{Шаг 8. Сохранить результаты для всех изображений} После того, как все изображения размечены, нажимаем на кнопку <> ("Сохранить"). После чего автоматически открывается страница со списком изображений. Слева у каждого изображения появляется галочка, которая подтверждает, что изображение размечено. @@ -624,28 +547,9 @@ \label{labeling-page-submit} \end{figure} - \textbf{Соответствие требованиям ГОСТ Р ИСО 9241-110:} + Галочки у размеченных изображений --- удобный индикатор прогресса. После перезапуска браузера все данные сохранились. - \begin{itemize} - \item Соответствие пункту 4.5.2 --- «обратная связь должна соответствовать ожиданиям пользователя». - Интерфейс предсказуемо реагирует на действие сохранения: данные не исчезают, состояние задач остаётся стабильным, отмеченные изображения остаются помеченными. Это укрепляет доверие пользователя к системе и помогает избежать повторного выполнения работы. - - \item Соответствие пункту 4.7.3 --- «пользователь должен иметь возможность возобновить прерванный диалог». - После закрытия и повторного открытия проекта состояние разметки сохраняется, и пользователь может продолжить работу с уже отмеченными как завершённые изображениями, не теряя прогресс. - \end{itemize} - - \textbf{Несоответствие требованиям ГОСТ Р ИСО 9241-110:} - - \begin{itemize} - \item Несоответствие пункту 4.8.10 --- «система должна предупреждать пользователя о действиях, которые могут иметь неблагоприятные последствия». - Если пользователь случайно попытается закрыть вкладку или перейти на другую страницу, не сохранив разметку, система не выводит предупреждение о несохранённых данных. Это может привести к потере результатов разметки. - - \item Частичное несоответствие пункту 4.8.8 --- «система должна обеспечивать валидацию данных до их ввода». - Label Studio позволяет сохранить разметку даже в случае отсутствия аннотаций (например, если пользователь по ошибке не нарисовал прямоугольник). - \end{itemize} - - - \subsection*{Шаг 10. Выгрузить результаты разметки в формате JSON} + \subsection*{Шаг 9. Выгрузить результаты разметки в формате JSON} Чтобы выгрузить результаты разметки, нажмём на кнопку <> ("Экспорт") в правом верхнем углу страницы. После этого открывается окно с выбором формата выгрузки. Выбираем JSON и нажимаем на кнопку <> ("Экспорт") (см. Рис.~\ref{labeling-page-export}). В открывшемся окне проводника можно выбрать папку для сохранения файла. @@ -656,33 +560,35 @@ \label{labeling-page-export} \end{figure} - \textbf{Соответствие требованиям ГОСТ Р ИСО 9241-110:} + Экспорт прошёл без проблем. Не хватило уведомления об успешном сохранении файла --- пришлось вручную проверять, что файл появился в папке. - \begin{itemize} - \item Соответствие пункту 4.3.3 --- «формат вывода должен соответствовать производственному заданию». - На шаге экспорта пользователю сразу предлагается формат JSON, который полностью соответствует поставленной задаче выгрузки разметки. + \newpage + \section{Рецензия} - \item Соответствие пункту 4.4.1 --- «информация должна помогать завершению диалога». - Окно экспорта содержит чёткие и однозначные элементы управления: выбор формата, кнопка подтверждения («Export»). Интерфейс не перегружен лишними опциями, что позволяет пользователю-новичку без труда завершить процесс. - \end{itemize} + В целом система произвела позитивное впечатление. Даже будучи новым пользователем, ранее не работавшим с Label Studio, я смог достаточно быстро выполнить все шаги задания. Интерфейс в большинстве случаев интуитивен. - \textbf{Несоответствие требованиям ГОСТ Р ИСО 9241-110:} + Понравилось, что создание проекта требует минимум действий. Загрузка файлов сопровождается прогресс-баром и индикатором успешного завершения. Шаблоны разметки удобно организованы, нужный вариант нашёлся сразу. Инструменты разметки снабжены всплывающими подсказками, что помогает быстро освоиться. Галочки у размеченных изображений наглядно показывают прогресс работы. - \begin{itemize} + Не понравилось отсутствие русского языка в интерфейсе. При регистрации система не показывает требования к паролю заранее. Нельзя удалить отдельный файл из списка загружаемых. В настройках шаблона нет функции отмены последнего действия. На странице настроек шаблона всегда отображается пример с самолётом, а не загруженные пользователем изображения, что сбивает с толку. На странице разметки отсутствует кнопка для сброса всех изменений. После экспорта нет уведомления об успешном сохранении файла. - \item Несоответствие пункту 4.3.1 --- пользователю должна быть предоставлена информация об успешном завершении производственного задания. - После нажатия кнопки <> ("Экспорт") система не выводит явного уведомления об успешном завершении экспорта. Окно выбора директории появляется автоматически, однако после сохранения файла отсутствует какое-либо подтверждающее сообщение. Пользователь вынужден самостоятельно проверять наличие и корректность выгруженного JSON-файла, что снижает прозрачность завершения действия. - \end{itemize} + Несмотря на отдельные недостатки, система удобна и подходит для работы даже пользователю-новичку. - \section{Результаты анализа} + \newpage + \section{Анализ соответствия интерфейса требованиям ГОСТ Р ИСО 9241-110} - В целом система произвела позитивное впечатление: даже будучи полностью новым пользователем, ранее не работавшим с Label Studio, я смог достаточно быстро выполнить все шаги задания. Интерфейс в большинстве случаев интуитивен, а система предоставляет необходимую обратную связь, что соответствует ряду требований ГОСТ Р ИСО 9241-110. + Интерфейс Label Studio был проанализирован на соответствие требованиям ГОСТ Р ИСО 9241-110 <<Эргономика взаимодействия человек-система. Принципы организации диалога>>. - Можно отметить, что по многим пунктам стандартов система действительно соответствует требованиям стандарта: пользователю предоставляется понятная информация о прогрессе действий, предлагаются шаблоны разметки, интерфейс поддерживается всплывающими подсказками, а сама структура диалога не перегружена лишними этапами. + \textbf{Пригодность для решения задачи.} Система в целом соответствует требованиям данного раздела. После регистрации появляется страница с надписью <>, что соответствует пункту 4.3.1 о предоставлении информации об успешном завершении задания. Этапы диалога при создании проекта сведены к минимуму (пункт 4.3.5). Формат вывода при экспорте соответствует задаче --- сразу предлагается JSON (пункт 4.3.3). Однако система не предлагает типовых значений по умолчанию для проекта, что не соответствует пункту 4.3.4. - Тем не менее, выявлены и существенные недоработки. Наиболее значимой является отсутствие русскоязычной локализации, что нарушает пункт 4.5.5 ГОСТ Р ИСО 9241-110 о соответствии интерфейса культурным и лингвистическим ожиданиям пользователя. Кроме того, в нескольких местах обнаружено нарушение пункта 4.7.2, связанного с отсутствием вариантов продолжения диалога и невозможностью отменить действие (например, отсутствие кнопки «Отмена» в интерфейсе разметки или невозможность откатить изменения в шаблоне). + \textbf{Самоописываемость.} Система частично соответствует требованиям. На странице загрузки файлов отображается список поддерживаемых форматов (пункт 4.4.4). В процессе загрузки показывается прогресс-бар (пункт 4.4.1). Окно экспорта содержит понятные элементы управления. Однако при регистрации не отображаются требования к паролю, что нарушает пункт 4.4.4. - Таким образом, несмотря на отдельные несоответствия, система в целом удобна, функциональна и подходит для работы даже пользователю-новичку, однако улучшения в области локализации и гибкости управления действиями значительно повысили бы её эргономичность. + \textbf{Соответствие ожиданиям пользователя.} Выявлено существенное несоответствие пункту 4.5.5: весь интерфейс представлен на английском языке, несмотря на русскоязычные настройки браузера. Терминология на странице шаблонов понятна специалистам (пункт 4.5.1). Обратная связь при сохранении соответствует ожиданиям (пункт 4.5.2). + + \textbf{Пригодность для обучения.} Система хорошо поддерживает обучение. При наведении на инструменты появляются всплывающие подсказки (пункт 4.6.3). Активный инструмент визуально выделяется, границы прямоугольника отображаются в процессе рисования (пункт 4.6.4). + + \textbf{Управляемость.} Темп взаимодействия определяется пользователем, автоматические переключения отсутствуют (пункт 4.7.1). На странице создания проекта есть кнопка <> (пункт 4.7.2). После перезапуска состояние разметки сохраняется (пункт 4.7.3). Однако в нескольких местах нарушен пункт 4.7.2: нельзя удалить отдельный файл из списка загружаемых, отсутствует кнопка отмены в интерфейсе разметки. Также нарушен пункт 4.7.4: в настройках шаблона нет функции отмены последнего действия. + + \textbf{Устойчивость к ошибкам.} При неправильном заполнении поля email система подсвечивает ошибку (пункт 4.8.3). Однако выявлены несоответствия: система не предупреждает о возможных ограничениях при загрузке файлов (пункт 4.8.2), не выводит предупреждение при попытке закрыть страницу с несохранёнными данными (пункт 4.8.10), позволяет сохранить разметку без аннотаций (пункт 4.8.8). \newpage \section*{Заключение}