Широкая изменяемость каждой из представленных мер объясняет, почему эта упрощенная модель не может использоваться для получения абсолютных временных значений с какой-либо степенью точности. Тем не менее, с помощью типичных значений мы можем сделать правильную сравнительную оценкумежду какими-то двумя интерфейсами по уровню эффективности их использования. Если оцениваются сложные интерфейсы, включающие пересекающиеся временные зависимости, или если должны быть с точностью достигнуты определенные временные интервалы, то следует применять более сложные модели (например, CPM-GOMS), которые не рассматриваются в этой книге.
Двойная «дискликсия» [20]
   Интерфейсная техника, называемая «двойным кликом», т. е. двойное нажатие кнопки ГУВ за короткий временной промежуток и без какого-либо значительного перемещения курсора между двумя нажатиями, имеет некоторые недостатки. Вы не можете точно сказать, какие объекты на экране ответят на двойной клик, а какие нет. Кроме того, не всегда ясно, какой именно может быть ответ. Отображаемые на экране монитора элементы не имеют каких-либо признаков, означающих, что двойной клик может вызвать какой-то результат, – т. е. эта функциональность является невидимой. То, каким образом двойной клик используется во многих сегодняшних интерфейсах, вынуждает пользователей запоминать не только то, по каким именноэлементам можно дважды щелкать мышью, но и то, какой результат возникает в ответ на этой действие по отношению к разным классам элементов интерфейса.
   Первые две проблемы можно, по крайней мере, частично решить с помощью использования новых условностей. Что касается двойного клика, то он сам по себе представляет проблему. Двойной клик требует использования кнопки мыши дважды в одном и том же месте или при небольшом перемещении и, в большинстве случаев, в течение небольшого промежутка времени, приблизительно за 500 мс. Если пользователь щелкает слишком медленно, машина воспринимает это как два отдельных клика, а не как один двойной клик. Если пользователь слишком сильно двигает мышью в промежутке между двумя кликами, может произойти та же самая ошибка. Если пользователь слишком быстро нажимает кнопку ГУВ, например, как при работе с некоторыми текстовыми процессорами при попытке выделить буквы внутри слова, система может воспринять два нажатия как двойной клик и в результате будет выделено все слово.
   Другая проблема возникает, когда пользователь пытается выделить графический элемент, который можно переместить с помощью ГУВ. Поскольку при быстром нажатии на кнопку ГУВ это устройство очень легко сдвинуть с места, графические программы могут воспринять это действие не как двойной клик, а как попытку переноса объекта в другое место (drag-and-drop). Аналогичным образом, чтобы изменить текст в окне, пользователь может посчитать необходимым изменить местоположение случайно сдвинутого окна и внести в текст поправки, которые изначально предполагались.
   Некоторые из нас не страдают от дискликсии. Эти счастливые люди никогда не промахиваются мышью. Они могут вполне беззаботно и с особым своеобразием делать и один, и два клика по мыши и никоим образом не страдать от каких-то побочных эффектов. Они всегда помнят, что может система ответить на двойной щелчок, а что не может. Такие люди способны попасть из револьвера калибра 0,357 в летящую птицу, двигаясь при этом на автомобиле по извилистой горной дороге. Однако нельзя рассчитывать на то, что все пользователи настолько удачливы. Поэтому интерфейс необходимо разрабатывать с учетом пользователей, страдающих от дискликсии, а также с учетом проблем, присущих использованию двойного клика. [21]
