Стандартизация пользовательского интерфейса

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

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

В качестве иллюстрации того, насколько серьезно относятся «законодатели моды» в области компьютерных технологии к проблемам интерфейса, можно отметить следующий факт. Американский Национальный институт стандартов (ANSI) имеет по данному направлению специальную консультативную группу — Комитет по стандартам интерфейса «человек-компьютер» (The Human-Computer Interface Standard Committee). Существуют подобные организации не только в США, но и в других странах: более того, имеются также международные исследовательские группы, работающие в этом направлении, например. Международный консультативный комитет по телеграфии и телефонии (International Telegraph and Telephone Consultation Committee), изучающий особенности интерактивных элементов интерфейса.

Многими из этих организаций или рабочих групп в свое время были подготовлены проекты документов по стандартизации пользовательских интерфейсов, содержащие принципы их проектирования и реализации. Так, в 1986 году было опубликовано «Руководство по разработке программного пользовательского интерфейса» [1], содержащее 944 принципа, касающихся ввода и отображения данных, поддержки пользователя, защиты данных и т.д. Однако ни один из этих проектов не получил статуса официального документа, поскольку все они имели общий недостаток (тот же, что и первые исследования в этой области): в них не учитывались технологические возможности инструментальных средств, имевшихся в распоряжении разработчиков программного обеспечения.

Ситуация коренным образом изменилась в 1987 г., когда корпорация IBM объявила о намерении создать единую среду разработки приложений (Systems Application Architecture — SAA).

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

Целями проекта являются:

1. Повышение производительности труда программистов и конечных пользователей.

2. Облегчение эксплуатации и сопровождения программного обеспечения.

3. Повышение эффективности распределенной обработки информации.

4. Увеличение отдачи инвестиций в разработку информационных систем.

Проект SAA содержит 4 компонента:

1. Соглашения по интерфейсу пользователя (Common User Access — CUA);

2. Соглашения по программному интерфейсу (Common Programming Interface — CPI);

3. Соглашения по разработке приложений (Common Applications — СА);

4. Соглашения по коммуникациям (Common Communications Support — CCS).

В качестве технологической базы для реализации соглашений по пользовательскому интерфейсу было предложено конкретное инструментальное средство — Programming Toolkit для операционной системы OS/2. При его создании был учтен накопленный к тому времени опыт разработки интерфейсов, а также последние достижения в данной области, в первую очередь — появление графических интерфейсов.

Исследованиями и практической реализацией графических интерфейсов в то время уже занимались такие фирмы как Xerox, Apple, Digital Research и Microsoft. В результате их деятельности были определены основные концепции построения графических пользовательских интерфейсов:

o использование единой рабочей среды пользователя в виде так называемого Рабочего стола;

o объектно-ориентированный подход к описанию заданий пользователей;

o использование графических окон в качестве основной формы отображения данных:

o применение средств не клавиатурного ввода, основанного на выборе и указании с помощью манипулятора «мышь».

В силу различных причин фирма IBM при реализации проекта SAA наиболее тесно сотрудничала с фирмой Microsoft, в результате чего была создана графическая оболочка Microsoft Windows IBM Top View. И хотя впоследствии пути двух гигантов компьютерного бизнеса несколько разошлись, основные положения проекта SAA живы и успешно развиваются: корпорацией IBM — применительно к OS/2, а фирмой Microsoft — в рамках семейства ОС Windows.

В марте 1997 года фирма Microsoft выпустила пакет Visual Studio 97, в который вошли все созданные ею инструментальные средства разработки приложений, а также средства автоматизации сопровождения программных продуктов (Visual SourceSafe). Это событие можно рассматривать как очередной шаг в направлении практической реализации идей проекта SAA.

И хотя требования и спецификации, изложенные в CUA, пока так и не стали международным стандартом де-юре, ориентация огромного числа производителей ПО на интерфейс MS Windows позволяет считать их таковыми де-факто.

Справедливости ради следует отметить, что для UNIX-систем, в определенном смысле являющихся конкурентом Windows, существует аналогичный «почти стандарт», представленный архитектурой XWindow.

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

На наш взгляд, стандартизованный интерфейс (именно стандартизованный, а не стандартный) должен отвечать двум основным требованиям:

- обладать перечисленными в предыдущем разделе свойствами (естественности, согласованности и т.д.);

- быть узнаваемым (или предсказуемым, что в данном случае одно и то же).

Второе требование, в свою очередь, предполагает, что интерфейс содержит только стандартные базовые элементы; каждый такой элемент должен иметь «узаконенное» название и определенный перечень свойств. Например, нельзя называть меню «списком» и при этом использовать его для вывода результатов расчетов.

На первый взгляд может показаться, что стандартизация интерфейса ведет к убогому однообразию внешнего облика программных продуктов. Но ведь и Моцарт, и автор «Мурки» пользовались одними и теми же семью нотами... А программисты, знакомые с алгоритмизацией, знают, что любой, сколь угодно сложный алгоритм содержит всего три-четыре базовые алгоритмические конструкции. Так что и при создании стандартизованного интерфейса результат будет зависеть в первую очередь от «композитора» — разработчика.

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

Наши рекомендации