Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПІК / Перевод / перевод / УСОВЕРШЕНСТВ_ПИ.doc
Скачиваний:
25
Добавлен:
05.06.2015
Размер:
1.77 Mб
Скачать

3.2.1. Визначення режимів

Якби визначення режиму ґрунтувалося винятково на конструкції інтерфейсу (як ми це дотепер допускали в нашому викладі), тоді всі користувачі робили б однакові помилки, хоча і з різною частотою. Однак це не так. Даний елемент інтерфейсу може для одного користувача бути модальним, а для іншого - немає. Більш повне визначення режиму повинне містити в собі те, як користувач розглядає інтерфейс: інтерфейс "людина-машина" є модальним стосовно даного жесту, якщо, по-перше, що текет стан інтерфейсу не знаходиться в локусі уваги користувача і, по-друге, якщо у відповідь на деякий жест інтерфейс може виконати одне з декількох можливих дій у залежності від поточного стану системи.

Інтерфейс може бути модальним стосовно одного жесту і не бути таким стосовно іншого. Щоб можна було класифікувати той чи інший інтерфейс як істинно немодальний, він не повинний бути модальним для будь-якого жесту.

Ступінь модальності Q того чи іншого інтерфейсу може бути визначена через класифікацію кожного жесту, припустимого в інтерфейсі, як модального чи немодального. Потім, з урахуванням імовірності застосування даного немодального жесту N_l вираженої як р(N_і) і обчисленої для даного чи користувача в середньому для групи користувачів, одержуємо Q=\sum_і p(N_і). Діапазон значень Q варіюється від 0 (цілком модальний) до 1 (цілком немодальний).

Обидві частини визначення модального жесту необхідні для рішення про тім, чи є, наприклад, жест натискання клавіші <Backspace> модальним чи ні. У більшості комп'ютерних інтерфейсів, якщо ви набираєте якийсь текст, за допомогою команди Backspace ви можете видалити символ, що був введений у саму останню чергу. Якщо це був символ е, то натискання клавіші видалить символ е. Якщо ж це був символ х, то натискання клавіші видалить символ х. Іншими словами, в одному випадку клавіша <Backspace> служить для видалення символів е, а в іншому випадку - для видалення символів х. Якщо розглядати тільки другу частину визначення, використання клавіші <Backspace> є модальним, тому що то, який саме символ вона видаляє, залежить від того, який символ був введений останнім, тобто зміст характеризує стан системи. Однак у тому випадку, коли ви усвідомлюєте, що об'єкт, що видаляється вами, знаходиться в локусі вашої уваги, відповідно до першої частини визначення дана операція не є модальної, і тому ви не робите модальних помилок, використовуючи клавішу <Backspace> для видалення з тексту яких-небудь чи символів будь-яких інших об'єктів, які можна виділити і видалити.12 З іншого боку, команда, що встановлює для клавіші <Backspace> напрямок видалення ( чивперед назад), робить інтерфейс модальним. Раніше встановлений напрямок видалення звичайно вже не знаходиться в локусі вашої уваги, коли згодом ви використовуєте клавішу <Backspace>, тому іноді видалення буде відбуватися в несподіваному напрямку.

________________________________________

Запобігання авіакатастроф через усунення режимів

Час від часу через прості помилки в інтерфейсах відбуваються катастрофи як дистанційно керованих літальних апаратів (RPV, remote-pіloted vehіlces), використовуваних для військових потреб, так і цивільних радиоуправляемых моделей літаків. Щоб зрозуміти помилку і визначити метод її виправлення, випливає, насамперед , знать дещо про те, як ці пристрої працюють.

При дистанційному керуванні літальним апаратом оператор, що знаходиться на землі, маніпулює невеликим джойстиком, убудованим у пульт керування (мал. 3.2). Як правило, для того щоб тимчасово підняти ніс апарата, потрібно потягнути джойстик на себе, а для того щоб опустити ніс, потрібно штовхнути джойстик від себе. Для нахилу вправо і вліво джойстик, відповідно, переміщається чи вправо вліво. Переміщення джойстика викликає пропорційний рух пристрою, називаного сервомотором. Сервомотор механічно з'єднаний з керуючою площиною, наприклад з кермом висоти в хвостовому оперенні літака, що дозволяє керувати його подовжнім нахилом.

Рис. 3.2. Пульт дистанційного керування цивільного літального апарата. Зверніть увагу на безліч елементів керування, розташованих по всій лицьовій панелі пульта й у його верхній частині