____________
   Длительность ответа, поступающего от компьютера, R, может оказывать неожиданный эффект на действия пользователя. Если при использовании какого-то управляющего элемента на экране монитора в течение приблизительно 250 мс ничего не возникает, пользователь, скорее всего, может почувствовать беспокойство, решит сделать еще одну попытку или подумает, что система неисправна.
   Нельзя сделать такой продукт, который мог бы завершать все операции за время, не превышающее времени реакции пользователя, но можно сделать такие интерфейсы, в которых в течение этого времени всегда бы выдавалось сообщение о том, что информация от пользователя принята и правильно распознана. В противном случае действия пользователя во время задержки – чаще всего просто молотьба по клавиатуре с целью получить хоть какой-то ответ – могут привести к нежелательным реакциям со стороны системы, приводя тем самым к еще большей задержке или даже повреждению содержания. Например, при попытке скачать какой-нибудь файл с America Online с помощью броузера (например, Netscape) очень часто возникает большая задержка. При этом не появляется никакого признака, что действительно что-то происходит. Возникает только небольшое статическое сообщение о том, что компьютер ждет ответа, но оно находится далеко за пределами локуса внимания пользователя. Через несколько секунд неопытный пользователь начинает кликать по кнопкам на экране, что приводит к остановке загрузки файла – опять же без всякого сообщения об этом.
   Если задержки неизбежны, важно, чтобы в интерфейсе была предусмотрена сообщающая о них обратная связь, – например, можно использовать индикатор хода выполнения задачи (status bar) (рис. 4.1), отражающий время, оставшееся до конца операции. Если неизвестно, сколько именно времени займет операция, так и скажите об этом пользователю! Нельзя лгать пользователю или вводить его в заблуждение.
    Рис. 4.1. Индикатор хода выполнения задачи. Важно, чтобы отображение времени было линейным. Текстовое сообщение об оставшемся времени, если оно точное, также можно считать человекоориентированным решением в тех случаях, когда задержки неизбежны.

4.2.2. Расчеты по модели GOMS

   Вычисления времени, необходимого на выполнение того или иного действия (например, «переместить руку с графического устройства ввода на клавиатуру и набрать букву»), с помощью модели GOMS начинаются с перечисления операций из списка жестов модели GOMS (см. раздел 4.2.1.), которые составляют это действие (в приведенном примере это H K). Перечисление движений (K, P и H) – это довольно простая часть модели GOMS. Более сложным, например, в модели скорости печати GOMS, является определение точек, в которых пользователь остановится, чтобы выполнить бессознательную ментальную операцию, – интервалы ментальной подготовки, которые обозначаются символом M. Основные правила (по Card, Moran и Newell, 1983, с. 265), позволяющие определить, в какие моменты будут проходить ментальные операции, представлены в табл. 4.1. В разделе 4.2.3 мы рассмотрим, как эти правила применяются на практике.
Таблица 4.1. Расстановка ментальных операций
    Правило 0. Начальная расстановка операторов M
   Операторы M следует устанавливать перед всеми операторами K (нажатие клавиши), а также перед всеми операторами P (указание с помощью ГУВ), предназначенными для выбора команд; но перед операторами P, предназначенными для указания на аргументы этих команд, ставить оператор M не следует.
    Правило 1. Удаление ожидаемых операторов M
   Если оператор, следующий за оператором M, является полностью ожидаемым с точки зрения оператора, предшествующего M, то этот оператор M может быть удален. Например, если вы перемещаете ГУВ с намерением нажать его кнопку по достижении цели движения, то в соответствии с этим правилом следует удалить оператор M, устанавливаемый по правилу 0. В этом случае последовательность P M K превращается в P K.
    Правило 2. Удаление операторов M внутри когнитивных единиц
   Если строка вида M K M K M K… принадлежит когнитивной единице, то следует удалить все операторы M, кроме первого. Когнитивной единицей является непрерывная последовательность вводимых символов, которые могут образовывать название команды или аргумент. Например Y, перемещать, Елена Троянскаяили 4564.23являются примерами когнитивных единиц.
    Правило 3. Удаление операторов M перед последовательными разделителями
   Если оператор K означает лишний разделитель, стоящий в конце когнитивной единицы (например, разделитель команды, следующий сразу за разделителем аргумента этой команды), то следует удалить оператор M, стоящий перед ним.
    Правило 4. Удаление операторов M, которые являются прерывателями команд
   Если оператор K является разделителем, стоящим после постоянной строки (например, название команды или любая последовательность символов, которая каждый раз вводится в неизменном виде), то следует удалить оператор M, стоящий перед ним. (Добавление разделителя станет привычным действием, и поэтому разделитель станет частью строки и не будет требовать специального оператора M.) Но если оператор K является разделителем для строки аргументов или любой другой изменяемой строки, то оператор M следует сохранить перед ним.
    Правило 5. Удаление перекрывающих операторов M
   Любую часть оператора M, которая перекрывает оператор R, означающий задержку, связанную с ожиданием ответа компьютера, учитывать не следует.
