DIPLOM1 (664360), страница 4
Текст из файла (страница 4)
Разработка экранного интерфейса программы
Существующие подходы к проектированию экранного интерфейса
Экранный интерфейс программы во многом определяет удобство работы пользователя и является одним из важных факторов, влияющих на эффективность его труда. Программа, выполняющая все возложенные на нее функции, обладающая высоким быстродействием может быть полностью непригодной для работы из-за неприемлемого интерфейса с пользователем. Еще буквально несколько лет назад существовал текстовый редактор, прекрасно иллюстрирующий такой подход к проектированию программного обеспечения. Вряд ли кому-то придется по душе редактор текста, в котором для вставки символа в строку нужно набрать однобуквенный код команды вставки, номер обрабатываемой строки (к счастью не двоичный), номер символа, после которого будет вставлен новый символ и собственно этот символ. Конечно такой подход абсолютно неприемлем.
Рис.4 Система меню операционной оболочки Norton Comander
Наиболее практичными и удобными с точки зрения пользователя можно считать системы, имеющие экранный интерфейс, построенный на основе системы всплывающих меню. Наиболее распространенными в настоящее время являются две идеологии (имеются в виду DOS-приложения), включающие в себя и определенную форму экранных окон и цветовую гамму и вид всплывающих списков. Это инструментальные Среды фирмы Borland, и операционная оболочка Norton, фирмы Symantec. Обе идеологии предусматривают определенное разбиение экранного пространства на области или зоны, предназначенные для конкретных информационных объектов и действий. Зоны могут быть в некоторой степени переконфигурированы по желанию пользователя: изменены размеры и положение на экране. Команды обработки данных вызываются из системы меню, присутствующего на экране постоянно (Borland), или вызываемого по функциональной клавише (Symantec).
И в том и в другом случае все команды системы распределены по функциональному признаку на группы и в главном меню присутствуют
Рис 5. Система меню компилятора Borland C++
собственно наименования групп команд. Выбрав группу, пользователь получает доступ к списку команд группы, в который могут быть включены также команды, объединенные в группы второго уровня и т.д.Таким образом, создается система многоуровневого всплывающего меню. Применение такой идеологии обеспечивает удобство ориентировки в системе, имеющей достаточно сложное, многоуровневое меню с множеством выборов. Естественно, что увеличение вложенности и размеров списков выбора, должно иметь разумные границы, которые к счастью имеются в виде ограниченности экранного пространства монитора. В большинстве систем заложена также возможность настройки цветовой палитры по желанию пользователя. В операционной оболочке Norton предлагается выбор гаммы из нескольких стандартных вариантов, в системах фирмы Borland можно создать свою собственную цветовую гамму, вплоть до мельчайших деталей. Примерный вид некоторых экранных объектов приведен на рис.4,5.
Выбор идеологии экранного интерфейса
В нашей системе примем за основу экранного интерфейса, идеологию фирмы Borland. В этой идеологии выдержано большинство автоматизированных банковских систем, поэтому наша программа органично впишется в их ряд.
Система проектирования CA-Clipper предоставляет разработчику достаточно обширную гамму функций, позволяющих осуществлять разработку экранного интерфейса, однако программы, в которых используются только штатные средства системы оказываются довольно сильно загруженными второстепенными операторами, обеспечивающими вывод на монитор экранных объектов, рамок, установку цвета и т.п. Целесообразно разработать комплекс функций экранного интерфейса, выполняющих макрооперации, таких, к примеру, как вывод в заданных координатах рамки с заголовком и тенью в указанной цветовой гамме и сохранение области вывода в буфере для последующего восстановления внешнего вида экрана. Все функции экранного интерфейса можно объединить в библиотеку, с тем, чтобы в последующей работе не загружать исходный код программы их описанием.
Перечень функций экранного интерфейса
Для формирования библиотеки экранных функций, приведем перечень процедур, относящихся к созданию внешнего облика программы и связи программы с конечным пользователем:
-
создание горизонтального меню в указанных координатах
-
создание вертикального меню в указанных координатах
-
вывод окна с рамкой и тенью или без таковых в указанных координатах и цвете
-
вывод окна с рамкой и тенью или без таковых в указанных координатах и цвете с эффектом раскрытия
-
вывод строки подсказки
-
вывод сообщения с ожиданием реакции пользователя
-
вывод сообщения и ожидание выбора пользователя
-
вывод линейного индикатора процесса и его обновление
-
вывод транспаранта ожидания
Наиболее сложными и важными функциями из перечисленных, являются функции создания меню, а самыми употребительными функции вывода окон. Таким образом, необходимо в первую очередь спроектировать именно эти функции.
Ïðîåêòèðîâàíèå ôóíêöèîíàëüíûõ ìîäóëåé.
Существует множество методов построения программ и каждый разработчик выбирает из всего многообразия наиболее приемлемый для себя или вообще руководствуется своими личными соображениями. При проектировании нашей системы можно разбить весь процесс на несколько частей:
-
Создание функций экранного интерфейса
-
Проектирование системы меню программы
-
Разработка функциональных модулей и подключение их к основной программе
-
Комплексная отладка и тестирование программы в процессе опытной эксплуатации
-
Окончательная доводка программного продукта и сдача его в эксплуатацию.
Создание в первую очередь процедур и функций экранного интерфейса объясняется тем, что эти функции составят “скелет” программы к которому в дальнейшем будут подключаться рабочие процедуры, таким образом мы будем вести разработку методом “Сверху вниз”. Этот метод позволяет в короткие сроки получить работающую систему с ограниченным (и в процессе работы все более полным) набором функциональных возможностей.
Разработка интерфейсных функций
Функция вывода меню в указанных координатах
Для упрощения программы в целом возложим на эту процедуру следующие задачи:
-
Вывод горизонтального, или вертикального меню, в зависимости от передаваемого параметра
-
Возврат номера выбора пользователя, или 0 при прерывании выбора по клавише “Escape”
-
Вывод списка выборов в экранных координатах, передаваемых в функцию в качестве параметра
-
Вывод списка выборов в цветовой гамме, передаваемой в функцию в качестве параметра
-
Выделение “горячих” клавиш в списке выборов и их обработка
-
Возможность перемещения по списку выборов с помощью манипулятора “Мышь”.
Определимся с параметрами функции.
-
Флаг вывода меню в горизонтальном или вертикальном виде (Logic)
-
Список выборов (Array)
-
Список координат (Array)
-
Список строк подсказок (Array)
-
Дополнительная координата (Numeric)
-
Цвет активного выбора (String)
-
Цвет неактивного выбора (String)
-
Цвет “горячей” клавиши
Дополнительная координата и массив координат выборов будут выполнять двойную роль: при выводе горизонтального меню массив содержит номера колонок для каждого выбора, а дополнительная координата определяет строку вывода, при выводе вертикального меню в массиве будем иметь номера строк для каждого выбора, а дополнительная координата определит столбец вывода. Для отображения “горячей” клавиши необходимо определить в строке выбора какой-либо маркер, символ, следующий за ним, будет использоваться в качестве “горячей” клавиши и отображаться с выделением (рис.6)
Рис.6 Фрагмент меню
Рис 7. Алгоритм функции выбора из меню
Функция вывода окна в указанных координатах
Данная функция должна быть универсальной, следовательно, нужно иметь возможность, при вызове функции, определять параметры будущего
Рис.8 Параметры оконного объекта
оконного объекта. К таким параметрам относятся:
-
экранные координаты окна (стандартно это строка и столбец левого верхнего и правого нижнего углов окна)
-
цвет оконной области
-
символы обрамления и заполнения окна
-
цвет символов обрамления и заполнения
Экранные координаты передаются в виде числовых величин в порядке, принятом для команд BOX, CLEAR и т.п. YL,XL - левый верхний, YR,XR - правый нижний угол. Символы заполнения передаются в виде строковой переменной, содержащей последовательно символы обрамления, начиная с верхнего левого угла по часовой стрелке. Последним в последовательности является символ заполнения внутренней области окна. Цветовая гамма устанавливается по умолчанию по текущим установкам.
Вывод оконного объекта с эффектом раскрытия осуществляется путем циклического вызова предыдущей функции с задержкой и изменением координат на единицу от Х1=(ХR-XL)/2, Y1=(YR-YL)/2 до переданных в качестве параметра.
Вывод строки подсказки
Особенностью данной функции является необходимость вывода подсказки в виде этикеток к функциональным клавишам в нижнюю строку экрана и фиксация этих данных на время работы какой-либо процедуры, а затем восстановление области экрана, занятой строкой подсказки. Кроме того, необходимо выводить этикетки только для клавиш, задействованных в данной процедуре.
Рис.9 Строка подсказки
Целесообразно в главном модуле программы определить массив с этикетками для каждой функциональной клавиши, а в функцию передавать только номера или позиции подлежащих отображению этикеток. В качестве параметра удобно использовать символьное выражение битовой строки вида “1000001001”, показывающее, что необходимо вывести в строку подсказки элементы массива с номерами 1, 7 и 10, а в остальных позициях вывести блоки пробелов. Поскольку в строку необходимо выводить десять элементов массива с обозначением номера функциональной клавиши и разделителями, легко подсчитать, что длина одного элемента составит 6 символов. Примерный вид фрагмента строки приведен на рис.Вывод сообщения с ожиданием реакции или выбора пользователя
Поскольку данные функции, написанные, как самостоятельные модули во многом будут похожи, есть смысл объединить их в одну универсальную процедуру. Условимся обрабатывать максимально три строки сообщения и до трех вариантов выбора. При отсутствии в передаваемых параметрах вариантов выбора, предполагается ожидание нажатия на любую клавишу.
Таким образом, список параметров функции будет следующим:
-
Координаты вывода окна объекта
-
Строка сообщения 1
-
Строка сообщения 2
-
Строка сообщения 3
-
Строка выбора 1
б)
в)
Рис.10 Примеры работы функции при передаче различного количества параметров.
а - одна строка сообщения б - две строки сообщения и две строки выбора, в - Одна строка сообщения и три строки выбора.
При вызове функции условимся отсутствующие параметры передавать в виде пустой строки -«», таким образом упростится анализ переданных параметров в функции.














