- •1. Предпосылки
- •1.1. Определение интерфейса
- •1.2. Простое должно оставаться простым
- •1.3. Ориентация на человека и на пользователя
- •1.4. Инструменты, которые препятствуют новым идеям
- •1.5. Разработка интерфейса как часть общего цикла разработки
- •1.6. Определение человекоориентированного интерфейса
- •2. Когнетика и локус внимания
- •2.1. Эргономика и когнетика: что мы можем и чего не можем
- •2.2. Когнитивное сознательное и когнитивное бессознательное
- •2.3. Локус внимания
- •2.3.1. Формирование привычек
- •2.3.2. Одновременное выполнение задач
- •2.3.3. Сингулярность локуса внимания
- •2.3.4. Истоки локуса внимания
- •2.3.5. Эксплуатация единого локуса внимания
- •2.3.6. Возобновление прерванной работы
- •3. Значения, режимы, монотонность и мифы
- •3.1. Терминология и условные обозначения
- •3.2. Режимы
- •3.2.1. Определение режимов
- •3.2.2. Режимы, пользовательские настройки и временные режимы
- •3.2.3. Режимы и квазирежимы
- •3.3. Модели «существительное-глагол» и «глагол-существительное»
- •3.4. Видимость и состоятельность
- •3.5. Монотонность
- •3.6. Миф о дихотомии «новичок-эксперт»
- •4. Квантификация
- •4.1. Количественный анализ интерфейса
- •4.2. Модель скорости печати goms
- •4.2.1. Временные интервалы в интерфейсе
- •4.2.2. Расчеты по модели goms
- •4.2.3. Примеры расчетов по модели goms
- •4.2.3.1. Интерфейс для Хола: вариант 1. Диалоговое окно
- •4.2.3.3. Интерфейс для Хола: вариант 2. Гип (gui, graphical user interface)
- •4.3. Измерение эффективности интерфейса
- •4.3.1. Производительность интерфейса для Хола
- •4.3.2. Другие решения интерфейса для Хола
- •4.4. Закон Фитса и закон Хика
- •4.4.1. Закон Фитса
- •4.4.2. Закон Хика
- •5. Унификация
- •5.1. Унификация и элементарные действия
- •5.2. Каталог элементарных действий
- •5.2.1. Подсветка, указание и выделение
- •5.2.2. Команды
- •5.2.3. Экранные состояния объектов
- •5.3. Имена файлов и файловые структуры
- •5.4. Поиск строк и механизмы поиска
- •5.4.1. Разделители в шаблоне поиска
- •5.4.2. Единицы взаимодействия
- •5.5. Форма курсора и методы выделения
- •5.7. Ликвидация приложений
- •5.8. Команды и трансформаторы
- •6. Навигация и другие аспекты человекоориентированных интерфейсов
- •6.1. Интуитивные и естественные интерфейсы
- •6.2. Улучшенная навигация: ZoomWorld
- •6.3. Пиктограммы
- •6.4. Способы и средства помощи в человекоориентированных интерфейсах
- •6.4.1. Вырезать и вставить
- •6.4.2. Сообщения пользователю
- •6.4.3. Упрощение входа в систему
- •6.4.4. Автоповтор и другие приемы работы с клавиатурой
- •6.5. Письмо от одного пользователя
- •7. Проблемы за пределами пользовательского интерфейса
- •7.1. Более человекоориентированные среды программирования
- •7.1.1. Системное окружение и среда разработки
- •7.1.2. Важность ведения документации при создании программ
- •7.2. Режимы и кабели
- •7.3. Этика и управление разработкой интерфейсов
- •Заключение
5. Унификация
Это чрезвычайно хитроумно, чрезвычайно сложно и крайне эффективно, но в то же время грубо, неэкономно и топорно, и чувствуется, что есть лучший способ. К. Стрэтчи (говоря не о Windows, а о компьютере IBM Stretch в 1962 г.)
Если пытаться создать универсальный интерфейс, в котором были бы учтены те требования, о которых шла речь в предыдущих главах, то выяснится, что для этого нужно радикально изменить нашу обычную практику. Здесь возможно много направлений. Одно из них заключается в том, чтобы посмотреть, что мы можем сделать в условиях существования Интернета и сотен миллионов компьютеров, а также других устройств обработки информации, которые уже существуют или которые только разрабатываются сегодня.
В настоящее время аппаратная конфигурация обычного персонального компьютера является почти универсальной. Если принять точку зрения, что внутри почти всех приложений, использующих общие аппаратные средства, акцент делается на унификацию физических действий, у нас появляется возможность разработать всеобъемлющий и в то же время простой интерфейс.
Набор действий, которыми пользователь влияет на содержание — будь оно текстовым, графическим или мультимедийным, — можно организовать в простую таксономию, с помощью которой мы сможем описать любой интерфейс в некой унифицированной форме. Такая организация позволила бы упростить разработку интерфейсов. Например, внедрение универсального средства «отменить/повторить» (undo/redo) тоже позволяет создавать единообразные интерфейсы, тем самым избавляя от необходимости придумывать средство обработки ошибок специально для каждой программы.
Разные приложения имеют разные наборы команд, и пользователь обычно не может в целом использовать команды приложения А при работе с приложением В или наоборот. Если же сделать команды независимыми от приложений, то тем самым мы сможем устранить модальность, которая изначально им присуща. При такой унификации общее количество команд, которое пользователю придется запоминать, существенно сократится, — главным образом потому, что унификация позволит избавиться от огромного числа повторений команд. Например, в компьютере Canon Cat с помощью всего 20 команд можно было управлять текстовым процессором, электронными таблицами, созданием, сортировкой и обработкой баз данных, вычислениями и т.д. В современных системах аналогичной мощности используется более 100 команд для выполнения того же самого набора задач. Тысячи команд, которые используются в современных средах, можно было бы сократить до сотни. Так как не все команды могут применяться ко всем типам данных, возникнет необходимость применять к объектам преобразователи типов данных, чтобы создать новые объекты, к которым при определенных условиях уже можно будет применить выбранную команду.
Кроме того, может быть снято и другое разделение, которое имеется сегодня между теми средствами, которые содержатся в коммерческих программных продуктах, и теми, которые могут быть созданы самим пользователем. Например, сегодня меню являются объектами операционной системы, которые устанавливаются в каждом приложении. Однако меню представляют собой всего лишь какой-то текст. Почему бы тогда не дать возможность пользователю самому составлять список часто используемых команд, защитить его от случайного изменения, прикрепить наверху экрана и использовать его как обычное системное меню? Для упрощения создания таких меню в интерфейсе можно было бы предусмотреть возможность блокировать и разблокировать какой-то текст, а также возможность его перемещения вместе с другим содержанием или закрепления в каком-то месте на экране. Текст может быть в разных состояниях.
Хотя Eudora и Microsoft Word являются программами, в которых можно изменять меню, тем не менее, для изменения его содержания вы должны использовать только специально предназначенные для этого средства. В данном случае мы как раз и говорим о том, что должна быть возможность создавать меню обычными средствами создания и редактирования текстов. В этом смысле меню можно рассматривать как содержание.
Еще одним шагом к упрощению интерфейса является устранение трудно запоминаемых и неудобных файловых имен, а также системных файловых структур. При наличии хороших механизмов поиска использование имен файлов и файловых структур перестает быть необходимым.