____________
   Кроме того, отметим, что в этих правилах под строкой будет пониматься некоторая последовательность символов. Разделителембудет считаться символ, которым обозначено начало или конец значимого фрагмента текста, такого как, например, слово естественного языка или телефонный номер. Например, пробелы являются разделителями для большинства слов. Точка является наиболее распространенным разделителем, который используется в конце предложений. Скобки используются для ограничения пояснений и замечаний и т. д. Операторами являются K, P и H. Если для выполнения команды требуется дополнительная информация (как, например, в случае когда для установки будильника пользователю требуется указать время его включения), эта информация называется аргументом данной команды.

4.2.3. Примеры расчетов по модели GOMS

   Разработка интерфейса обычно начинается с определения задачи или набора задач, для которых продукт предназначен. Суть задачи, а также средства, имеющиеся для реализации ее решения, часто формулируют в виде требования или спецификации. В нижеприведенном примере в качестве пользователя выступает лаборант Хол.
Требования
   Хол работает на компьютере – печатает отчеты. Иногда его отвлекают экспериментаторы, находящиеся в этой же комнате, чтобы попросить перевести температурные показания из шкалы Фаренгейта в шкалу Цельсия или наоборот. Например, Холу могут сказать: «Переведи, пожалуйста, 302.25 градуса по шкале Фаренгейта в градусы по шкале Цельсия». Значение температуры Хол может ввести только с помощью клавиатуры или ГУВ. Голосовые или другие средства ввода отсутствуют. Просьбы о переводе из одной шкалы в другую поступают приблизительно с равной вероятностью. Приблизительно 25 % значений – отрицательные. 10 % значений являются целочисленными (например, 37°). Результат перевода из одной шкалы в другую должен отражаться на экране монитора. Другие средства вывода результатов не используются. Хол читает вслух экспериментатору полученное значение. Вводимые и выводимые числовые значения температур могут иметь до десяти цифр с каждой стороны от десятичного разделителя.
   При разработке интерфейса для системы, с помощью которой Хол сможет выполнять такие просьбы, следует минимизировать время, необходимое для перевода из одной шкалы в другую. Скорость и точность операций должны быть максимальными. Рабочая площадь экрана не ограничена. Окно или область экрана, предназначенная для перевода температурных значений, является постоянно активным и готово к вводу данных с помощью клавиатуры или ГУВ. То, каким образом Хол сможет вернуться к выполнению его основной работы, не учитывается. Задача считается выполненной с получением результата перевода.
   Для оценки требуемого Холу времени исходите из среднего временного значения на введение четырех символов, включая десятичную запятую. Также, из соображений простоты, будем считать, что Хол вводит все символы без ошибок, и поэтому средства выявления ошибок и сообщения о них не требуются.
____________
   Сейчас я предлагаю читателям прервать чтение и попытаться разработать интерфейс по этим простым условиям. Для записи решения включая зарисовки изображений, которые будет наблюдать Хол на экране монитора, не потребуется много времени; поэтому постарайтесь не просто подумать об этой задаче, но и записать ее решение. (Возможно, вы захотите продолжить чтение, проигнорировав мою просьбу, однако я все же прошу вас подумать. Чтение последующих разделов будет намного более интересным, если вы сделаете попытку решить предложенную задачу самостоятельно.) После того как вы закончите разработку интерфейса, ознакомьтесь с анализами, проведенными по методу GOMS, которые будут представлены далее. После этого вы сможете проанализировать свой собственный вариант.

