Традиционный процесс разработки программных изделий с первых дней его существования был таким:
С развитием высоких технологий и выдвижением на первый план проблемы взаимодействия пользователя с изделием этот процесс модифицируется: в него включается дополнительная форма тестирования – юзабилити-тестирование.
Основная причина широкого признания юзабилити-тестирования заключается в том, что оно легко встраивается в существующую последовательность «программа, тест, доводка». Юзабилити-тестирование в основном связано с наличием готовой программы, поэтому оно не нарушает привычного порядка действий программистов и удобно для них как дополнительная форма тестирования. Такая последовательность разработки прочно закрепилась в индустрии ПО. Вместе с тем предполагается, что этот вид тестирования обеспечит соответствие изделия целям пользователя, т.е. выполнит функции проектирования. Однако если создание кода уже началось, то воздействие проектирования оказывается ничтожно малым! Это подтверждается прежде всего на практике: совокупные усилия множества специалистов не дают требуемого результата.Проектирование взаимодействия должно быть включено в процесс разработки программ как этап, предшествующий программированию.
Рис. 2.2. Место проектирования в общем процессе разработки
По сравнению с традиционной эта схема означает коренные перемены в процессе разработки ПО, поэтому, несмотря на признанную необходимость таких перемен, традиционная последовательность сохраняет свои позиции. Причины здесь следующие:
И, наконец, на примере компании Microsoft Купер рассматривает итеративный процесс разработки ПО как стратегию, основанную на изморе, но подаваемую как средство достижения качественного взаимодействия. Слабым местом такой стратегии как раз является следование схеме, ставящей программирование перед проектированием взаимодействия. Резюме. Высокое качество интерфейса может быть достигнуто в первую очередь тщательным проектированием. Проектирование должно предшествовать программированию и выполняться специалистами по взаимодействию.· Конечная цель проектирования интерфейса состоит в том, чтобы выявить характеристики взаимодействия, поддающиеся достаточно строгому описанию, и заложить нужные свойства в проект. Для этого необходимо знание:
Реализация интерфейса предполагает также:
Но несмотря на все эти проблемы, тенденции развития высоких технологий выводят проектирование на первый план и ставят его в процессе разработки проектирования перед программированием.
Что может заменить проектирование? В кн. Алана Купера проведен достаточно детальный анализ видов и форм деятельности, претендующих на роль проектирования, и убедительно показана необоснованность претензий. Иначе говоря, этап проектирования должен быть самим собой и выполняться в соответствии со своей спецификой. Здесь очень кратко приведем описание упомянутых видов деятельности и результаты их анализа. Это:юзабилити-тестирование:
Особенности обработки информации человеком и особенностей взаимодействия человека с компьютерным продуктами тесно взаимосвязаны. Различие здесь состоит в том, психологические характеристики процессов восприятия, запоминания и обработки информации в случае проектирования компьютерных продуктов выступают как данность. Эти характеристики надо знать и учитывать. Если же речь идет о взаимодействии, то характеристики и качество последнего определяются степенью соответствия «компьютерной стороны» «человеческой», т.е. данностью уже не являются и определяются качеством проекта, степенью учета психологических характеристик (вкупе с целями человека). Так, развитие информационных технологий пошло по тому пути, который мы имеем, и речь может идти только о специфике взаимодействия человека с компьютерными продуктами такими, как они есть. Другое дело, что коль скоро речь об этом идет, это взаимодействие нас не устраивает и исследуется с целью его улучшения. Методы проектирования в кратком изложении базируются на определении классов пользователей и анализе их целей. Здесь подходы различных авторитетов практически едины (об этом неоднократно упоминалось). Ориентиром может служить язык UML как средство описания анализа проблемной области (прежде всего Use Case Diagrams). Рассмотрение любых положений, касающихся разработки, должно идти в русле проектирования.
Приведенные в списке требования перечислены в том порядке, в котором далее будет вестись их рассмотрение.