Для разработки интерфейса пользователя нужно анализировать действия пользователя при выполнении задачи. Интерфейс должен быть «ориентированным на человека» (дружественным). Хороший интерфейс позволяет работать с приложением почти интуитивно.
При создании «правильного» интерфейса следует учитывать следующие принципы:
– быть «последовательными»;
– использовать информативную графику, а не украшательства;
– добиваться легкости чтения;
– показывать, а не говорить;
– делать, а не спрашивать;
– не терять нити диалога;
– разрешать пользователю управлять.
Первый принцип предостерегает от неоправданного «творчества». При разработке интерфейса следует ориентироваться на знания и умение пользователей, они не должны тратить время на постоянное переобучение, забывать ранее приобретенные навыки. Разработчик может использовать стандартный интерфейс Microsoft Office, «включая» его в свое приложение. В интерфейсе должны действовать стандартные соглашения (все команды доступны через меню, а наиболее часто используемые – через кнопки на панели инструментов).
Информативная графика позволяет людям работать с приложением аналогично тому, как они работали бы с «реальными» документами, значки должны отражать смысл соответствующих операций (например, лупа должна увеличивать, а ножницы вырезать). Стандартные элементы управления моделируют объекты реального мира, с которыми люди привыкли работать.
Основные элементы управления, организация диалога рассматриваются ниже.
Одна из основных задач при разработке интерфейса – добиться легкости чтения. Эта задача решается выбором наиболее подходящих шрифтов, их начертания. Кроме того, следует зрительно выделять различные виды текстовой информации: надписи или пояснительный текст следует размещать прямо на форме, но не следует помещать в поле или в рамку; информацию, которая не является постоянной, но которую нельзя редактировать, лучше помещать в текстовое поле, сделав его недоступным и изменив фон; для редактируемой текстовой информации лучше использовать обычное поле ввода и т.п..
Известно, что пользователи не читают инструкций! То есть читают, но только тогда, когда ничего уже не помогает. Следовательно, «хороший» интерфейс должен сам подсказывать, что делать дальше, он должен вести пользователя, помогать ему решить задачу до конца. Размещение элементов управления должно соответствовать логике приложения. Экран должен быть организован в соответствии со стандартами. Из меню лучше убрать не используемые в приложении команды.
Приложение не должно быть «слишком бдительным»: оно не должно задавать «лишних» вопросов, подтверждение следует запрашивать только тогда, когда какое-либо действие имеет необратимые последствия.
Диалог в приложении должен быть лаконичным. Нужно стараться использовать надписи из одного слова, тексты всплывающих подсказок должны быть краткими (два-три слова), строка состояния должна содержать короткую фразу, поясняющую состояние приложения или выполняемое в данный момент действие. В сообщениях следует использовать стандартные значки.
Хороший пользовательский интерфейс одинаково удобен для всех категорий пользователей: для новичков и опытных пользователей, для тех, кто пользуется мышью и для тех, кто предпочитает клавиатуру. Поэтому:
– Все команды должны присутствовать в меню (для новичков).
– Для постоянно используемых команд должны быть созданы панели инструментов.
– Для часто используемых команд должны быть предусмотрены комбинации клавиш быстрого вызова, которые должны быть указаны в меню.
– Следует использовать всплывающие подсказки.
– Для подходящих случаев следует определять контекстные меню.
– Пользователям должны «прощаться» ошибки: в случае ошибки следует не только выводить сообщение об ошибке, но и подсказку о том, что нужно сделать, чтобы ее избежать.
Для разработки простого в использовании интерфейса нужно выделить задачи, решаемые пользователями, и выписать сценарии их решения. Интерфейс должен давать возможность проще всего решать ежедневные задачи и не исключать возможности работы в исключительных ситуациях.
До начала кодирования следует создать прототип на бумаге, показать пользователю, как будет проходить работа с приложением. Все замечания пользователя можно записать и учесть при кодировании.
Применимость интерфейса желательно проверить на нескольких пользователях, тогда большинство проблем будут обнаружены, и появится возможность их своевременного устранения.