Сервомотор не має стандартного напрямку руху щодо руху джойстика керування, тому прийнято на пульті встановлювати перемикач, що дозволяє вибрати, яке напрямок руху джойстика буде відповідати тому чи іншому напрямку руху сервомотора. Це явно модальна дія вступає в протиріччя зі звичними реакціями користувача, як це звичайно і відбувається при наявності режимів. Варто сказати, що для керування декількома різними літальними апаратами найчастіше використовується один пульт. У кожнім апараті може бути установлений свій напрямок руху сервомоторів, від якого залежить поводження літака в повітрі. При переключенні керування між апаратами оператор повинний перевіряти положення перемикачів, що регулюють напрямок руху сервомоторів, щоб на переміщення джойстика літальний апарат відповідав відповідними діями.

Майже неможливо навчити пілота керувати приладом, коли напрямок руху сервомоторів заздалегідь не відомо. Наприклад, уявіть собі, що пілот, що готується виконати зліт дистанційно керованого літального апарата, не знає про те, що перемикач напрямку нахилу встановлений у невірну позицію. Зліт є дуже складним маневром, що вимагає великої уваги. Звичайно при зльоті літак спонтанно злегка завалюється чи уліво вправо в момент відриву від землі, і досвідчений пілот автоматично подає невеликий сигнал на компенсацію цього завалювання. У гарного пілота ця реакція настільки швидка, що, спостерігаючи з боку, можна взагалі нічого не помітити. Якщо перемикач напрямку роботи сервомоторів встановлений у зворотне положення, то завалювання, природно, стане ще більше. У цьому випадку добре тренований пілот зробить ще більше відхилення, що компенсує, джойстика, тим самим тільки збільшуючи завалювання. Зрештою , поле звичайно закінчується руйнуванням літака, як тільки його крило стосується чи землі коли літак цілком перевертається на спину. (Усі ці події можуть відбутися за частки секунди.) Я ще не бачив жодного пілота, що зміг би швидко догадатися про виниклу проблемі і вчасно змінити свої реакції на зворотні, щоб безпечно закінчити зліт. Такого роду катастрофи відбувалися при мені два рази, незважаючи на обов'язкову перевірку правильності положення перемикача, що регулює рух керуючих площин. Перевірка положення перемикача, коли вона виконується десятки разів, теж стає звичкою аж до того, що ви можете не помітити, що чи дійсно керують площини рухаються в правильному напрямку. (Якщо вони не будуть рухатися взагалі, те, природно, це відразу залучить вашу увагу до наявності проблеми.) Проте , під час таких перевірок я сам досить часто виявляв, що апарат, що я збирався підняти в повітря, мав зворотний напрямок руху сервомоторів. Однак, випробуючи недолік чи часу відволікаючи на інші справи, я, як і сотні інших пілотів, не зауважував цю неправильність.

Цікаво відзначити, що така помилка, як правило, не відбувається при першому польоті на новому апараті, коли ви особливо уважні до можливих проблем. Тільки після того, як польоти на якомусь апараті стають "другою натурою" чи просто звичною справою, вона звичайно і случається.

Цей приклад демонструє випадок, коли режим неможливо усунути. Режими споконвічно присущи сервомоторам і джойстикам керування. Проте , з даної ситуації є вихід. Як рішення можна запропонувати наступне: помістити перемикач напрямку роботи сервомоторів усередину самого літального апарата, можливо, зробити його частиною самих сервомоторів, і забрати цей перемикач з пульта керування. Звичайно внутрішня частина корпуса літака недоступнаі, тому перемикачі можуть встановлюватися в потрібне положення при зборці апарата. Правильність настроювання буде перевірятися збирачами літака, потім інспекторами і потім ще раз (як звичайно) пілотом перед першим польотом. Хоча цей метод не усуває цілком можливості катастрофи, але якщо перший політ виконаний успішно, те надалі проблема переключення сервомоторів уже не повинна виникати на цьому апараті незалежно від того, чи використовується даний пульт для керування й інших літальних апаратів. З погляду оператора, режим усунутий.

Майже всі пульти дистанційного керування моделями літальних апаратів постачені перемикачами напрямку роботи сервомоторів. Аварії через те, що пульт керування знаходиться в невірному режимі, случаються нерідко. Ще великі проблеми створює можливість установлювати на пультах керування й інші режими за допомогою перемикачів з довгими ручками, які можна переставити в невірне положення випадково. У пульті керування, розробленому мною, усі ці тумблери зроблені таким чином, що перед тим як переставити їх в інше положення, їхньої ручки потрібно спочатку витягнути з пульта (мал. 3.3). Тому в мене жодного разу не було аварій через те, що якийсь тумблер був випадково зрушений у невірне положення. Таким чином, іноді проблеми з режимами можуть бути вирішені механічним шляхом.

Рис. 3.3. Такі тумблери не можна переключити в інше положення випадково. Перед тим як змінити положення тумблера, його ручку спочатку потрібно небагато витягнути з пульта

