- •Лекционный курс «Интерфейсы информационных систем»
- •Тема 1. Общее представление об информационной системе
- •Специфика информационных программных систем
- •Задачи информационных систем
- •Классификация интерфейсов
- •1. Общественный интерфейс - основан на семантических сетях.
- •Пакетная технология
- •Технология командной строки.
- •Простой графический интерфейс.
- •Графический интерфейс
- •Wimp - интерфейс
- •Речевая технология
- •Биометрическая технология ("Мимический интерфейс".)
- •Семантический (Общественный) интерфейс.
- •Тема 2. Типы пользовательских интерфейсов и этапы их разработки.
- •Типы интерфейсов.
- •Тема 3. Психофизические особенности человека, связанные с восприятием, запоминанием и обработкой информации
- •Пользовательская и программная модели интерфейса
- •Классификации диалогов и общие принципы их разработки
- •Тема 4. Факторы оценки пользовательских интерфейсов
- •Скорость выполнения работы
- •Правила goms
- •Длительность интеллектуальной работы
- •Непосредственное манипулирование
- •Потеря фокуса внимания
- •Длительность физических действий
- •Длительность реакции системы
- •Тема 5. Человеческие ошибки
- •Существование несуществующего
- •Типы ошибок
- •Блокировка потенциально опасных действий до получения подтверждения
- •Проверка действий пользователя перед их принятием
- •Самостоятельный выбор команд
- •Два уровня ошибок и обратная связь
- •Тема 6. Обучение работе с системой
- •Почему пользователи учатся
- •Средства обучения
- •Понятность системы
- •Ментальная модель
- •Метафора
- •Аффорданс.
- •Стандарт
- •Обучающие материалы
- •Сообщения об ошибках.
- •Спиральность
- •Субъективное удовлетворение
- •Эстетика
- •Каким должно быть сообщение об ошибке
- •Тема 7. Различные элементы управления Кнопки
- •Командные кнопки
- •Размеры и поля
- •Текст и пиктограммы.
- •Кнопки доступа к меню
- •Чекбоксы и радиокнопки
- •Вариант для панелей инструментов
- •Пиктограммы.
- •Раскрывающиеся списки
- •Пролистываемые списки
- •Списки единственного выбора.
- •Списки множественного выбора.
- •Комбобоксы
- •Поля ввода
- •Код активации
- •Подписи.
- •Крутилки
- •Ползунки
- •Типы меню
- •Устройство меню
- •Устройство отдельных элементов
- •Пиктограммы в меню
- •Переключаемые элементы.
- •Предсказуемость действия.
- •Группировка элементов
- •Зачем элементы в меню нужно группировать.
- •Как группировать элементы.
- •Как разделять группы между собой.
- •Глубина меню.
- •Контекстные меню
- •Типы окон
- •Вопросы с экзамену
Как группировать элементы.
Каждый знает, или, во всяком случае, догадывается, что элементы в меню нужно группировать максимально логично. Поспорить с этим утверждением нельзя, но от этого его проблематичность не уменьшается.
Взаимоисключающие элементы желательно помещать в отдельный уровень иерархии
Дело в том, что существует множество типов логики. Есть логика разработчика, который знает все функции системы. Есть логика пользователя, который знает только меньшую часть. При этом практика показывает, что эти типы логики в значительной мере не совпадают. Поскольку пользователи важнее, нужно сгруппировать меню в соответствии с их логикой.
Для этого используется очень простой и надежный метод, называемый карточной сортировкой (см. стр. 120).
Как разделять группы между собой.
Существует два основных способа разделять группы: между группами можно помещать пустой элемент (разделитель) или же размещать отдельные группы в разных уровнях иерархии.
Второй способ создает более четкое разделение: в меню Файл, например все элементы более близки друг другу (несмотря на разделители), чем элементы других меню. В то же время выбор конкретного способа диктуется результатами карточной сортировки, так что интерес представляет только вопрос «как должны выглядеть и действовать разделители».
Для разграничения групп традиционно используют полоски. Это надежное, простое решение, другой разговор, что с дизайнерской точки зрения полоски плохи, поскольку представляют собой визуальный шум. Гораздо правильнее, но и труднее, использовать только визуальные паузы между группами, как это сделано, например, в MacOS X.
Глубина меню.
Наличие многих уровней вложенности в меню приводит к там называемым «каскадным ошибкам»: выбор неправильного элемента верхнего уровня неизбежно приводит к тому, что все следующие элементы также выбираются неправильно. При этом широкие меню больше нравятся пользователям. Поэтому большинство разработчиков интерфейсов стараются создавать широкие, а не глубокие меню1.
К сожалению, у широких меню есть недостаток: они занимают много места. Это значит, что, начиная с определенного количества элементов, меню физически не сможет оставаться широким, оно начнет расти в глубину. Возникает проблема, которую надо решать. Итак, проблема заключается в том, что велика вероятность каскадных ошибок. Чтобы снизить их число, нужно повысить вероятность того, что пользователи будут правильно выбирать элементы верхних уровней. Чтобы повысить эту вероятность, нужно заранее снабдить пользователей контекстом.
При перемещении по меню пользователь действует по определенному алгоритму:
1 Выбирая элемент первого уровня, он выбирает элемент, «нужность» которого кажется ему максимальной.
2 После выбора он видит список элементов второго уровня, при этом он оценивает вероятность соответствия всех элементов второго уровня его задаче и одновременно выбирает наиболее вероятный элемент. При этом в уме он держит контекст, т.е. название элемента первого уровня.
3 Если ни один из элементов не кажется пользователю достаточно вероятным, пользователь возвращается на первый уровень.
4 Если какой-то элемент удовлетворяет пользователя, он выбирает его и получает список элементов третьего уровня. Действия из второго и третьего шагов повторяются применительно к новым элементам меню.
Видно, что действия пользователя при поиске нужного элемента отчетливо цикличны, при этом на каждом шаге есть вероятность ошибок. При этом с каждым новым уровнем меню объем контекста, который приходится держать в голове, непрерывно возрастает. При этом, если пользователь всё-таки не находит нужного элемента, весь этот контекст оказывается ненужным. Хранение же контекста, даже не засчитывая усилия, затрачиваемые на выбор элемента, есть довольно существенная работа. Её объем лучше уменьшить.
Теперь рассмотрим другой вариант: пользователь по самому элементу может предугадать его содержимое, т.е. при поиске элемента в меню не столько оценивает контекст, сколько просто ищет нужный элемент. Эта возможность есть в любом случае, поскольку элемент имеет хоть сколько-нибудь значимый идентификатор (т.е. его название). Но она, как правило, довольно слаба и почти всегда допускает неоднозначность. Усилить её можно наличием аннотации к каждому элементу, но эту аннотацию никто не будет читать.
Есть другой метод, и этот метод есть лучшее, что дал интернет науке о проектировании интерфейсов: в качестве аннотации к элементу можно показывать наиболее популярные элементы следующего уровня.
