
- •Введение
- •1 Понятие пользовательского интерфейса
- •1.1 Популярные стили пользовательского интерфейса
- •1.2 Критерии эффективного интерфейса
- •1.3 Модели пользовательского интерфейса
- •1.4 Контрольные вопросы
- •2 Психология человека и пэвм
- •2. 1 Психология пользователей
- •2.2 Восприятие и внимание человека
- •2.3 Информационные процессы человека
- •2.4 Контрольные вопросы
- •3 Проектирование пользовательского интерфейса
- •3.1 Особенности графического интерфейса
- •3.2 Объектный подход к проектированию интерфейса
- •3.3 Компоненты графического интерфейса
- •3.4 Взаимодействие пользователя с приложением
- •3.5 Общие правила взаимодействия с объектами
- •3.6 Операции пересылки и создания объектов
- •3.7 Метод прямого манипулирования
- •3.8 Контрольные вопросы
- •4 Правила проектирования пользовательского интерфейса
- •4.1 Принципы проектирования пользовательского интерфейса
- •4.2 Контрольные вопросы
- •5 Этапы проектирования пользовательского интерфейса
- •5.1 Коллективный подход к разработке
- •5.2 Разработка, ориентированная на обучение
- •5.3 Четыре этапа разработки
- •5.4 Примеры результатов выполнения работ на этапах разработки пользовательского интерфейса
- •5.5 Контрольные вопросы
- •6 Инструментарий разработчика интерфейсов
- •6.1 Передача информации визуальным способом
- •6.2 Использование цвета в интерфейсе
- •6.3 Использование звука в пользовательском интерфейсе
- •6.4 Использование анимации в пользовательском интерфейсе
- •6.5 Управляющие элементы разработки интерфейса
- •6.6 Основные проблемы удобства применения гпи и опи
- •6.7 Контрольные вопросы
- •7 Тестирование пользовательского интерфейса
- •7.1 Понятие удобства применения программного продукта
- •7.2 Важность тестирования на удобство применения программного обеспечения
- •7.3 Цели и задачи тестирования
- •7.4 Преимущества тестирования на удобство применения
- •7.5 Привлечение к работе когнитивных психологов и специалистов по удобству применения
- •7.6 Условие успеха программных продуктов
- •7.7 Отчетные результаты теста
- •7.8 Контрольные вопросы
- •8 Особенности разработки web – интерфейса
- •8.1 Пользовательский интерфейс web-приложений
- •8.3 Пользовательский интерфейс системы реального времени
- •8.4 Средства разработки web-документов
- •8.5 Контрольные вопросы
- •9 Практика
- •9.1 Лабораторная работа №1
- •Методические указания к выполнению работы
- •Постановка задачи к лабораторной работе
- •6. Разработать полную схему экранов системы.
- •9.2 Лабораторная работа №2
- •Методические указания к выполнению работы
- •В радиокнопках и чекбоксах должны нажиматься не только визуальный индикатор переключения, т.Е. Кружок или квадратик, но ещё и подпись.
- •Элементы в меню нужно группировать максимально логично. Можно между группами помещать пустой элемент (разделитель) или же размещать отдельные группы в разных уровнях иерархии.
- •Постановка задачи к лабораторной работе
- •9.3 Лабораторная работа №3
- •Методические указания к выполнению работы
- •Постановка задачи к лабораторной работе
- •9.4 Лабораторная работа №4
- •Методические указания к выполнению работы
- •Значения временных интервалов
- •Постановка задачи к лабораторной работе
- •1. Тестирование
- •2. Проектирование основных экранов
- •3. Финальное тестирование
- •40. Какие методы предотвращения ошибок бывают?
- •3. Повышение разборчивости и заметности индикаторов
- •44. Какие среды передачи обучающих материалов бывают?
- •Ответы на вопросы тестов
- •Список использованных источников
5.2 Разработка, ориентированная на обучение
В прошлом разработка программного обеспечения и пользовательского интерфейса развивались только за счет эволюции технологий и систем, на базе которых, программы строились. Это называлось системно-управляемой или технологически управляемой разработкой (рисунок 5.1).
В 50-х годах интересы пользователей совершенно не учитывались. Им предлагались программные функции с интерфейсом, который разработчики были в состоянии предложить. Мощность компьютеров была ограничена настолько, что ее едва хватало для выполнения элементарных операций.
С начала 80-х годов акцент был перенесен на разработку, ориентированную на пользователя, причем к разработке привлекались и сами пользователи. У них выясняли, какие требования они предъявляют к компьютеру, и какие задачи собираются с его помощью решать. Сейчас многие разработчики придерживаются новых методологий, называемых разработкой с вовлечением пользователей и разработкой, ориентированной на обучение. Бэннон (Bannon) так описывает разработку с вовлечением пользователей: «Новый подход заключается в том, чтобы взглянуть на пользователей не просто как на объекты изучения, а как на активных участников самого процесса разработки. Подобное вовлечение пользователей в разработку содействует демократизации, а также служит гарантией, что получаемая компьютерная система будет отвечать запросам пользователей».
Рисунок 5.1 – Эволюция разработки интерфейсов
Разработка, ориентированная на обучение, направлена на то, чтобы в процессе решения своих задач человек обучался новым навыкам работы с компьютером. Соловэй (Soloway) и Прайор (Ргуог) отмечают: «Без всякого сомнения, простое использование ценно, но не стоит ограничиваться только этим. Нам необходимо повышать наши требования к компьютерным технологиям. Мы должны содействовать интеллектуальному развитию детей и взрослых, помогать в решении проблем, тренировать их воображение и, кроме того, давать им знания в различных областях».
5.3 Четыре этапа разработки
Проектирование пользовательского интерфейса может осуществляться как отдельно, так и совместно с остальными процессами разработки программного продукта.
Однако сейчас больше внимания уделяется элементам интерфейса и объектам, воспринимаемым и используемым пользователями, а не функциональности программы. Во многих проектах разработка пользовательского интерфейса и программирование продукта ведутся параллельно, особенно на ранних стадиях. На более поздних этапах учитываются требования пользовательского интерфейса и обратной связи, выявляемые в результате тестирования на удобство применения.
Процесс состоит из четырех основных этапов. Это сбор и анализ информации от пользователей, разработка пользовательского интерфейса, построение пользовательского интерфейса, подтверждение качества созданного пользовательского интерфейса.
Данный алгоритм может использоваться как при разработке объектно-ориентированных пользовательских интерфейсов, так и при проектировании традиционных проблемно-ориентированных интерфейсов или ГПИ. Этот процесс зависит от материальной и программной платформ, операционной системы и применяемого инструментария. IBM и Microsoft выступают за ведение итерационного процесса разработки.
Словарь Webster New Collegiate Dictionary дает следующее определение слову «итерационный»: «...компьютерная процедура или имеющая к ней отношение, где повторение цикла операций дает результат, который все более приближается к искомому результату». То есть не удастся получить качественный интерфейс без периодического возврата к предыдущим этапам. Желательно проводить тестирование интерфейса с участием пользователей. Мнение пользователей и удобство применения продукта должны быть не менее важны, чем функциональность программы.
Традиционные методологии проектирования и разработки продукта часто разрабатываются по водопадной модели жизненного цикла (ЖЦ). Их этапы аналогичны описанным выше – анализ, разработка, построение, тестирование. Однако такой процесс является в большей степени линейным, чем итерационным. Любая современная методология разработки программного обеспечения должна поддерживать концепцию итерации (рисунок 5.2).
Рисунок 5.2 – Различные схемы итерационного процесса
На рисунке 5.2 а, изображена спираль с началом в центре, которая раскручивается на протяжении четырех этапов, чтобы показать, что итерации, на ранних стадиях быстрые и неформальные, со временем становятся более длинными и формальными. Спирали в окружности показывают, что в любой момент, на любом этапе можно вернуться к центральному «ядру» для дальнейшего усовершенствования интерфейса (рисунок 5.2 б).
Итерационные проверки нужно использовать до тех пор, пока намеченные цели не будут достигнуты.
Первый этап: сбор и анализ информации, поступающей от пользователей
Прежде чем приступать к разработке и построению любой системы, следует выяснить, какие проблемы пользователи хотят разрешить и как они привыкли работать. Нужно наблюдать за пользователями, расспрашивать их. Предлагаемое решение должно соответствовать не только настоящим, но и будущим потребностям пользователей.
Первый этап – действия по сбору и анализу информации – может быть разбит на пять шагов:
определение профиля пользователей;
анализ стоящих перед пользователями задач;
сбор требований, предъявляемых пользователями;
анализ рабочей среды пользователей;
соответствие требований пользователей стоящим перед разработчиками задачам.
Проектирование и постановка вопросов, а также проведение анализа являются настоящим искусством.
1. Определение профиля пользователей.
Профиль пользователя дает ответ на вопрос: «Что представляет собой ваш пользователь?». Он позволяет вам составить представление о возрасте, образовании, предпочтениях пользователей, получить другую необходимую информацию. Нужно проводить интервьюирование и исследования, наблюдать за пользователями и снимать их на видео, изучать специальную литературу (опубликованные тексты докладов, материалы прессы и маркетинговых исследований).
2. Анализ стоящих перед пользователями задач
Анализ стоящих перед пользователем задач – это определение того, чего хотят пользователи и каким образом они собираются решать свои задачи.
Независимо от метода анализа задач нужно получить ответы на следующие вопросы:
Какие задачи решают пользователи?
Какие задачи являются наиболее важными?
Какие шаги предпринимаются для решения задач?
Какие цели преследуют пользователи при решении тех или иных задач?
Какой информацией необходимо располагать для выполнения задач?
Какой инструментарий (компьютеры и т.д.) используется для решения задач?
Каков ожидаемый итог от решения задачи?
Каким образом пользователи выполняют свою работу (вручную, на компьютере, по телефону и т.д.)?
Каким образом они взаимодействуют с другими лицами при решении задач?
Каким образом задачи учитываются в общем бизнес-процессе?
Как часто пользователям приходится решать задачи?
Каким образом компьютер или другая компьютерная техника помогает пользователям в решении задач?
3. Сбор требований, предъявляемых пользователями
Анализ и сбор требований, предъявляемых пользователями, отвечают на вопрос: «Какую, с точки зрения пользователя, пользу принесет им предлагаемый продукт или интерфейс?». Практически во всех проектах программного обеспечения учитываются требования пользователей. Это помогает определить особенности проекта и структуру пользовательского интерфейса. Ключевыми в данном контексте являются следующие вопросы:
Какие основные технологии требуются пользователям?
Сколько пользователи и менеджеры готовы заплатить за продукт?
Кто устанавливает продукт?
Кто будет сопровождать продукт, когда он будет установлен?
Как правило, сбором требований занимаются специальные группы. Существуют некоторые общие для всех пользователей требования, предъявляемые к бизнес-программам, в соответствии с которыми новый продукт должен:
сокращать работу с бумагами;
уменьшать ошибки пользователей;
автоматизировать существующие ручные процессы;
повышать скорость совершения транзакций.
4. Анализ рабочей среды пользователей
Анализ среды пользователя отвечает на вопрос: «Где ваши пользователи решают стоящие перед ними задачи?». Необходимо определить характеристики среды, которые могут оказывать влияние на выполнение пользователями своей работы:
физическая сторона рабочей среды (освещение, шум, рабочее пространство, температура, наличие компьютеров, телефонов, количество персонала и т.д.);
места работы пользователя и степени его мобильности (офис, квартира, стационарно, с передвижениями и т.д.);
вопросы эргономики, условий труда (задействуются ли зрение, слух, работа ведется стоя/сидя, на клавиатуре и т.д.);
особые запросы (уровень подготовки, физическое состояние, интерес к познавательному процессу, особенности речи и возможные недостатки);
интернационализация и другие культурологические условия (перевод, цвета, иконки, текст, сообщения и т.д.).
Все эти факторы влияют на разработку продукта.
Существует множество руководств, рекомендаций и технологий для этих областей разработки программного обеспечения.
5. Соответствие требований, стоящим перед пользователями решаемым задачам
Анализ соответствия требований стоящим перед пользователями задачам это проверка на их реалистичность. Если требования пользователей не соразмерны выполняемым задачам, необходимо предложить им оптимальный вариант. Необходимо проверить, не превышают ли возможности продукта действительные потребности клиента.
Проанализировав задачи, стоящие перед пользователями, и их требования выясняется, какие элементы интерфейса потребуются и как их расположить.
Второй этап: разработка пользовательского интерфейса
Разработка пользовательского интерфейса для программного продукта обычно требует значительных затрат времени и ресурсов. Этап разработки состоит из определенных шагов, выполняемых в заданной последовательности. Разработка включает в себя следующие шаги:
определение цели с точки зрения удобства применения продукта;
разработка задач и сценария действий пользователей;
определение целей и операций интерфейса;
определение иконок объектов и визуального представления;
разработка меню объектов и окон;
оптимизация визуальной разработки.
1. Определение цели с точки зрения удобства применения продукта
Цели разработки лучше всего сформулировать в терминах, характеризующих действия пользователя. Например, длительность задач, возможное количество ожидаемых ошибок. Следующие области, наиболее подходящие для установления целей и задач:
пригодность;
эффективность;
легкость в освоении;
оценка пользователями качества продукта.
2. Разработка сценария действий пользователей и задачи, стоящие перед ними
Сложно с высокой степенью точности определить, что представляет собой сценарий по сравнению с задачей, стоящей перед пользователями. Как правило, сценарий является описанием действий, выполняемых пользователем. Сценарий представляется как последовательность задач, стоящих перед пользователями, или событий, направленных на достижение единой цеди. «Оплата обеда» является примером сценария высокого уровня, который будет состоять из множества более мелких задач, таких как «пойти в ресторан», «заказать еду», «съесть обед» и «заплатить». При необходимости задачи могут подразделяться на подзадачи.
Рекомендуется разработать несколько сценариев пользователей. Чем больше их будет, тем меньше вероятность того, что будут упущены из виду ключевые объекты и операции, необходимые в интерфейсе.
3. Определение объектов и операций
Этот шаг является, возможно, самым сложным (и самым важным) в процессе разработки. На этой стадии следует предпринять некоторые действия:
выделить объекты, данные и действия из сценариев и задач, стоящих перед пользователями;
просмотреть и уточнить список объектов и действий совместно с пользователями;
начертить диаграмму взаимодействия между объектами;
заполнить матрицу прямого манипулирования объектами.
Необходимо определить исходный набор объектов и действий пользователя на основании информации, собранной на первом этапе, а также сценариев, разработанных на втором этапе.
Обычно основному объекту (например, гостинице) с более чем одной копией требуется объект-контейнер высокого уровня для хранения всей «коллекции индивидуальных объектов. Например, в системе, связанной с торговлей автомобилями через сеть дилеров и имеющей множество объектов «автомобилей», вероятно, будут присутствовать и объекты – «группы автомобилей». Такие объекты-контейнеры в итоге могут превратиться в папки интерфейса или в элементы управления списком.
Необходимо определить объекты устройств общего назначения, с помощью которых пользователи должны выполнять определенные действия. К примеру, могут потребоваться объекты «принтеры» или «факсы», «пепельницы» или «корзины для мусора».
Одна из целей разработки пользовательского интерфейса заключается в том, чтобы максимально скрыть сложность внутренних бизнес моделей и моделей программирования. Необходимо скрыть от пользователей функционирование «системных объектов, они должны видеть эти объекты только через систему поиска или в списках имеющихся элементов.
4. Определение иконок объектов и визуальных представлений
Когда объекты уже установлены, нужно определить, как наилучшим образом представить их на экране, в каком виде их увидят пользователи, какую информацию они будут содержать. При определении представлений объектов необходимо учитывать способ общения пользователей с каждым из объектов и с информацией, содержащейся в них.
Разработчик графики должен отвечать за проектирование иконок. Обратная связь с пользователями и проведение тестирования на удобство применения также должны использоваться для подтверждения того, что иконки узнаваемы, понятны и способны помогать в решении задач (рисунок 5.3).
Клиент Список клиентов Профиль клиента
Заказ Список заказов Список гостиниц
Рисунок 5.3 – Примеры иконок объектов, выполненных вручную
Разработку иконок лучше начать с черновых набросков, затем постепенно дорабатывать и тестировать их в процессе разработки.
5. Разработка меню и окна
Когда объекты, их типы и иконки определены и разработаны, остается выяснить, как пользователи будут общаться с объектами и окнами. Следует ответить на следующие вопросы:
Какие действия свойственны каждому объекту и типу?
Что содержится во всплывающих меню?
Каким окнам требуется панель меню?
Для этого составляются список объектов и действий и матрица прямого манипулирования объектами из третьего шага, которые являются отправными пунктами для пятого шага. Необходимо перестроить эти схемы и определить действия, относящиеся к объектам, представленным в виде иконок.
Нужно изучить каждое окно, чтобы определить, требуется ли пользователю панель меню. Поскольку приложения становятся все более объектно-ориентированными, то упомянутые панели открывают путь к способам более прямого взаимодействия, например прямому манипулированию и всплывающим меню. Приложения, имеющие только одно окно, для представления всех относящихся к ним действий требуют сложных панелей меню. Они разбиваются на объектно-ориентированные компоненты, при этом на уровне окна требуется меньше действий, а большая часть операций может выполняться косвенным образом, посредством всплывающих меню.
Основное различие между панелью проблемно-ориентированного меню и объектно-ориентированного заключается в том, что панель объектно-ориентированного меню указывает объект как первый вариант на панели, а выпадающее меню содержит действия, допустимые для выделенного объекта в данном окне.
6. Усовершенствование визуальной разработки
При первоначальной разработке схем окон удобнее пользоваться бумагой и карандашом. Когда вид окна определен, можно перейти к использованию инструментов прототипирования или проектирования, чтобы разработать схематическое изображение иконок и окон. Возможно, что, разрабатывая меню на шестом шаге, необходимо вернутся назад.
Третий этап: построение пользовательского интерфейса
При первом обращении к итерационному процессу разработки нужно создавать прототипы. Прототипирование является исключительно ценным способом создания первых проектов и демонстрации продукта, особенно на ранних этапах тестирования на удобство применения.
Цель прототипирования заключается в том, чтобы быстро и легко визуализировать различные альтернативные варианты разработки, а не создавать код, который должен стать частью продукта.
Необходимо следовать трем «золотым» правилам при использовании прототипов:
прототипируйте на ранних стадиях и не забывайте про итерационный принцип разработки;
создавайте различные альтернативные варианты;
будьте готовы выбросить код прототипа.
Существует много способов прототипирования интерфейсов: бумага и карандаш, доски для мела и фломастеров, альбомы для презентаций, клеящиеся листочки и т.д. Для показа последовательности визуальных разработок применяют прототип с анимацией либо презентационные графические программы (например, Lotus Freelance Graphics и др.). Может использоваться и такой способ: человек работает «компьютером», переключая экраны по запросу пользователя. Для прототипирования могут применяться либо специальные инструменты, либо инструменты проектирования (обычно для написания кода продукта).
Прототип может быть полезен и с точки зрения маркетинга и продаж продукта, если демонстрировать его менеджерам, руководящим сотрудникам и клиентам. Демонстрационная версия продукта также является практически бесплатным элементом бизнес показов и рекламных рассылок по почте.
Программное прототипирование становится специализированной областью в рамках разработки программного обеспечения и тестирования на удобство использования.
Четвертый этап: подтверждение качества
Тестирование на удобство применения является ключевым элементом итерационного процесса разработки. Оно заключается в том, чтобы выдать продукт на руки большому количеству пользователей и посмотреть, смогут ли они с ним работать. Цель тестирования на удобство применения должна заключаться в оценке поведения, действий и степени удовлетворения пользователей. Многие разработчики обращаются к подобному виду тестирования ближе к концу проектирования. Но это слишком поздно для того, чтобы на основании его результатов вносить изменения. Даже если они и вносятся, нельзя быть уверенным в том, что исправленный продукт можно использовать без проведения повторного тестирования.
Разработчики должны обязательно присутствовать при проведении тестирования, и оказать техническую поддержку. Деятельность по оценке удобства применения не прекращается после продажи продукта или внедрения его в производство (таблица 5.1).
Разработка и проектирование программного продукта могут потребовать внедрения множества подсистем, сетей, баз данных, других программ и т.д. Как правило, операционная система, языки программирования и инструментарий для проектирования определяются раньше, еще до разработки пользовательского интерфейса. При создании программного продукта необходимо привязываться к предыдущим версиям, другим продуктам или специальному набору языков программирования и инструментарию. На рисунке 5.4 представлены два различных подхода к разработке интерфейса.
Таблица 5.1 – Действия по оценке удобства применения продукта
Стадии разработки продукта |
Действия по оценке возможности использования |
Определение концепции |
Сбор требований пользователей концептуальное определение разработки |
Подтверждение концепции |
Концептуальные оценки разработки (бумага/карандаш, прототипы) |
Разработка |
Оценки прототипов. Отслеживание и фиксирование проблем, возникающих у пользователей |
Проектирование |
Итерационное тестирование на ранних стадиях разработки (индивидуальные модели, ключевые задачи). Итерационное тестирование окончательных вариантов разработки (целиком продукт, все задачи). Отслеживание и фиксирование проблем, возникающих у пользователей |
Распространение пилотной версии. Анкета для пользователей пилотной версии |
Наблюдение на месте за пользователями пилотной версии. Обратная связь с пользователями пилотной версии. Отслеживание и фиксирование проблем, возникающих у пользователей |
Внедрение продукта |
Наблюдение на месте за пользователями продукта. Обратная связь с пользователями продукта. Отслеживание и фиксирование проблем, возникающих у пользователей. Анкета для пользователей продукта |
Поддержка и обслуживание |
Сравнение показателей удобства применения за длительный период времени (1-месячный, 3-месячный, 6-месячный интервалы). Обновление и внесение изменений в тесты. Тест для пилотных разработок новых продуктов |
Рисунок 5.4 – Два направления разработки интерфейса
При разработке, основанной на вовлечении пользователей, проектируются интерфейсные метафоры, визуальные элементы и способы ввода/вывода, соответственно их пожеланиям.
Историческим примером проектирования компьютерной системы на базе ее интерфейса является Apple Computer. Данный пример стал классикой успешной истории, где сначала был создан проект интерфейса, а затем построен сам компьютер для его поддержания. Персонал компании Apple всегда гордился своим дружественно настроенным к пользователю компьютером Macintosh.
Разработчик пользовательского интерфейса разделяет два очень различных мира – пользователей и разработчиков приложения. Разработка, ориентированная на пользователя, основана на ряде руководящих принципов:
понимание нужд пользователей является движущей силой всего проекта;
все, что пользователи видят и к чему прикасаются, должно проектироваться совместными усилиями;
инновационный проект всегда является результатом интенсивной работы;
используются команды специалистов в разных областях;
конкурентоспособный проект требует постоянного акцента на соревнование;
проект, утвержденный пользователями, управляет разработкой кода;
принимаемые решения должны основываться на обратной связи с пользователями;
информация от обратной связи с пользователями должна собираться часто, точно и быстро;
обратная связь осуществляется как с потенциальными, так и с уже существующими клиентами;
разработка, ориентированная на пользователя, должна постоянно совершенствоваться.