4.2.3.1. Интерфейс для Хола: вариант 1. Диалоговое окно

   Инструкции в диалоговом окне (рис. 4.2) довольно просты. На их основе можно описать метод действий, который должен использовать Хол в терминах жестов модели GOMS. Запись по модели GOMS будет представлена последовательно по мере того, как будут добавляться новые жесты.
    Рис. 4.2. Вариант диалогового окна с использованием группы переключателей
   • Перемещение руки к графическому устройству ввода данных:
   H
   • Перемещение курсора к необходимому переключателю в группе:
   H P
   • Нажатие на необходимый переключатель:
   H P K
   В половине случаев в интерфейсе уже будет выбрано требуемое направление перевода, и поэтому Холу не придется кликать на переключатель. Сейчас мы рассматриваем случай, когда переключатель не установлен в требуемое положение.
   • Перемещение рук снова к клавиатуре:
   H P K H
   • Ввод четырех символов:
   H P K H K K K K
   • Нажатие клавиши «Enter»:
   H P K H K K K K K
   Нажатие клавиши «Enter» завершает часть анализа, касающуюся метода. В соответствии с правилом 0 мы ставим оператор M перед всеми операторами K и P за исключением операторов P, указывающих на аргументы, которых в нижеследующем примере нет:
   H M P M K H M K M K M K M K M K
   Правило 1 предписывает заменить P M K на P K и удалить все другие операторы M, которые являются ожидаемыми (в указанном примере таких нет). Кроме того, правило 2 предписывает удалять операторы M в середине цепочек. После применения этих двух правил остается следующая запись:
   H M P K H M K K K K M K
   В соответствии с правилом 4 следует оставить оператор M перед конечным K. Правила 3 и 5 в данном примере не применяются.
   Следующий шаг – это заменить символы операторов на соответствующие временные интервалы (напомним, что K=0.2; P=1.1; H=0.4; M=1.35).
   H + M + P + K + H + M + K + K + K + K + M + K = 0.4 + 1.35 + 1.1 + 0.2 + 0.4 + 1.35 + 4*(0.2) + 1.35 + 0.2 = 7.15 с
   В случае когда переключатель уже установлен в требуемое положение, метод действий становится следующим:
   M K K K K M K
   M + K + K + K + K + M + K = 3.7 с
   По условиям задачи оба случая являются равновероятными. Таким образом, среднее время, которое потребуется Холу на использование интерфейса для перевода из одной шкалы в другую, составит (7.15+3.7)/2? 5.4 с. Но поскольку описанные два метода являются разными, Холу будет трудно использовать их автоматично. Нерешенной проблемой количественных методов анализа остается оценка процента появления ошибок при использовании данной модели интерфейса.
   Далее мы рассмотрим графический интерфейс, в котором используется известная всем метафора.

