Учебно-методические материалы для студентов кафедры АСОИУ

1. Введение в предмет

Вводятся понятия интерактивного взаимодействия, человеко-машинного интерфейса, пользовательского интерфейса АС. Рассматриваются подходы к проектированию пользовательского интерфейса, вопросы стандартизации. Дан краткий обзор некоторых методологий и принципов проектирования интерфейса.

Понятия и определения

Интерфейс (англ. interface — сопряжение, поверхность раздела, перегородка) — совокупность возможностей, способов и методов взаимодействия двух систем.

Человеко-машинный интерфейс (ЧМИ) - это методы и средства обеспечения непосредственного взаимодействия между оператором и технической системой, представляющих возможности оператору управлять этой системой и контролировать ее работу.

Интерфейс пользователя, он же пользовательский интерфейс (UI — англ. user interface) — разновидность интерфейсов, в котором одна сторона представлена человеком (пользователем), другая — машиной/устройством. Представляет собой совокупность средств и методов, при помощи которых пользователь взаимодействует с различными, чаще всего сложными, машинами, устройствами и аппаратурой. Обычно именно этот термин используется по отношению к взаимодействию между оператором ЭВМ и программным обеспечением, с которым он работает.

Подходы к проектированию интерфейсов

  1. Инженерно-технический (Machine-Centered)
  2. Когнитивный (Human-Centered)

Эти два подхода, по сути, представляют автоматизированную систему на самом верхнем уровне детализации («человек||компьютер») и рассматривают процесс разработки интерфейса либо с позиций человека-оператора, либо со стороны функциональных возможностей компьютера.

Инженерно-технический подход к созданию пользовательского интерфейса основан на предположении, что человек работает с компьютером подобно самому компьютеру, т.е., по определенному алгоритму. Методика алгоритмического моделирования GOMS (от англ. «Goals – Operators – Methods — Selectionrules»), представляющая этот подход, предполагает, что результат, получаемый при выполнении пользователем некоторой задачи есть цель. Для ее достижения пользователь может выполнять элементарные действия — операторы. Последовательность операторов, позволяющая достичь цели называется методом. Правила выбора, основанные на принципе «если-то», позволяют изменять поток управления.

Ввиду того, что инженерно-технический подход к проектированию интерфейса ориентирован на функциональные характеристики программы, пользователь, работающий с ней, вынужден «думать как разработчик».

Когнитивный подход, пришедший на смену  алгоритмическому моделированию, рассматривает пользователя как центральную фигуру процесса взаимодействия с системой. Ориентация на характеристики пользователя, исследование перцептивных и когнитивных возможностей и ограничений человека позволили выявить закономерности взаимодействия человека с автоматизированной системой. Рассматривая процессы и закономерности восприятия, переработки информации и принятия решения, когнитивная психология выявила факторы, определяющие успешность выполнения задачи оператором. И это оказались не функциональные характеристики системы, как предполагалось инженерами раньше, а качество предоставления и управления информацией с точки зрения возможностей и ограничений человека.

Однако, как оказалось, анализа только процессов восприятия и переработки информации человеком недостаточно для проектирования эргономичного интерфейса, поскольку он не позволяет определить состав и последовательность выводимой на экран информации. Это привело к появлению некоторого числа методологий дизайна UI, основанных на когнитивном подходе, здесь приведем и кратко опишем лишь некоторые из них.

Методологии разработки интерфейсов

Дизайн, ориентированный на деятельность (Activity-Centered Design, ACD)

Эта методология рассматривает систему «человек-компьютер» как комплекс связанных деятельностных понятий и представлений. Теория деятельности, лежащая в основе этого подхода, представляет компьютер в качестве инструмента, с помощью которого человек решает различные задачи и именно деятельность человека влияет на интерфейс.

Согласно принципам теории деятельности весь поток активности пользователя можно разложить на последовательность связанных задач и подзадач, логические этапы. Это позволяет анализировать цели, внешние и внутренние задачи, порядок и вид операций пользователя, совершаемых для достижения итогового результата, а по результатам анализа разработать интерфейс, наиболее подходящий для данного вида деятельности

Целеориентированный дизайн (Goal-oriented design)

Эта методология разработки пользовательских интерфейсов, идеологом которой является Алан Купер, основана на предположении о том, что тщательное изучение целей пользователя и понимание того, к чему он стремится, позволяет решить проблему «когнитивного трения».

Когнитивное трение - понятие, введенное А. Купером и характеризующее отношение человека к сложной вещи (например, к компьютеру) как к другому человеку. Такое отношение возникает в ситуациях, когда человек не может понять того, как и почему эта вещь работает (или не работает).

User-Centered Design

Дизайн, ориентированный на пользователя — методология, получившая оправданную популярность и применяемая не только при разработке программного обеспечения. Ее суть сводится к изучению потребностей и возможностей конечных пользователей и адаптации продукта под их нужды. Другими словами, это концепция создания продуктов, в том числе и программного обеспечения, которыми люди хотели бы пользоваться.

