Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR11-12.doc
Скачиваний:
18
Добавлен:
10.03.2016
Размер:
262.14 Кб
Скачать

Элементы интерфейса со стороны машины

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

Ввод данных. Как только появились программы, обрабатывающие данные в диалоговом режиме, перед программистами встала задача, как объяснить пользователю, что, собственно, от него ожидает программа. Первые программы, обладавшие интерактивным интерфейсом (термин, подразумевающий, что осуществляется человеко-машинный диалог), были по-военному лаконичны. Пользователю в приказном порядке давались директивы: «введите число от 100 до 50000», «нажмите клавишу 2» и т.п. Но даже это на первых порах нравилось. Изумляла способность машины выявлять ошибку или выявлять обман. Так, введя на запрос: «число от 100 до 50000» число 70, пользователь читал на экране: «Ошибка!». Чудо!

Всякий раз при вводе значений, особенно числовых, необходимо осуществлять проверку. Программа (т.е., программист, разрабатывающий ее) должна руководствоваться условным допущением: если пользователь может сделать ошибку, он ее сделает обязательно.

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

Алгоритм создания меню очень прост: каждый раз пользователю предлагается сделать выбор из конечного списка внутри некоторого цикла. Все нажатия «не относящихся к делу» клавиш игнорируются. При выборе одной из альтернатив передача управления для ее обработки происходит при помощи case-конструкции. Затем, после обработки этого пункта, управление возвращается снова в цикл. При этом всегда должен быть предусмотрен явный способ выхода из цикла обработки меню, например, путем нажатия клавиши Esc.

Поддержка пользователя. В процессе работы пользователь испытывает неуверенность в правильности своих действий. Иногда он может пасть духом и испытывать потребность в поддержке. А что может лучше поддержать пользователя, чем бодрящее сообщение: «Вы выполнили запуск процедуры форматирования системного диска! Все ваши данные будут потеряны!». Вы не задумывались над смыслом фразы: «Был сражен словами наповал»? Это как раз тот самый случай. Если ваша программа выдаст такое сообщение главному бухгалтеру большой организации в конце года, эффект будет потрясающим, не исключен инфаркт.

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

  • информационные;

  • вопросительные;

  • предостерегающие;

  • запрещающие.

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

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

Вопросительное сообщение всегда подразумевает ответ пользователя путем выбора кнопки «Да» или «Нет» (Ok или Cancel), либо нажатием клавиш Enter или Esc, либо еще каким-то образом, но пользователь должен дать системе ясное подтверждение или отказ на выполнение действия.

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

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

Кроме разного рода сообщений теоретически каждая программа должна иметь Help, вызываемый клавишей F1 или через пункт главного меню, который называется «Подсказка» или «Помощь».

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

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

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

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

Желательно, чтобы окончание длительного процесса сопровождалось звуковым сигналом.

Создать хороший интерфейс – это почти половина дела в создании современного программного продукта. Запомните, если с вашей очень хорошей (с точки зрения алгоритма) программой пользователь будет работать постоянно хватаясь за валерьянку, кляня «дурацкую технику», то, в конце концов, он будет вынужден от вашей программы отказаться. Хороший интерфейс с лихвой окупит некоторые огрехи программирования, о чем свидетельствует шумный успех Microsoft Windows, а плохой – угробит труд коллектива замечательных профессионалов, которые не позаботились о создании качественного пользовательского интерфейса.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]