Обмен информацией осуществляется передачей сообщений и управляющих сигналов. Сообщение – порция информации, участвующая в диалоговом обмене. По направлению передачи информации различают:
- входные сообщения, которые генерируются человеком с помощью средств ввода (клавиатуры, мыши и т.п.);
- выходные сообщения, которые генерируются компьютером в виде текстов, звуковых сигналов и / или изображений и выводятся пользователю на экран монитора или другие устройства вывода информации.
В основном пользователь генерирует сообщения следующих типов: запрос информации, запрос помощи, запрос операции или функции, ввод или изменение информации и т.д. В ответ он получает: подсказки или справки, информационные сообщения, не требующие ответа, приказы, требующие действий, сообщения об ошибках, нуждающиеся в ответных действиях, и т.д.
По аналогии с процедурным и объектным подходом к программированию различают процедурно-ориентированный и объектно-ориентированный подходы к разработке интерфейсов (рис. 2.3).
Рисунок 2.3 – Типы пользовательских интерфейсов
Процедурно-ориентированные интерфейсы предоставляют пользователю возможность выполнения некоторого набора действий, для которых могут вводиться соответствующие исходные данные. Вся работа с программой сводится к выбору действия, которое надо выполнить (если такой выбор предоставляется), вводу данных (при необходимости) и обработке полученных результатов.
Объектно-ориентированные интерфейсы используют несколько иную модель взаимодействия с пользователем, ориентированную на манипулирование объектами предметной области. Мы не будем подробно останавливаться на объектно-ориентированных пользовательских интерфейсах, поскольку для решения учебных задач достаточно процедурного подхода, значительно более простого в реализации. В качестве примера объектно-ориентированного интерфейса можно привести программу «Проводник» ОС Windows. Объектами предметной области в этом случае являются файлы и папки. Выполнение операции может выглядеть так: пользователь «берет» файл (точнее, объект интерфейса, соответствующий файлу) и «перетаскивает» его в другую папку, инициируя таким образом перемещение «физического» файла на диске.
Процедурно-ориентированные интерфейсы, в свою очередь, можно разделить на несколько подтипов: консольные, меню и со свободной навигацией.
Консольным называют интерфейс, который организует взаимодействие с пользователем на основе последовательного ввода и вывода информации в текстовом режиме по принципу «вопрос-ответ». Обычно такой интерфейс реализует конкретный сценарий работы, например: ввод данных – решение задачи – вывод результата (рис. 1.4, а). Единственное отклонение от последовательного процесса, которое обеспечивается данным интерфейсом, заключается в организации цикла для обработки нескольких наборов данных (рис. 1.4, б). Подобные интерфейсы в настоящее время используют только в процессе обучения программированию или в тех случаях, когда вся программа реализует одну функцию, например, в некоторых системных утилитах.
а) б)
Рис.1.4 – Структура программы с консольным интерфейсом
Интерфейс-меню, в отличие от консольного интерфейса, позволяет пользователю выбирать необходимые операции из специального списка, выводимого ему программой. В этом типе интерфейсов последовательность действий выбирается самим пользователем. Различают одноуровневые и иерархические меню. Первые используют для сравнительно простых случаев, когда вариантов немного (не более 5–7), и они включают операции одного типа, например, Создать, Открыть, Закрыть и т.п. Вторые применяются при большом количестве вариантов или их очевидных различиях, например, операции с файлами и операции с данными, хранящимися в этих файлах. На рис. 2.5 показана типичная структура алгоритма программы, организующей одноуровневое меню.
Алгоритм программы с многоуровневым меню обычно строится по уровням, причем выбор команды на каждом уровне осуществляется так же, как для одноуровневого меню.
Интерфейс-меню предполагает, что программа в любой момент времени находится либо в состоянии обслуживания меню (ожидания выбора со стороны пользователя), либо в состоянии выполнения операции. Пользователь, как правило, вынужден ожидать, пока выполняется выбранное им действие.
Рисунок 2.5 – Структура программы с интерфейсом-меню
Меню может быть построено различными способами. Простейший вариант реализации меню – вывод списка пунктов и предложение ввести номер пункта из этого списка. Более сложный вариант – список, по которому можно перемещаться с помощью клавиш (обычно клавиши управления курсором). Достоинства этого способа в том, что он удобнее, привлекательнее выглядит, не требует от пользователя соотнесения текста меню с номером пункта и уменьшает вероятность ошибки при выборе за счет того, что текущий пункт меню «подсвечивается».
В отличие от интерфейса-меню интерфейс со свободной навигацией обеспечивает возможность осуществления любых допустимых в конкретном состоянии операций, доступ к которым возможен через различные интерфейсные компоненты. На данный момент сформировался стандартный набор компонент пользовательского интерфейса, которые широко применяются в самых разнообразных программах и поддерживаются многими операционными системами и библиотеками. Поскольку даже разные реализации этих компонент подчиняются некоторым общим принципам управления, интерфейсы, построенные на их основе, привычны и понятны любому пользователю. Это является несомненным достоинством интерфейсов со свободной навигацией.
Внешний вид некоторых распространенных интерфейсных элементов в системе ОС Windows приведен на рис. 2.6. Перечислим эти компоненты (в скобках даны устоявшиеся английские названия):
- опция, флажок (checkbox), рис. 2.2, а;
- поле ввода (editbox), рис. 2.2, б;
- наборныйсчетчик (spin control, up/down control), рис. 2.2, в;
- кнопка (button), рис. 2.2, г;
- индикатор хода выполнения задачи (progressbar), рис. 2.2, д;
- ползунок (slider), рис. 2.2, е;
- списки: линейный (listbox, рис. 2.2, ж), выпадающий (combobox, рис. 2, з), древовидный (treecontrol, рис. 2.2, и);
- переключатель (radiobutton), рис. 2.2, к;
- меню (menu), рис. 2.2, л;
- панель инструментов (toolbar), рис. 2.2, м.
Существенной особенностью интерфейсов со свободной навигацией является способность изменяться в процессе взаимодействия с пользователем, предлагая выбор только тех операций, которые имеют смысл в конкретной ситуации (например, блокируя ввод в те или иные поля).
а) | б) | в) |
г) | д) | е) |
ж) | з) | и) |
к) | л) | м) |
Рис.2. Компоненты интерфейса со свободной навигацией
Как правило, интерфейсы этого типа реализуют, используя событийное программирование и объектно-ориентированные библиотеки, что предполагает применение визуальных сред разработки программного обеспечения. Тем не менее, несложные интерфейсы со свободной навигацией можно реализовать и на процедурно-ориентированном языке (например, Delphi) в однозадачной операционной системе без событийного управления (например, MS-DOS).
Для разработки интерфейса АРМ была использована среда программирования Delphi7.0. Эта среда программирования представляет собой систему, которая позволяет на самом современном уровне создавать как отдельные прикладные программы, так и разветвлённые комплексы, предназначенные для работы в портативных сетях и в Интернет. Основными особенностями данной системы программирования являются:
создаваемые ею программы, могут работать не только под управлением Windows;
сама она относится к классу инструментальных средств ускоренной разработки программ.
Delphi – это мощная система визуального, объектно-ориентированного программирования, позволяющая решать множество задач, а в частности:
создавать законченные приложения, решающие задачи от вычислительных и логических, до графических и мультимедийных;
быстро создавать профессионально выглядящий оконный интерфейс для любых приложений, написанных на любом языке, удовлетворяющий всем требованиям Windows и автоматически настраиваемый на ту систему, которая установлена на компьютере пользователем;
создавать мощные системы работы с локальными и удалёнными базами данных любых типов, при этом имеются средства автономной отладки приложений.