4.2.3.3. Интерфейс для Хола: вариант 2. ГИП (GUI, graphical user interface)

 
    Рис. 4.3. ГИП для задачи Хола
   В интерфейсе, показанном на рис. 4.3, используется наглядное отображение термометров. Хол может поднять или опустить указатель на каждом термометре методом перетаскивания с помощью ГУВ. Хол определяет, какой ему необходимо сделать пересчет, перемещая стрелку указателя либо по шкале Цельсия, либо по шкале Фаренгейта. Холу не требуется вводить символы посредством клавиатуры – он просто выбирает значение температуры на одном из термометров. При перемещении указателя на одном термометре указатель на другом перемещается на соответствующее значение. Точность устанавливается с помощью регуляторов масштабирования шкал. Также возможно изменить текущий диапазон значений. Изменение шкалы или диапазона на одном термометре автоматически приводит к соответствующему изменению на другом. Точное числовое значение отображается на перемещаемой стрелке. Температура показывается как в числовом виде так и с помощью уровня градусника, поэтому Хол может, на свое усмотрение, пользоваться либо графическим вариантом представления данных, либо символьным. Сервис «Автомед» позволяет установить диапазоны термометров с центром в районе 37 градусов шкалы Цельсия и 98.6 градусов Фаренгейта на случай, если кто-то из сотрудников работает со значениями температуры тела человека. Эта опция служит для экономии времени.
   С помощью нажатия кнопок «Расширить шкалу» (Expand Scales) и «Сжать шкалу» (Compress Scales) можно уменьшить или увеличить цену деления шкал в 10 раз. Для перехода к значению, которое в данный момент не видно на экране, Хол расширяет шкалу, затем прокручивает до нужного места на шкале, устанавливает стрелку на необходимое температурное значение и потом сжимает шкалу до получения требуемой точности, при необходимости подстраивая стрелку указателя.
   Провести анализ этого графического интерфейса с помощью модели скорости печати GOMS довольно сложно, поскольку способ, которым Хол может его использовать, зависит от того, где в данный момент установлена стрелка указателя, какой необходим диапазон температур и какая требуется точность. Рассмотрим сначала простой случай, при котором диапазон температурных шкал и точность перевода уже находятся в желаемом положении. Анализ позволит определить минимальное время, необходимое для использования этого интерфейса.
   • Запишем, какие жесты использует Хол, когда перемещает руку к ГУВ, щелкает по кнопке и удерживает ее, указывая на стрелку одного из термометров:
   H P K
   • Продолжим записывать те жесты, которые использует Хол для перемещения стрелки к необходимому температурному значению и отпускает кнопку ГУВ
   H P K P K
   • Поставим операторы M в соответствии с правилом 0:
   H M P M K M K
   • Удалим два оператора M в соответствии с правилом 1:
   H M P K K
   Когнитивные единицы, разделители последовательностей и т. д. здесь не используются, поэтому правила 2–5 не применяем. Складывая значения операторов, получаем общее время:
   H M P K K
   0.4 + 1.35 + 1.1 + 0.2 + 0.2 = 3.25 с
   Результат вычисления относится к удачному случаю, когда исходный термометр уже предустановлен на требуемый диапазон и точность. Теперь рассмотрим случай, при котором Хол расширяет шкалу, чтобы увидеть необходимое температурное значение, изменяет диапазон, сжимает шкалу, чтобы получить требуемую точность, и затем перемещает стрелку указателя. Далее я привожу общую запись метода, который использует Хол, без промежуточных шагов. (Я исхожу из того, что Хол является опытным пользователям и не прокручивает шкалу туда и обратно, чтобы найти на ней нужный участок.) Холу приходится несколько раз пользоваться стрелками для прокрутки температурной шкалы. На каждую операцию прокручивания экрана может потребовать нескольких жестов. Кроме того, требуется время на то, чтобы отобразить изменения на экране, связанные с его прокруткой. Чтобы оценить время прокручивания, я построил такой интерфейс и измерил эти значения. Все они были равны 3 с и более. Обозначая время прокручивания шкал через S, запишем последовательность жестов, которые применяет Хол.
   H P K S K P K S K P K S K P K K
   В соответствии с правилами расставляем операторы M:
   H + 3(M + P + K + S + K) + M + P + K + K
   0.4 + 3*(1.35 + 0.2 + 3.0 + 0.2) + 1.35 + 0.4 + 0.2 + 0.2 = 16.8 с
   За исключением редких случаев, когда шкалы уже с самого начала установлены правильно, идеальному пользователю понадобится более 16 с. на то, чтобы выполнить перевод из одной шкалы в другую, тогда как реальный, т. е. не идеальный пользователь, может сбивать шкалы и стрелки указателей, и поэтому ему понадобится даже больше времени.

4.3. Измерение эффективности интерфейса

   Каждый инструмент несет с собой тот дух, в котором он был создан.