Стандартизация

В 1992 году международная организация по стандартизации (International Organization for Standardization, ISO) представила группу стандартов ISO 9241 «Эргономические требования для офисной работы с видеодисплейными терминалами» (Ergonomic requirements for office work with visual display terminals (VDTs)). В 2006 году они получили более общее название «Эргономика взаимодействия «человек-система»» (Ergonomics of Human System Interaction).

Перечислим некоторые стандарты ISO 9241:

Эти и прочие стандарты, связанные с эргономикой, антропометрией и биомеханикой находятся под управлением Технического Комитета 159 (Тechnical Committee 159) ISO и доступны на официальном сайте www.iso.org

В России имеются национальные стандарты по эргономике, часть из которых, хоть и разработана в 80-х годах XX в, все еще актуальна и сегодня. Так, ГОСТ 30.001-83 «Система стандартов эргономики и технической эстетики. Основные положения» был введен в 1983 году. Однако большинство российских документов аутентичны международным стандартам (например, ГОСТ Р ИСО 9241-210-2012 «Эргономика взаимодействия человек-система. Часть 210. Человеко-ориентированное проектирование интерактивных систем»).

Для независимых разработчиков (в отличие от госучреждений) стандарты — не более чем рекомендации. Крупные компании и сообщества разработчиков зачастую применяют собственные регламентирующие документы и руководства по проектированию пользовательского интерфейса, используемые, как вправило, в конкретной технологии или системе. Так, например, консорциум W3 продвигает Web Accessibility Initiative (WAI) — совокупность рекомендаций, придерживаясь которых веб-мастера могут создавать сайты с учетом пользователей с ограниченными возможностями. Google, Microsoft, Apple и другие компании представляют для разработчиков приложений собственные спецификации и руководства по созданию пользовательских интерфейсов под свои платформы. С некоторыми из них вы можете ознакомиться по приведенным ссылкам:

Законы, принципы, правила...

Существует множество рекомендаций от специалистов по проектированию пользовательского интерфейса. Эти рекомендации в большей или меньшей степени применимы как к созданию настольных и/или мобильных приложений, так и к веб-разработкам. Кратко рассмотрим несколько популярных концепций.

2 закона дизайна интерфейсов

Джеф Раскин, специалист по компьютерным интерфейсам, в своей книге «The Humane Interface», изданной в 2000 году, на основе законов робототехники А. Азимова сформулировал два закона разработки пользовательских интерфейсов:

3 общих принципа проектирования UI

С. Жарков в своей книге «Shareware: профессиональная разработка и продвижение программ» приводит (к сожалению, без ссылки на источники) 3 общих принципа проектирования пользовательских интерфейсов, которые звучат так:

  1. Программа должна помогать выполнить задачу, а не становиться этой задачей.
  2. При работе с программой пользователь не должен ощущать себя дураком.
  3. Программа должна работать так, чтобы пользователь не считал компьютер дураком.

8 «золотых» правил Шнейдермана

Бен Шнейдерман, американский исследователь в области человеко-машинного взаимодействия, в своей книге «Designing the User Interface» сформулировал 8 «золотых» правил, которые кратко можно представить в следующем виде:

  1. Будьте последовательны: используйте одинаковые действия, названия, элементы управления в идентичных или похожих ситуациях.
  2. Учитывайте возможности опытных пользователей: представьте им альтернативные способы управления программой с помощью «горячих» клавиши, макросов и т.п.
  3. Используйте обратную связь: программа должна реагировать на каждое действие оператора.
  4. Создавайте законченные диалоги: сформируйте последовательные действия оператора в логические группы с началом, серединой и концом. На каждом этапе поддерживайте обратную связь.
  5. Используйте простые процедуры обработки ошибок: насколько возможно, спроектируйте систему так, чтобы пользователь не мог допустить серьезных ошибок, а при обнаружении ошибки предложите простые и понятные механизмы ее обработки.
  6. Обеспечьте простой механизм отмены действий: такая возможность уменьшает беспокойство пользователей, т.к. они знают, что ошибочные действия могут быть отменены. Единицей обратимости может быть разовая акция, ввод данных или целая группа действий.
  7. Создайте впечатление, что пользователь управляет всеми процессами: спроектируйте систему так, чтобы оператор был инициатором действий, а не ведомым.
  8. Уменьшите загрузку кратковременной памяти: особенности человеческой памяти накладывают ограничения на количество, размеры и скорость чередования элементов управления.

10 эвристических правила Якоба Нильсона

В 1994 году Якоб Нильсен, датский консультант по юзабилити, занимавшийся этим в фирмах IBM и Sun Microsystems, по результатам факторного анализа 249 ранее выявленных проблем юзабилити представил набор эвристик, которые стоит учитывать при проектировании пользовательских интерфейсов.

