Ошибки пользовательского интерфейса

Многие из них субъективны, т.к. часто они являются скорее неудобствами, чем «чистыми» логическими ошибками. Однако они могут провоцировать ошибки пользователя программы или же замедлять время его работы до неприемлемой величины. В результате чего мы будем иметь ошибки информационной системы (ИС) в целом. Основным источником таких ошибок является сложный компромисс между функциональностью программы и простотой обучения и работы пользователя с этой программой. Проблему надо начинать решать при проектировании системы на уровне ее декомпозиции на отдельные модули, исходя из того, что вряд ли удастся спроектировать простой и удобный пользовательский интерфейс для модуля, перегруженного различными функциями. Кроме того, необходимо учитывать рекомендации по проектированию пользовательских интерфейсов, например [7]. В этой книге приводятся простые модели проверки качества интерфейса, которые можно использовать на стадии его проектирования. На этапе тестирования ПО полезно предусмотреть встроенные средства тестирования, которые бы запоминали последовательности действий пользователя, время совершения отдельных операций, расстояния перемещения курсора мыши. Кроме этого возможно применение гораздо более сложных средств психо-физического тестирования на этапе тестирования интерфейса пользователя, которые позволят оценить скорость реакции пользователя, частоту этих реакций, утомляемость и т.п. Необходимо отметить, что такие ошибки очень критичны с точки зрения коммерческого успеха разрабатываемого ПО, т.к. они будут в первую очередь оцениваться потенциальным заказчиком.

Ошибки функциональности.

«Если с помощью программы трудно, неудобно или невозможно выполнить что-то, чего может обоснованно ожидать от нее пользователь, значит, в ней имеется функциональная ошибка». Очень расплывчатое определение, хотя возможно, что и верное. Как уже отмечалось, авторы книги [5] предполагают наличие ошибок в спецификации программы. Авторы подразделяют ошибки функциональности, однако трудно провести грань между функциональными и другими видами ошибок.

Избыточная функциональность. В программе слишком много функций, поэтому она сложна в изучении и эксплуатации. Не хватает концептуального единства. Второстепенные функции осложняют доступ к базовым возможностям. Программа часто теряет производительность. Документация на систему слишком обширна и ею невозможно пользоваться. Мне кажется, что часть такого рода ошибок пересекаются с ошибками интерфейса.

Ложное впечатление о наборе функций продукта. Связано в первую очередь с ошибками или низким качеством документации. Сюда же можно отнести не документируемые функции программы и закладки. Очень важный пункт с точки зрения безопасного ПО: необходимо обеспечить строгое соответствие описания программы и ее функций.

Неадекватность реализации базовых функций. Функция реализована так, что не годится для эксплуатации. Сюда относятся вопросы недостаточной производительности.

Пропущенная функция. В программе не реализована функция, предусмотренная спецификацией.

Неверно работающая функция. Функция работает не так, как предусмотрено спецификацией.

Функция должна быть реализована пользователем. Пользователь должен сам что-то сделать, чтобы функция заработала. Для некоторых программ такой режим предусматривается и не может, на мой взгляд, считаться ошибкой.

Программа не делает того, что ожидает от нее пользователь. Причина таких ошибок кроется в недостатках спецификации программы. С этими ошибками нужно бороться на этапе проектирования ПО. Для ответственного ПО необходимо потребовать безошибочность спецификаций. Как этого добиться – сложный вопрос. Во всяком случае, для достижения высококачественного кодирования нужно исходить из того, что спецификации программ не содержат ошибок, иначе совершенно не ясно как это обеспечить и проконтролировать.

Взаимодействия программы и пользователя. Их появление возможно как в интерактивном, так и в пакетном режимах.

Пропущенная информация. Сюда относятся типичные ошибки интерфейса: ошибки в подсказках, в перечне возможных команд, отсутствие справочной информации и т.п., отсутствие индикации курсора или признаков активности выполнения программы, открытия документов. Сюда необходимо отнести ошибки, когда пользователю не выдана, предусмотренная спецификацией информация, но почему-то именно этот случай не отражен в работе [5]. Для некоторых видов ПО подобная ошибка может быть весьма критичной (например, если не отражена информация о наступлении важного события, аварии в системе и т.п.).

