- •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.2. Режими
- •3.2.1. Визначення режимів
- •3.2.2. Режими, користувальницькі настроювання і тимчасові режими
- •3.2.3. Режими і квазирежимы
- •3.3. Моделі "іменник-дієслово" і "дієслово-іменник"
- •3.4. Видимість і заможність
- •3.5. Монотонність
- •3.6. Міф про дихотомію "новачок-експерт"
- •4.2. Модель швидкості печатки goms
- •4.2.1. Тимчасові інтервали в інтерфейсі
- •4.2.2. Розрахунки по моделі goms
- •4.2.3. Приклади розрахунків по моделі goms
- •4.2.3.1. Інтерфейс для Хола: варіант 1. Діалогове вікно
- •4.2.3.3. Інтерфейс для Хола: варіант 2
- •4.3.1. Продуктивність інтерфейсу для Хола
- •4.3.2. Інші рішення інтерфейсу для Хола
- •4.4. Закон Фитса і закон Хика
- •4.4.1. Закон Фитса
- •4.4.2. Закон Хика
- •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.1. Інтуїтивні і природні інтерфейси
- •6.2. Поліпшена навігація: ZoomWorld
- •6.3. Піктограми
- •6.4. Способи і засоби допомоги в человекоориентированных інтерфейсах
- •6.4.1. Вирізувати і вставити
- •6.4.2. Повідомлення користувачу
- •6.4.3. Спрощення входу в систему
- •6.4.4. Автоповтор і інші прийоми роботи з клавіатурою
- •6.5. Лист від одного користувача
- •7.1.2. Важливість ведення документації при створенні програм
- •7.2. Режими і кабелі
- •7.3. Етика і керування розробкою інтерфейсів
5.1. Уніфікація й елементарні дії
Сутності не повинні множитися без необхідності.
Вільям Оккамский
Набір апаратного устаткування, з якого складається інтерфейс комп'ютера, став стандартним - одне чи кілька пристроїв для введення тексту (клавіатура, планшет для листа, пристрій розпізнавання мови), ГУВ і двомірний кольоровий дисплей. Ця, у загальному непогана, формула може мати деякі розходження. Наприклад, сенсорний екран може використовуватися одночасно як пристрій уведення тексту, ГУВ і дисплея. Мікрофони, пристрої уведення відеоданих і інші пристрої звичайно не входять (крім випадків експериментування) до складу звичайного людино-машинного інтерфейсу. Насправді ми використовуємо інтерфейс для того, щоб контролювати функціонування цих пристроїв.
Якщо ви подивитеся на людину, що працює з яким-небудь існуючим сьогодні стандартним комп'ютерним устаткуванням, але не будете бачити, що відображається на екрані монітора, і знати, яку задачу оператор виконує, і, загалом , не зможете припустити, що він робить. Звичайно, тут можливі виключення. Якщо ви бачите, що користувач пильно дивиться на екран і маніакальний образ обертає ручку джойстика під ритмічні і повторювані звуки, то зможете догадатися, що, швидше за все, він грає в якусь комп'ютерну гру. Але, у цілому, дії користувача при використанні одного додатка, наприклад текстового процесора, у великому ступені схожі на дії, що він виконує при використанні інших додатків, наприклад баз даних чи електронних таблиць.
Така одноманітність дій користувача в різних додатках підказує нам, що інтерфейси для різних додатків не так вуж і відрізняються друг від друга, як вам самим це може показатися при використанні цих додатків. Додатки відрізняються друг від друга більше тому, що ви звертаєте увагу на зміст того, що виконується, тобто на різні зміни змісту кожної дії. Зокрема , ви не звертаєте увагу на фізичні дії, що виконуєте при роботі на комп'ютері.
Інший аспект, що є загальним майже для всіх додатків, полягає в тім, що при їхньому використанні потрібно вводити якийсь текст. (Навіть в іграх вам іноді приходиться уводити власне ім'я у випадку виграшу.) Тому варто подумати над тим, щоб обробка тексту - будь це невеликий текст, як, наприклад, ланцюжок символів у рядку пошуку, чи, навпаки, великий текст, як, наприклад, текст роману - була забезпечена набором зручних і ефективних команд.
І люди, і наше програмне забезпечення не є зробленими. Не всі натискання клавіш, руху чи пером мовні дії приводять до відображення саме тих символів, що потрібні. Тому в інтерфейсі повинна бути передбачена можливість відразу стирати символи на екрані за допомогою клавіші Backspace чи Delete і застосовувати ці засоби і для інших форм уведених даних. Для внесення ще великих змін, як, наприклад, додавання абзацу, потрібно передбачити можливість виділення і видалення цілих областей. У відношенні великих ділянок тексту також важливо, щоб користувач мав можливість перемістити курсор у будь-яке місце тексту, щоб уставити туди символи. Іншими словами, усякий раз, коли вводиться текст, користувач очікує, що в його розпорядженні повинні бути багато можливостей текстового процесора.
Коли ви вводите текст, ви поміщаєте його в якийсь чи документ поле, як, наприклад, область форми, призначена для уведення свого імені. В існуючих сьогодні системах припустимі функції редагування розрізняються в залежності від чи полючи типу документа, - для документа текстового процесора це можуть бути одні правила редагування, для електронних таблиць - інші. Правила редагування можуть розрізнятися навіть усередині одного документа, що містить елементи, створені за допомогою інших додатків (у розділі 5.7 ми розглянемо одне з рішень цієї проблеми).
Два різних, але зовні схожих сегмента програмного забезпечення якої-небудь системи можуть бути для користувача великим джерелом помилок і негативних емоцій. Однак саме така ситуація спостерігається майже у всіх персональних комп'ютерах. На моєму комп'ютері встановлено 11 текстових редакторів, у кожнім з який мається свій набір правил редагування. Можливо навіть, що в ньому маються і якісь інші редактори, що я упустив. Таким чином, усе це приводить до марної плутанини.
Для створення человекоориентированного інтерфейсу для чи комп'ютерів комп'ютерних систем (таких, наприклад, як Palm Pіlot) важливим кроком є забезпечення однакових правил для усіх випадків, у яких чи вводиться редагується текст. Наприклад, у Macіntosh чи Wіndows ви не можете при введенні імені файлу зробити його орфографічну перевірку, тому, якщо ви не упевнені в правильності написання слова рандеву (randezvous), що ви хочете використовувати як ім'я файлу27, то вам доведеться вводити його чи навмання відкрити текстовий процесор і набрати в ньому (чи скопіювати) це слово, щоб перевірити правильність написання. Можу припустити, що якби я подав розроблювачам програмного забезпечення ідею про те, щоб користувач міг перевіряти орфографію файлових імен, то вони, дуже імовірно, і додали б таку можливість, але таке особливе додавання, - яке, імовірно, було б вирішене у виді якого-небудь нового елемента в одному із системних меню (швидше за все, меню Виправлення), - тільки б збільшило і без того абсурдну складність програмного забезпечення. Найкращим рішенням тут було би спрощення на основі вже описаної ідеї, що полягає в тім, що одна команда орфографічної перевірки повинна застосовуватися до будь-якого тексту, незалежно від того, яку роль він грає в даний
момент.
Розробка інтерфейсів повинна бути заснована на ідеї, що будь-які об'єкти, що виглядають однаково, однакові. Цей принцип може істотно спростити інтерфейс із погляду як користувача, так і розроблювача і може бути застосований не тільки у відношенні текстів. Любою об'єкт у цьому випадку стає заможним. Якщо користувач не може по виду об'єкта на екрані визначити, що з ним можна і чого не можна робити, це означає, що ваш інтерфейс не задовольняє критерію видимості, що ми обговорювали в розділі 3.4. Тим самим ви ставите користувача в положення, при якому йому необхідно догадуватися про те, які операції припустимі і до яких наслідків вони можу привести. Техніка створення інтерфейсів, при якій користувачу в результаті приходиться догадуватися про можливості елементів програмного забезпечення, є більш придатної для розробки ігор, чим прикладних інструментів.
В ідеалі неможливо досягти того, щоб по зовнішньому вигляді завжди можна було визначити функцію. Наприклад, один об'єкт може бути дуже схожий на якийсь іншій. Растрове зображення тексту виглядає точно так само, як і сам текст не в графічному форматі, однак у сьогоднішніх системах неможливо застосовувати операції текстового редагування до растрових зображень. Ця проблема може бути частково вирішена, якщо в системі буде передбачена можливість конвертування об'єкта в той формат, у якому дана операція може бути до нього застосована (про це див. далі в розділі 5.8).