Эвристика — совокупность приемов и методов, облегчающих решение практических задач.

  1. Видимость состояния системы
    Система должна всегда и за приемлемое время должна реагировать на действия пользователя и информировать его о текущем состоянии работы.
  2. Равенство между системой и реальным миром
    Система должна разговаривать с пользователем на его языке, используя слова, фразы и концепции, которые уже известны пользователю. Представление информации должно быть организовано в естественном и логичном порядке.
  3. Свобода действий пользователя
    Пользователь должен иметь контроль над системой и возможность изменить текущее состояние программы путем отмены или повтора операций (Undo & Redo).
  4. Последовательность и стандарты
    Принцип последовательности означает использование одних и тех же понятий и средств для отражения схожих образов и выполнения однотипных действий. Легче всего это достигается путем использования типовых для конкретной платформы рекомендаций и соглашений.
  5. Предупреждение ошибок
    Система должна быть разработана так, чтобы минимизировать число ситуаций, в которых пользователь может совершить ошибку. Это лучше, чем самое информативное сообщение о возникшей проблеме. Как известно, болезнь легче предупредить, чем лечить.
  6. Понимание лучше, чем запоминание
    Все объекты, функции, действия должны быть видны пользователю. Он не должен запоминать и удерживать в памяти информацию из одной части диалога, чтобы применить ее в другой. В любой момент пользователю должно быть ясно, что нужно делать в данный момент. В случае необходимости, пользователь должен иметь простой доступ к контекстной справке.
  7. Гибкость и эффективность использования
    Чтобы интерфейс программы был одинаково удобен как для новичков, так и для опытных пользователей, необходимо обеспечить альтернативные способы работы с ним. «Горячие» клавиши, тулбары, контекстные меню и т. п. — пусть пользователь сам выберет то, что ему удобнее.
  8. Эстетичный и минималистичный дизайн
    Диалоги не должны содержать нерелевантную или редко используемую информацию. Каждый дополнительный элемент интерфейса конкурирует с другими и отвлекает часть внимания пользователя, тем самым уменьшая относительную видимость действительно необходимой информации.
  9. Распознавание и исправление ошибок
    «Помогайте пользователю распознавать, диагностировать и исправлять ошибки» — говорит Якоб Нильсен и поясняет, что сообщения об ошибках должны быть выражены простым языком (без кодов), точно описывать проблему и предлагать конструктивное решение для нее.
  10. Справка и документация
    Лучшая система та, которая может быть использована без какой-либо документации. Это идеал, но в реальности программа должна содержать необходимую справочную информацию и документацию. Любая (справочная) информация должна быть доступна для поиска, сфокусирована на задачах пользователя, последовательна в описании его действий и, при этом, должна быть не слишком громоздкой.

Принципы Usage Centered Design

Ларри Константин, идеолог концепции дизайна, ориентированного на использование (Usage Centered Design, не путать с User-Centered design), в книге «Software For Use», написанной им в 1999 г. совместно с Люси Локвуд, представил следующие принципы разработки интерактивных систем:

Этапы разработки пользовательского интерфейса

  1. Проектирование
    • Функциональные требования: определение цели разработки и исходных требований.
    • Анализ пользователей: определение потребностей пользователей, разработка сценариев, оценка соответствия сценариев ожиданиям пользователей.
    • Концептуальное проектирование: моделирование процесса, для которого разрабатывается приложение.
    • Логическое проектирование: определение информационных потоков в приложении.
    • Физическое проектирование: выбор платформы, на которой будет реализован проект и средств разработки.
  2. Реализация
    • Прототипирование: разработка бумажных и/или интерактивных макетов экранных форм.
    • Конструирование: создание приложение с учетом возможности изменения его дизайна.
  3. Тестирование
    • Юзабилити-тестирование: тестирование приложения различными пользователями, в т.ч. и пользователями с ограниченными возможностями (Accessibility testing).

Резюме

Чтобы программный продукт был востребован, он должен выполнять не только свои прямые функции, но и быть удобным и простым в использовании. Чтобы сделать его таким, нужно тщательно спректировать и реализовать пользовательский интерфейс. Для этого были разработаны разные подходы и методологии, наиболее популярной является методология разработки, ориентированной на пользователей. Анализ пользователей на этапе проектирования приложения, а также учет основных принципов дизайна UI, позволяет создать такой интерфейс программы, который будет учитывать возможности и потребности реальных людей.

Контрольные вопросы

  1. Дайте определение человеко-машинного интерфейса.
  2. Чем отличается человеко-машинный интерфейс от пользовательского?
  3. Опишите подходы к проектированию UI.
  4. Перечислите и кратко охарактеризуйте некоторые методологии разработки интерфейса.
  5. «Золотые» правила Шнейдермана
  6. Эвристические правила Я. Нильсена.
  7. Перечислите этапы разработки пользовательского интерфейса.

CC-BY-CA Анатольев А.Г., 30.09.2014