Неверная или смущающая пользователя информация. Даже незначительные ошибки подрывают доверие пользователя к программе. На основании этих ошибок, а также при недостаточно подробных сообщениях пользователь может сделать неверные выводы, которые могут иметь серьезные последствия для системы в целом. В этом разделе авторы анализируют сообщения программ об ошибках. Сюда же относятся такие интерфейсные ошибки, как неудачные пиктограммы, названия кнопок и функций, несколько разных названий для одной и той же функции. Избыточность документации, попытка переложить на пользователя проблемы, которые должны решить программисты.

Справочная система и сообщения об ошибках. Текст в электронном виде должен быть не сложнее, чем на бумаге (максимальный уровень сложности 5). Текст должен быть написан простым языком, сообщения программ должны быть в утвердительной форме, краткими и простыми, содержать минимум технических терминов. Нужно избегать неуместной эмоциональности и слов, которые могут напугать пользователя. Документация не должна содержать ошибок и неверных примеров. Контекстно-зависимые справочные системы и подсистемы обработки ошибок должны проверять, что делает программа в момент их вызова. Неправильное определение источника ошибки в сообщении, должны указываться причина ошибки и способ выхода из ситуации.

Представляется целесообразным выделение рубрики «Ошибки документации и сообщений программы» в самостоятельный раздел. Этот раздел не связан непосредственно с кодом программ (по крайней мере, с его функциональной частью) и процессом кодирования. Поскольку язык технической документации является строгим, основные понятия должны быть строго определены, их полисемия исключена, возможно применение методов автоматической обработки текстов и достижение при этом весьма высокого качества.

Ошибки отображения. Данные отражаются формально правильно, но в каком-то неестественном виде, два курсора (забыли стереть курсор в предыдущем фокусе ввода), курсор исчезает или отображается не в том месте, недоочищена часть экрана, не выделены активные элементы экрана, не снято выделение, отображена неверная или неполная строка, сообщение остается на экране слишком долго или исчезает слишком быстро. В этот пункт следовало бы добавить ошибки, связанные с появлением информации, не предусмотренной спецификацией, ошибки в форматах или размерности некоторых полей, выдачу информации (или части сообщений) конфиденциального характера пользователем, не имеющим соответствующих прав.

Организация экрана. Плохая структурированность информации на экране, неэстетическое оформление экрана, неудачная организация меню, ошибки организации диалоговых окон, труднонаходимые конструкции, неуместное использование мигания, пестрые цветовые сочетания, использование цветов в качестве смыслового интерфейса, невозможность избавиться от избыточной информации на экране – все это «ошибки интерфейса».

Организация команд и способы их ввода. Рассматриваются различные несоответствия. Неуместная оптимизация, непоследовательный синтаксис, неодинаковый стиль ввода команд, нелогичные сокращения команд, непоследовательные правила завершения ввода, несоответствие опций для различных команд, похожие названия для различных команд, непоследовательная интерпретация регистра, неодинаковое положение команды в меню, неодинаковое использование функциональных клавиш, непоследовательные правила обработки ошибок, непоследовательные правила редактирования или сохранения данных.

Потери времени. Имеются в виду потери времени из-за неудачного интерфейса программы.

Меню. Меню должны быть простыми и логичными, поэтому все недостатки меню можно считать ошибками программы или же потенциальным источником ошибок при эксплуатации программного изделия.

Командные строки. В некоторых случаях ввод команд может быть предпочтительнее выбора из меню. Речь идет о чисто интерфейсных вещах: учет регистра в командах может приводить к ошибкам, соблюдение единого порядка параметров в командах, не распознаются полные имена в командах, не допускаются сокращения, сложная команда в одной строке, отсутствие возможности пакетного ввода, отсутствие возможности редактирования команд.

Нестандартное использование клавиатуры. Рассматриваются различные неудобства пользователя, приводящие к его ошибкам, связанные с отсутствием возможности использовать клавиши, их непривычное использование, возможность осуществить ввод недопустимых символов, отсутствие индикаторов состояния клавиатуры, отсутствие реакции на управляющие клавиши.

Пропущенные команды. Ошибки связаны с невозможностью или с существенными трудностями пользователя при изменениях состояния программы. Сюда входят ошибки, связанные с невозможностью выйти из какой-то программы или из какого-то режима, прервать или приостановить выполнение программы, отсутствие возможности резервного копирования (по-моему, это в первую очередь функциональная ошибка), отсутствие команды отмены, отсутствие запросов на подтверждение команд для некоторых ответственных операций, отсутствие режима автоматического периодического сохранения данных (по-моему, это также функциональная ошибка).