Вернер Карл Гейзенберг

   Мы рассмотрели два интерфейса: в одном из которых требуется около 5 с. на выполнение задачи, а в другом – более 15 с. Отсюда ясно, какой из интерфейсов лучше удовлетворяет поставленным условиям. Следующий вопрос – это определить, насколько быстро работает тот интерфейс, который отвечает поставленным требованиям.
   Если имеется модель интерфейса, то с помощью GOMS и его расширений можно определить время, необходимое пользователю на выполнение любой, четко сформулированной задачи, для которой данный интерфейс предусмотрен. Однако модели анализа не могут дать ответ на вопрос о том, насколько быстро должен работать интерфейс. Чтобы ответить на него, мы можем воспользоваться мерой, применяемой в теории информации. Далее мы будем рассматривать термин информацияв техническом смысле, т. е. как квантификацию некоторого объема данных, передаваемых с помощью средства коммуникации, как, например, при разговоре двух людей по телефону, или если человек подает некоторый сигнал машине, например с помощью нажатия кнопки ГУВ, когда курсор находится в определенной области экрана. Перед тем как углубиться в детали техники измерения того, какой объем информации нужен для выполнения поставленной задачи, обоснуем необходимость такого измерения.
   Чтобы сделать правильную оценку времени, необходимого на выполнение задачи с помощью самого быстрого интерфейса, прежде всего следует определить минимальное количество информации, которое пользователь должен ввести, чтобы выполнить задачу. Это минимальное количество не зависит от модели интерфейса. Если методы работы, используемые в предполагаемом интерфейсе, требуют введения такого количества информации, которое превышает минимальное, это означает, что пользователь делает лишнюю работу, и поэтому интерфейс можно усовершенствовать. С другой стороны, если от пользователя требуется ввести именно то количество информации, которое необходимо для выполнения задачи, то для этой задачи интерфейс нельзя сделать более производительным путем изменения количества информации. В этом случае пути улучшения интерфейса (а также много путей для ухудшения) все же остаются, но по крайней мере данная цель повышения производительности будет уже достигнута.
    Информационно-теоретическая производительностьопределяется так же, как понятие производительности определяется в термодинамике – отношением мощности на выходе к мощности на входе процесса. Если в течение какого-то периода времени электрогенератор, работающий от двигателя производительностью в 1000 ватт, производит 820 ватт, то он имеет производительность 820/100=0.82. Производительность также часто обозначается через проценты. В этом случае производительность электрогенератора будет составлять 82 %. Идеальный генератор (который не может существовать с точки зрения второго закона термодинамики) должен иметь производительность 100 %.
    Информационная производительностьинтерфейса E определяется как отношение минимального количества информации, необходимого для выполнения задачи, к количеству информации, которое должен ввести пользователь. Так же как и в отношении физической производительности, параметр E может изменяться в пределах от 0 до 1. Если никакой работы для выполнения задачи не требуется или работа просто не производится, то производительность составляет 1. (Это формальное положение вводится для того, чтобы избежать деления на 0, как в случае ответа на выводимое прозрачное сообщение об ошибке (см. раздел 5.5).)
   Производительность E может равняться и 0 в случаях, когда пользователь должен ввести информацию, которая совершенно бесполезна (рис. 4.4). Следует отметить, что в интерфейсах можно встретить немало деталей, которые имеют сомнительную ценность из-за параметра E=0. Примером такого бесполезного элемента может быть диалоговое окно, в котором есть только одна-единственная возможность для действия пользователя, например кнопка OK. (В JavaScript есть даже специальная команда Alert, предназначенная только для того, чтобы делать такие ненужные диалоговые окна. Разработчики языка JavaScript были достаточно разумны, чтобы убрать из него команду goto и сделать программирование на этом языке структурным, но они упустили из виду аспект интерфейса.)
    Рис. 4.4. Диалоговое окно с информационной теоретической эффективностью 0