1. Введение в предмет
Вводятся понятия интерактивного взаимодействия, человеко-машинного интерфейса, пользовательского интерфейса АС. Рассматриваются подходы к проектированию пользовательского интерфейса, вопросы стандартизации. Дан краткий обзор некоторых методологий и принципов проектирования интерфейса.
Понятия и определения
Интерфейс (англ. interface — сопряжение, поверхность раздела, перегородка) — совокупность возможностей, способов и методов взаимодействия двух систем.
Человеко-машинный интерфейс (ЧМИ) - это методы и средства обеспечения непосредственного взаимодействия между оператором и технической системой, представляющих возможности оператору управлять этой системой и контролировать ее работу.
Интерфейс пользователя, он же пользовательский интерфейс (UI — англ. user interface) — разновидность интерфейсов, в котором одна сторона представлена человеком (пользователем), другая — машиной/устройством. Представляет собой совокупность средств и методов, при помощи которых пользователь взаимодействует с различными, чаще всего сложными, машинами, устройствами и аппаратурой. Обычно именно этот термин используется по отношению к взаимодействию между оператором ЭВМ и программным обеспечением, с которым он работает.
Подходы к проектированию интерфейсов
- Инженерно-технический (Machine-Centered)
- Когнитивный (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:
ISO/TR 9241-100:2010 Эргономика взаимодействия человек-система. Часть 100. Введение в стандарты на эргономику программного обеспечения
- ISO 9241-110:2006 Эргономические требования, связанные с использованием видеотерминалов для учрежденческих работ. Часть 110. Принципы диалога
- ISO 9241-129:2010 Эргономика взаимодействия человек-система. Часть 129. Руководство по программному обеспечению
- ISO 9241-143:2012 Эргономика взаимодействия человек-система. Часть 143. Формы
- ISO 9241-151:2008 Эргономика взаимодействия человек-система. Часть 151. Руководство по пользовательскому интерфейсу Всемирной паутины
- ISO 9241-154:2013 Эргономика взаимодействия человек-система. Часть 154. Применение интерактивного речевого взаимодействия (IVR)
- ISO 9241-171:2008 Эргономика взаимодействия человека и системы. Часть 171. Руководство по доступности программного обеспечения
- ISO 9241-210:2010 Эргономика взаимодействия человек-система. Часть 210. Сконцентрированное на человеке конструирование интерактивных систем
Эти и прочие стандарты, связанные с эргономикой, антропометрией и биомеханикой находятся под управлением Технического Комитета 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 и другие компании представляют для разработчиков приложений собственные спецификации и руководства по созданию пользовательских интерфейсов под свои платформы. С некоторыми из них вы можете ознакомиться по приведенным ссылкам:
- MSDN Library by Microsoft: Fundamentals of Designing User Interaction (en-en), Принципы проектирования Майкрософт (ru-ru)
- GNOME Human Interface Guidelines
- KDE User Interface Guidelines
- Apple OS X Human Interface Guidelines
- Больше: UsabilityGeek.com
Законы, принципы, правила...
Существует множество рекомендаций от специалистов по проектированию пользовательского интерфейса. Эти рекомендации в большей или меньшей степени применимы как к созданию настольных и/или мобильных приложений, так и к веб-разработкам. Кратко рассмотрим несколько популярных концепций.
2 закона дизайна интерфейсов
Джеф Раскин, специалист по компьютерным интерфейсам, в своей книге «The Humane Interface», изданной в 2000 году, на основе законов робототехники А. Азимова сформулировал два закона разработки пользовательских интерфейсов:
- Первый закон: Компьютер не должен вредить вашей работе или своим бездействием допустить причинение вреда вашей работе.
- Второй закон: Компьютер не должен тратить ваше время или требовать от вас больше работы, чем это действительно необходимо.
3 общих принципа проектирования UI
С. Жарков в своей книге «Shareware: профессиональная разработка и продвижение программ» приводит (к сожалению, без ссылки на источники) 3 общих принципа проектирования пользовательских интерфейсов, которые звучат так:
- Программа должна помогать выполнить задачу, а не становиться этой задачей.
- При работе с программой пользователь не должен ощущать себя дураком.
- Программа должна работать так, чтобы пользователь не считал компьютер дураком.
8 «золотых» правил Шнейдермана
Бен Шнейдерман, американский исследователь в области человеко-машинного взаимодействия, в своей книге «Designing the User Interface» сформулировал 8 «золотых» правил, которые кратко можно представить в следующем виде:
- Будьте последовательны: используйте одинаковые действия, названия, элементы управления в идентичных или похожих ситуациях.
- Учитывайте возможности опытных пользователей: представьте им альтернативные способы управления программой с помощью «горячих» клавиши, макросов и т.п.
- Используйте обратную связь: программа должна реагировать на каждое действие оператора.
- Создавайте законченные диалоги: сформируйте последовательные действия оператора в логические группы с началом, серединой и концом. На каждом этапе поддерживайте обратную связь.
- Используйте простые процедуры обработки ошибок: насколько возможно, спроектируйте систему так, чтобы пользователь не мог допустить серьезных ошибок, а при обнаружении ошибки предложите простые и понятные механизмы ее обработки.
- Обеспечьте простой механизм отмены действий: такая возможность уменьшает беспокойство пользователей, т.к. они знают, что ошибочные действия могут быть отменены. Единицей обратимости может быть разовая акция, ввод данных или целая группа действий.
- Создайте впечатление, что пользователь управляет всеми процессами: спроектируйте систему так, чтобы оператор был инициатором действий, а не ведомым.
- Уменьшите загрузку кратковременной памяти: особенности человеческой памяти накладывают ограничения на количество, размеры и скорость чередования элементов управления.
10 эвристических правила Якоба Нильсона
В 1994 году Якоб Нильсен, датский консультант по юзабилити, занимавшийся этим в фирмах IBM и Sun Microsystems, по результатам факторного анализа 249 ранее выявленных проблем юзабилити представил набор эвристик, которые стоит учитывать при проектировании пользовательских интерфейсов.
Эвристика — совокупность приемов и методов, облегчающих решение практических задач.
- Видимость состояния системы
Система должна всегда и за приемлемое время должна реагировать на действия пользователя и информировать его о текущем состоянии работы. - Равенство между системой и реальным миром
Система должна разговаривать с пользователем на его языке, используя слова, фразы и концепции, которые уже известны пользователю. Представление информации должно быть организовано в естественном и логичном порядке. - Свобода действий пользователя
Пользователь должен иметь контроль над системой и возможность изменить текущее состояние программы путем отмены или повтора операций (Undo & Redo). - Последовательность и стандарты
Принцип последовательности означает использование одних и тех же понятий и средств для отражения схожих образов и выполнения однотипных действий. Легче всего это достигается путем использования типовых для конкретной платформы рекомендаций и соглашений. - Предупреждение ошибок
Система должна быть разработана так, чтобы минимизировать число ситуаций, в которых пользователь может совершить ошибку. Это лучше, чем самое информативное сообщение о возникшей проблеме. Как известно, болезнь легче предупредить, чем лечить. - Понимание лучше, чем запоминание
Все объекты, функции, действия должны быть видны пользователю. Он не должен запоминать и удерживать в памяти информацию из одной части диалога, чтобы применить ее в другой. В любой момент пользователю должно быть ясно, что нужно делать в данный момент. В случае необходимости, пользователь должен иметь простой доступ к контекстной справке. - Гибкость и эффективность использования
Чтобы интерфейс программы был одинаково удобен как для новичков, так и для опытных пользователей, необходимо обеспечить альтернативные способы работы с ним. «Горячие» клавиши, тулбары, контекстные меню и т. п. — пусть пользователь сам выберет то, что ему удобнее. - Эстетичный и минималистичный дизайн
Диалоги не должны содержать нерелевантную или редко используемую информацию. Каждый дополнительный элемент интерфейса конкурирует с другими и отвлекает часть внимания пользователя, тем самым уменьшая относительную видимость действительно необходимой информации. - Распознавание и исправление ошибок
«Помогайте пользователю распознавать, диагностировать и исправлять ошибки» — говорит Якоб Нильсен и поясняет, что сообщения об ошибках должны быть выражены простым языком (без кодов), точно описывать проблему и предлагать конструктивное решение для нее. - Справка и документация
Лучшая система та, которая может быть использована без какой-либо документации. Это идеал, но в реальности программа должна содержать необходимую справочную информацию и документацию. Любая (справочная) информация должна быть доступна для поиска, сфокусирована на задачах пользователя, последовательна в описании его действий и, при этом, должна быть не слишком громоздкой.
Принципы Usage Centered Design
Ларри Константин, идеолог концепции дизайна, ориентированного на использование (Usage Centered Design, не путать с User-Centered design), в книге «Software For Use», написанной им в 1999 г. совместно с Люси Локвуд, представил следующие принципы разработки интерактивных систем:
- Структурный принцип: Проектирование интерфейса должно вестись целенаправленно, с использованием конструктивных решений, основанных на четких и последовательных моделях, узнаваемых для пользователя. Структура интерфейса может формироваться путем группировки связанных объектов и разделения несвязанных, подчеркиванием различий между разнородными элементами и наделение похожими чертами родственных объектов.
- Принцип простоты: Дизайн должен быть простым, общие задачи должны быть понятны, общение между программой и человеком должно происходить на родном для него языке.
- Принцип видимости: Все необходимые для решения конкретной задачи элементы интерфейса должны быть видимы и не должны отвлекать пользователя посторонней или избыточной информацией.
- Принцип обратной связи: Дизайн должен информировать пользователей о выполняемых действиях, изменениях состояния или условий, об ошибках или исключениях. Эта информация должна быть актуальна и интересна пользователю и представлена в четкой, компактной и недвусмысленной форме.
- Принцип толерантности: Дизайн должен быть гибким и терпимым к действиям пользователей, позволять отмену и повторное выполнение операций, а также предотвращать ошибки (где это возможно), интерпретируя все входные последовательности в разумные действия.
- Принцип повторного использования: Интерфейс должен использовать согласованные внутренние и внешние компоненты, тем самым уменьшая для пользователей необходимость переосмысления или запоминания их (компонентов) назначения и поведения.
Этапы разработки пользовательского интерфейса
- Проектирование
- Функциональные требования: определение цели разработки и исходных требований.
- Анализ пользователей: определение потребностей пользователей, разработка сценариев, оценка соответствия сценариев ожиданиям пользователей.
- Концептуальное проектирование: моделирование процесса, для которого разрабатывается приложение.
- Логическое проектирование: определение информационных потоков в приложении.
- Физическое проектирование: выбор платформы, на которой будет реализован проект и средств разработки.
- Реализация
- Прототипирование: разработка бумажных и/или интерактивных макетов экранных форм.
- Конструирование: создание приложение с учетом возможности изменения его дизайна.
- Тестирование
- Юзабилити-тестирование: тестирование приложения различными пользователями, в т.ч. и пользователями с ограниченными возможностями (Accessibility testing).
Резюме
Чтобы программный продукт был востребован, он должен выполнять не только свои прямые функции, но и быть удобным и простым в использовании. Чтобы сделать его таким, нужно тщательно спректировать и реализовать пользовательский интерфейс. Для этого были разработаны разные подходы и методологии, наиболее популярной является методология разработки, ориентированной на пользователей. Анализ пользователей на этапе проектирования приложения, а также учет основных принципов дизайна UI, позволяет создать такой интерфейс программы, который будет учитывать возможности и потребности реальных людей.
Контрольные вопросы
- Дайте определение человеко-машинного интерфейса.
- Чем отличается человеко-машинный интерфейс от пользовательского?
- Опишите подходы к проектированию UI.
- Перечислите и кратко охарактеризуйте некоторые методологии разработки интерфейса.
- «Золотые» правила Шнейдермана
- Эвристические правила Я. Нильсена.
- Перечислите этапы разработки пользовательского интерфейса.
CC-BY-CA Анатольев А.Г., 30.09.2014