Обработка ошибок пользователем. Не предусмотрены пользовательские проверки вводимых данных (по-моему, это в первую очередь функциональная ошибка), сложно исправить допущенную ошибку, не предусмотрена возможность записи комментариев (по-моему, это можно считать как функциональной ошибкой, так и ошибкой в интерфейсе в зависимости от того, что представляет собой этот комментарий), отсутствуют средства отображения связей между переменными.

Разное. Очень эклектичный раздел. Сюда входят ошибки, связанные с защитой информации (неадекватные средства защиты и избыточная защита), которые необходимо выделить в самостоятельный раздел. Невозможность спрятать меню (недостаток интерфейса), отсутствие поддержки стандартных функций операционной системы, отсутствие поддержки длинных имен файлов (функциональные ошибки).

Негибкость программы. В разделе рассматриваются возможные проблемы настройки пользовательского интерфейса программы. Отмечается, что негибкость программы – это не всегда недостаток, т.к. программы с простым фиксированным интерфейсом как правило более просты в изучении и в эксплуатации. Выделяются следующие виды ошибок: невозможность отключить звук, отсутствие переключателя учета регистра, несовместимость с аппаратным обеспечением (по-моему, не из этого раздела), игнорирование инициализации устройств, выполненной извне (имеется в виду, что программа не может выполнить настройки конкретного оборудования, а только посылает какой-то ограниченный набор команд (по-моему, не из этого раздела), не предусмотрено отключение функции автоматического сохранения, невозможность замедлить (ускорить) прокрутку текста, отсутствие возможности повторить последнее действие или выяснить, каким оно было, невозможно выполнить только что настроенную команду, не сохраняются настроенные параметры программы (мне кажется, что это функциональный недостаток, причем возможна ситуация, когда настройка некоторых параметров пользователем невозможна по соображениям безопасности), побочные эффекты настройки, излишне высокая степень настраиваемости.

Кто здесь главный? В этом пункте авторы работы [5] опять возвращаются к ошибкам в сообщениях программ и недостаткам команд. Получился как бы еще один раздел «Разное», который включает следующие ошибки: навязывание ненужных ограничений, дружественность к новичкам, создающая неудобства для опытных пользователей, навязчивая предупредительность и неудачная попытка сделать программу интеллектуальной, запрос информации без необходимости, ненужное повторение действий, ненужные ограничения.

Производительность. Авторы отмечают существование нескольких трактовок этого понятия: 1) скорость программы, 2) производительность работы пользователя, 3) субъективное восприятие пользователем характеристик производительности программы. В связи с этим возможна ситуация, когда высокоскоростная программа с неудачным пользовательским интерфейсом кажется медленнее, чем на самом деле. Какая-то логика в этом безусловно есть, но представляется более правильным разделить производительность программы при решении ее основных функциональных задач, которая в большинстве случаев не зависит от пользователей и может быть точно замерена, и производительность непосредственно интерфейса. При всей субъективности этой характеристики она может быть оценена на стадии разработки интерфейса, а затем и измерена специальными средствами.

В разделе выделяются следующие подразделы: низкоскоростная программа (ошибки проектирования и кодирования), задержка реакции на действия пользователя, большое время ответа, программа не распознает ввод, отсутствие предупреждений о длительных операциях, отсутствие индикаторов хода работы, проблемы тайм-аутов (здесь речь идет об искусственных ограничениях времени ввода данных или паузах при совершении каких-то действий), надоедливая программа, избыточная информация, передавая по медленным сетям (проблема рассматривается только с точки зрения интерфейса пользователя, хотя проблема должна решаться при проектировании системы в целом). Далее приводятся ряд ошибок, которые явно не из этого раздела: выходная информация должна быть полной и понятной пользователю, невозможно получить определенные данные, невозможно перенаправить вывод, формат, неподходящий для дальнейшей обработки (речь идет об ошибках в программных интерфейсах, явно напрашивается вывод - выделить их в раздел: «Ошибки взаимодействия программ»), слишком мало или слишком много выходной информации, абсурдная степень точности, невозможность форматирования заголовков таблиц и подписей рисунков, невозможность изменения масштаба графиков. Необходимо отметить, что последние 2 пункта являются слишком частными, поэтому вызывает сомнение необходимость включать настолько частные ошибки в общую классификацию.

Авторы работы [5] подчеркивают, что вопросы производительности нельзя рассматривать без учета работы пользователя, поэтому выделяются такие «узкие места», как: все, что повышает вероятность ошибок пользователя, громоздкая схема исправления ошибок, все, что ставит пользователя в тупик, неоправданное увеличение количества действий, необходимых для достижения определенного результата.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: