3.2.1. Определение режимов
Если бы определение режима основывалось исключительно на конструкции интерфейса (как мы это до сих пор допускали в нашем изложении), тогда все пользователи делали бы одинаковые ошибки, хотя и с разной частотой. Однако это не так. Данный элемент интерфейса может для одного пользователя быть модальным, а для другого – нет. Более полное определение режима должно включать в себя то, как пользователь рассматривает интерфейс: интерфейс «человек-машина» является модальным по отношению к данному жесту, если, во-первых, текущее состояние интерфейса не находится в локусе внимания пользователя и, во-вторых, если в ответ на некоторый жест интерфейс может выполнить одно из нескольких возможных действий в зависимости от текущего состояния системы.
Интерфейс может быть модальным по отношению к одному жесту и не быть таковым по отношению к другому. Чтобы можно было классифицировать тот или иной интерфейс как истинно немодальный, он не должен быть модальным для любого жеста.
Степень модальности Q того или иного интерфейса может быть определена через классификацию каждого жеста, допустимого в интерфейсе, как модального или немодального. Затем, с учетом вероятности применения данного немодального жеста N_l выраженной как р(N_i) и вычисленной для данного пользователя или в среднем для группы пользователей, получаем Q=\sum_i p(N_i). Диапазон значений Q варьируется от 0 (полностью модальный) до 1 (полностью немодальный).
Обе части определения модального жеста необходимы для решения о том, является ли, например, жест нажатия клавиши «Backspace» модальным или нет. В большинстве компьютерных интерфейсов, если вы набираете какой-то текст, с помощью команды Backspace вы можете удалить символ, который был введен в самую последнюю очередь. Если это был символ е, то нажатие клавиши удалит символ е. Если же это был символ х, то нажатие клавиши удалит символ х. Другими словами, в одном случае клавиша «Backspace» служит для удаления символов е, а в другом случае – для удаления символов х. Если рассматривать только вторую часть определения, использование клавиши «Backspace» является модальным, так как то, какой именно символ она удаляет, зависит от того, какой символ был введен последним, т. е. содержание характеризует состояние системы. Однако в том случае, когда вы осознаете, что удаляемый вами объект находится в локусе вашего внимания, в соответствии с первой частью определения данная операция не является модальной, и поэтому вы не делаете модальных ошибок, используя клавишу «Backspace» для удаления из текста каких-либо символов или любых других объектов, которые можно выделить и удалить.[12] С другой стороны, команда, которая устанавливает для клавиши «Backspace» направление удаления (вперед или назад), делает интерфейс модальным. Ранее установленное направление удаления обычно уже не находится в локусе вашего внимания, когда впоследствии вы используете клавишу «Backspace», поэтому иногда удаление будет происходить в неожиданном направлении.
Предотвращение авиакатастроф через устранение режимов
Время от времени из-за простых ошибок в интерфейсах происходят крушения как дистанционно управляемых летательных аппаратов (RPV, remote-piloted vehilces), используемых для военных нужд, так и гражданских радиоуправляемых моделей самолетов. Чтобы понять ошибку и определить метод ее исправления, следует, прежде всего, знать кое-что о том, как эти устройства работают.
При дистанционном управлении летательным аппаратом оператор, находящийся на земле, манипулирует небольшим джойстиком, встроенным в пульт управления (рис. 3.2). Как правило, для того чтобы временно поднять нос аппарата, требуется потянуть джойстик на себя, а для того чтобы опустить нос, требуется толкнуть джойстик от себя. Для наклона вправо и влево джойстик, соответственно, перемещается вправо или влево. Перемещение джойстика вызывает пропорциональное движение устройства, называемого сервомотором. Сервомотор механически соединен с управляющей плоскостью, например с рулем высоты в хвостовом оперении самолета, позволяющим управлять его продольным наклоном.
Рис. 3.2. Пульт дистанционного управления гражданского летательного аппарата. Обратите внимание на множество элементов управления, расположенных по всей лицевой панели пульта и в его верхней части
Сервомотор не имеет стандартного направления движения относительно движения джойстика управления, поэтому принято на пульте устанавливать переключатель, который позволяет выбрать, какое направление движения джойстика будет соответствовать тому или иному направлению движения сервомотора. Это явно модальное действие вступает в противоречие с привычными реакциями пользователя, как это обычно и происходит при наличии режимов. Следует сказать, что для управления несколькими разными летательными аппаратами зачастую используется один пульт. В каждом аппарате может быть установлено свое направление движения сервомоторов, от которого зависит поведение самолета в воздухе. При переключении управления между аппаратами оператор должен проверять положение переключателей, регулирующих направление движения сервомоторов, чтобы на перемещение джойстика летательный аппарат отвечал соответствующими действиями.
Почти невозможно научить пилота управлять прибором, когда направление движения сервомоторов заранее не известно. Например, представьте себе, что пилот, который готовится выполнить взлет дистанционно управляемого летательного аппарата, не знает о том, что переключатель направления наклона установлен в неверную позицию. Взлет является очень сложным маневром, требующим большого внимания. Обычно при взлете самолет спонтанно слегка заваливается влево или вправо в момент отрыва от земли, и опытный пилот автоматически подает небольшой сигнал на компенсацию этого заваливания. У хорошего пилота эта реакция настолько быстрая, что, наблюдая со стороны, можно вообще ничего не заметить. Если переключатель направления работы сервомоторов установлен в обратное положение, то заваливание, естественно, станет еще больше. В этом случае хорошо тренированный пилот сделает еще большее компенсирующее отклонение джойстика, тем самым только усугубляя заваливание. В конце концов, полет обычно заканчивается разрушением самолета, как только его крыло касается земли или когда самолет полностью переворачивается на спину. (Все эти события могут произойти за доли секунды.) Я еще не видел ни одного пилота, который смог бы быстро догадаться о возникшей проблеме и вовремя изменить свои реакции на обратные, чтобы безопасно закончить взлет. Такого рода крушения происходили при мне два раза, несмотря на обязательную проверку правильности положения переключателя, регулирующего движение управляющих плоскостей. Проверка положения переключателя, когда она выполняется десятки раз, тоже становится привычкой вплоть до того, что вы можете не заметить, действительно ли управляющие плоскости движутся в правильном направлении. (Если они не будут двигаться вообще, то, естественно, это сразу привлечет ваше внимание к наличию проблемы.) Тем не менее, во время таких проверок я сам довольно часто обнаруживал, что аппарат, который я собирался поднять в воздух, имел обратное направление движения сервомоторов. Однако, испытывая недостаток времени или отвлекаясь на другие дела, я, как и сотни других пилотов, не замечал эту неправильность.
Интересно отметить, что такая ошибка, как правило, не происходит при первом полете на новом аппарате, когда вы особенно внимательны к возможным проблемам. Только после того, как полеты на каком-то аппарате становятся «второй натурой» или просто привычным делом, она обычно и случается.
Этот пример демонстрирует случай, когда режим невозможно устранить. Режимы изначально присущи сервомоторам и джойстикам управления. Тем не менее, из данной ситуации есть выход. В качестве решения можно предложить следующее: поместить переключатель направления работы сервомоторов внутрь самого летательного аппарата, возможно, сделать его частью самих сервомоторов, и убрать этот переключатель с пульта управления. Обычно внутренняя часть корпуса самолета недоступна, поэтому переключатели могут устанавливаться в нужное положение при сборке аппарата. Правильность настройки будет проверяться сборщиками самолета, затем инспекторами и затем еще раз (как обычно) пилотом перед первым полетом. Хотя этот метод не устраняет полностью возможности крушения, но если первый полет выполнен успешно, то в дальнейшем проблема переключения сервомоторов уже не должна возникать на этом аппарате независимо от того, используется ли данный пульт для управления и другими летательными аппаратами. С точки зрения оператора, режим устранен.