________________________________________

Режими також обмежують діапазон дій користувача. Якщо жест g викликає дія a у режимі A, а в режимі B він викликає дію b, то для того щоб виконати дія a, необхідно спочатку вийти з режиму B (якщо ви в ньому знаходилися) і переустановити інтерфейс у режим A. І тільки після цього ви зможете використовувати жест g для виконання дії a. Поділ інтерфейсу на обмежені області є неминучим наслідком наявності режимів. Набір станів, у яких жест g має конкретну інтерпретацію, можна назвати діапазоном (range) жесту g. Програмне забезпечення, що продається у виді прикладних програм, наприклад електронні таблиці, звичайно включає один чи кілька пересічних діапазонів. Деякі діапазони відносно великі. Наприклад, що випливає послідовність виконує дію вирізання майже у всіх додатках як на платформі Macіntosh, так і в Wіndows:

Command? x?

Бувають і невеликі діапазони. Наприклад, нижчеподана послідовність дозволяє в деяких комп'ютерних іграх відкривати скриню зі скарбами, якщо тільки він знаходиться в межах видимості:

Command? h?

Групування команд по різних діапазонах, чи, як ми це ще називаємо, по додатках, дозволяє зрозуміти і навчитися використовувати складні інтерфейси. Проте , існує можливість організовувати інтерфейси, що могли б створювати менше обмежень, чим режими. Цілком человекоориентированный інтерфейс повинний складатися тільки з одного діапазону.

У випадках коли інтерфейс керується за допомогою іншого комп'ютера, можна було б подумати, що проблема наявності режимів знімається, оскільки машина може легко запам'ятати необхідний стан інтерфейсу, просто-напросто внутрішньо синхронізуючи його з власним станом. Проте , якщо інтерфейс є модальним, і програма, що керує цим інтерфейсом, споконвічно не одержує зведень про поточне стані інтерфейсу, - а це може відбутися, якщо програма підключається після того, як система була запущена, - те для керування в якомусь з режимів системи програма повинна бути оснащена засобами тестування її поточного стану. У цьому відношенні особливі труднощі створюють такі интерфейсные перемикачі, для повернення яких у вихідну позицію потрібно зробити підряд кілька переключень, змінивши стан системи (потім цикл повторюється спочатку).

Випадок, коли інтерфейс керується зовнішньою програмою, відноситься до питання розробки людино-машинних інтерфейсів, оскільки набір команд, що зберігаються, (називаний макросом), що може бути виконаний одним жестом, є рудиментарною формою комп'ютерної програми. Макрос не може установити такий перемикач у яке-небудь з його припустимих станів, якщо сам макрос спочатку не задасть системі питання про її поточне стані. Про цю проблему ми вже говорили на прикладі ліхтарика в сумці. Одне з можливих рішень полягає в тому, щоб забезпечити установку перемикача, що має кілька положень, у деякий початковий стан відразу після кожного випадку його використання. У результаті цей підрахунок числа переключень дозволить завжди визначити поточний стан перемикача. Якщо передбачається, що перемикач буде використовуватися людиною, то доцільно передбачати не більш 5 станів перемикача. Іншим рішенням може бути застосування набору перемикачів (radіo buttons).

Проте , на цьому список проблем, до яких можуть приводити режими, не вичерпується. До всі іншого, режими можуть ще позбавляти користувача можливості взаємодії із системою. Це особливо помітно в тому випадку, коли ви змушені перервати свою роботу, щоб відповісти на виникле вікно повідомлення. Деякі розроблювачі вважають, що примус користувача чи зупинитися працювати у твердих рамках установленої послідовності дій виявляється корисним, тому що дозволяє системі самої "направляти" дії користувача. При деяких обставинах важливо, щоб користувач прийняв те чи інше конкретне рішення до якогось моменту чи часу перед виконанням наступного кроку з послідовності. Якщо ж користувач не має можливості прийняти своє рішення, то і необхідності діалогу з ним немає. У першому випадку досить тільки помістити на екрані годинник зі зворотним відліком, але не слід обмежувати користувача в тім, щоб у цей час він міг робити в системі й інші дії. В другому випадку нехай на екрані з'являється повідомлення, у якому говорилося б, що перед виконанням чергового кроку необхідно прийняти наступне рішення, але система не повинна перешкоджати користувачу у виконанні інших операцій, що не відносяться до поточного програмній послідовності. Необхідно враховувати, наприклад, що для ухвалення рішення користувачу потрібно переглянути якийсь чи файл виконати якісь обчислення. Іншими словами, запити і підказки повинні даватися не модально, а так, щоб користувач міг у максимальному ступені зберігати контроль над системою.

Соседние файлы в папке перевод