4.3 Справочный интерфейс пользователя
Одним из показателей качества программного изделия является наличие хорошо проработанного справочного интерфейса, как одного из видов пользовательской документации, представляемой в электронном виде.
Конкретный набор справочных функций определяется особенностями задач, решаемых пакетом, типом модели предметной области и способом внешнего управления пакетом. Тексты справок о разработчиках пакета, о предметной области, о задачах, решаемых с помощью ППП, о допустимых действиях пользователя могут быть заготовлены заранее, справки же о состоянии модели предметной области должны формироваться заново в каждом состоянии модели.
Отдельные справки, особенно содержащие большие куски текста, занимающие значительную часть экрана, выводятся только по запросу пользователя, передаваемому через интерфейс управления. Короткие справки-подсказки могут выводиться при определенных состояниях модели предметной области или вместе с приглашением пользователю к выполнению управляющих действий.
Рассмотрим способы вызова справочного интерфейса для ППП, используемых в диалоговом режиме.
1. Выбор пункта Главного меню Справка (Help), который дублируется нажатием кнопки F1 на клавиатуре (рис. 4.5 а). Подпункты этого меню могут содержать:
а
б
в
Рис. 4.5 Виды справочного интерфейса ППП MS Excel
справку по программному продукту, структура которой изображена на рис. 4.6; для поиска нужной информации используются гипертекстовые ссылки, размещаемые в тексте справки (поле справа), Указатель и Мастер ответов, ведущие поиск по заданным пользователем ключевым словам;
Рис. 4.6 Справка по ППП MS Excel
вызов «интеллектуального помощника» (рис. 4.5 б), который, в принципе, обеспечивает те же функции, что и Справка, только в более забавном виде (если вам не нравится игривая Кошка, можете сменить помощника, заказав, например, мудрого Эйнштейна);
контекстную справку, вызываемую щелчком мыши по знаку «?» (рис. 4.5 в); указав им интересующий параметр, можно получить справку по этому параметру;
соединение с Web-узлом разработчика пакета, обеспечивающую онлайновую справку и поддержку;
вызов Руководства пользователя (Manual) или Обучающего пособия (Tutorial), выполненных либо в виде файла с расширением .pdf (для его чтения требуется программа Adobe Acrobat Reader), либо в виде интерактивного мультимедийного учебника;
краткие сведения о разработчиках продукта, его версии и годе выхода в свет.
Пункт меню Справка может располагаться не только в главном меню, но и в любом месте интерфейса управления (рис. 4.7).
2. Всплывающие подсказки, появляющиеся у объектов (кнопок, строчек меню) и поясняющие их назначение.
Рис. 4.7 Справка по отображению данных в одном из состояний ППП Project Expert 6 (компания PRO-INVEST Consulting)
3. Контекстно-зависимое меню, вызываемое нажатием правой кнопки мыши или специальной клавишей на 104/108 кн. клавиатуре. Хотя это меню является частью интерфейса управления, но оно информирует пользователя о возможных действиях в данном состоянии МПО пакета (или, иными словами, в данном контексте использования ППП), поэтому его можно отнести и к справочному интерфейсу.
4.4 Информационный интерфейс пользователя
Информационный интерфейс, в отличие от интерфейса управления, является односторонним. Пользователь реагирует на сообщения об ошибках через интерфейс управления.
С точки зрения информатики, причиной появления ошибок в программных продуктах является нарушение правильности перевода информации из одного вида в другой на разных этапах разработки (см. гл. 6). Типы ошибок – самые разнообразные, что приводит к необходимости их классификации. С этого и начинается создание информационного интерфейса:
разработка системы классификации ошибок,
разработка способа кодирования ошибок;
разработка способа кодирования типов сообщений об ошибках.
В общем случае ошибки, возникающие в ходе выполнения пакета, можно классифицировать по уровню их серьезности. Например, можно различать:
терминальные ошибки, при возникновении которых дальнейшее выполнение заданий пользователя невозможно (испорчена информация о модели предметной области, потеряны значения данных и т.п.);
ошибки выполнения отдельных шагов задания пользователя, отдельных команд, не препятствующие дальнейшей работе с пакетом;
предупреждения о возможных погрешностях в работе пакета, например о недостижимости требуемой точности результатов.
Эти ошибки разбиваются по классам (например, «Ошибки ОС», «Ошибки вычислений», «Логические ошибки», «Ошибки ввода-вывода», «Неясности» и т.д.), по категориям внутри классов (например, внутри класса «Ошибки вычислений» можно выделить категории «Деление на нуль», «Слишком большое число», «Ошибка в вычислении индекса» и т.д.).
Кодирование информации об ошибках должно обеспечить сведения о месте возникновения ошибки (с точностью до программного модуля), возможной причине ошибки, действиях пользователя, при реализации которых возникла ошибка.
Все управляющие, обслуживающие и обрабатывающие модули пакета должны программироваться таким образом, чтобы при их выполнении не происходило аварийное завершение программы пакета. Обычно требуется, чтобы каждый программный модуль, при выполнении которого возможно возникновение ошибки или исключительной ситуации, неустранимой внутри этого модуля, возвращал в вызывающий модуль специальный код (код возврата), характеризующий возникшую ситуацию. Чаще всего код возврата представляется целым числом, и нулевое значение кода возврата соответствует успешному выполнению модуля.
При программировании модулей пакета желательно соблюдать правило обязательного контроля со стороны старших (вызывающих) модулей. Вызывающий модуль должен проверять код возврата вызываемого модуля и если код возврата ненулевой, то либо принимать меры для исправления ошибки, либо прекратить работу, передавая ненулевой код возврата старшему модулю.
При вызове подчиненных модулей следует фиксировать условный код (номер) вызываемого модуля в специально выделенной для этой цели глобальной переменной. Кроме тоге желательно, чтобы сохранялся код команды входного языка, выполняемой в данный момент, или код выполняемой функции пакета. При вводе-выводе данных, подготовке обращений к обрабатывающим модулям нужно фиксировать код обрабатываемого данного, при работе с которым возникла ошибка. В большинстве случаев перечисленной информации достаточно для идентификации ошибки или особой ситуации.
По способу формирования сообщений об ошибках можно выделить два типа сообщений:
сообщения с фиксированным текстом, не требующим переработки при выводе (рис. 4.8 и 4.9);
сообщения, формируемые из заготовленных частей текста, и содержащие параметрическую часть, в которой параметры должны заменяться кодом команды, кодом модуля или данного перед выводом сообщения (рис. 4.10).
Поскольку общее количество сообщений может быть значительным и среди них могут встречаться совпадающие тексты, целесообразно объединение всех сообщений в один или несколько массивов, хранящихся в файлах.
Обращение к информационному интерфейсу происходит из управляющих и обслуживающих модулей, когда вызываемый модуль возвращает ненулевой код возврата или обнаружена ошибка пользователя.
Рис. 4.8 Информационное сообщение с фиксированным текстом о невозможности продолжения работы (терминальная ошибка)
Рис. 4.9 Информационное сообщение с фиксированным текстом, не препятствующее дальнейшей работе с пакетом
Рис. 4.10 Информационное сообщение с параметрами
Для вывода каждого сообщения необходимо:
идентифицировать сообщение по коду команды, коду модуля, коду данного и коду возврата. Совокупность этих кодов образует уникальный ключ поиска в массиве (файле) текстов сообщений;
выбрать текст сообщения (заготовки сообщения) из массива (файла) по ключу поиска;
выполнить подстановку значений параметров;
установить код серьезности ошибки (он используется управляющей частью пакета для принятия решения о продолжении работы);
вывести сообщение об ошибке.
4.5 Интерфейс ввода-вывода
Данные для решения задач могут вводиться непосредственно пользователем пакета с клавиатуры, из заранее подготовленных файлов, со сканера, с дигитайзера.
Если в пакете всегда требуется вводить значения одних и тех же данных, запрос на ввод данных формируется пакетом, и пользователь отвечает на этот запрос. Например, в пакете межотраслевого баланса, рассмотренном в п. 2.3, к таким данным относится число отраслей n.
В пакетах более широкого назначения пользователь сам определяет значения каких данных он будет вводить, а какие данные требуется вычислить. В этом случае пользователь сначала вводит команду (или выбирает пункт меню) для активизации программы ввода данных, затем указывает данные, которые будет вводить, называя их имена или отмечая в предложенном ему списке данных (рис. 4.11).
Скалярные данные могут задаваться в форме оператора присваивания (имя-значение). Для ввода массива (вектора или матрицы) целесообразно сначала указать имя массива, а значения элементов массива вводить по запросам из пакета. Это позволяет избежать ошибок в числе элементов массива. Для ввода элементов массива может использоваться табличный способ, когда на экран выводится таблица с наименованиями строк и столбцов, и пользователь вводит значения элементов массива в клетки таблицы. При вводе данных с клавиатуры должна быть предусмотрена возможность редактирования значений вводимых данных до нажатия клавиши "Ввод".
Для используемых в пакете массивов целесообразно предусмотреть коррекцию элементов массива, т.е. возможность изменения значений отдельных элементов с сохранением остальной части массива.
Результаты выполнения ППП могут выводиться на экран дисплея, в файл, на печатающее устройство (принтер, плоттер).
Очевидно, что выводить можно только такие данные, которым присвоены значения в результате выполнения обрабатывающих модулей или при вводе данных. Необходимо предусмотреть возможность вывода данных как на различные типы устройств (одновременно или по выбору пользователя). Если выводимая информация не умещается на экране дисплея или печатной странице, нужно предусматривать оформление страниц выходного документа, а смену информации на экране производить по команде пользователя.
Рис. 4.11 Ввод данных по инвестициям в ППП Project Expert 6:
1 – интерфейс управления; 2 – интерфейс ввода
1
2
Дисплеи современных ПК допускают гибкое управление отображением информации на экране, в частности, разделение экрана на окна – области различного функционального назначения (рис. 4.12). В данном состоянии МПО одно из окон является активным.
Рис. 4.12 Рабочий стол ОС Windows 98 SE. Открыты ППП MathCAD (окно активно), Галактика 5.1, Project Expert 6
Интерфейс вывода должен взаимодействовать с интерфейсом управления, справочным интерфейсом, информационным интерфейсом и обеспечивать:
выделение окон и установку их атрибутов (форма, цвет, шрифт, границы);
сохранение информации, отображаемой в окне, при перекрытии окон;
восстановление информации в окне;
вывод информации в указанное окно;
распознавание, к какому окну относятся действия пользователя, и их отображения в соответствующем окне.
4.6 Внешний интерфейс
Внешний интерфейс должен обеспечить ввод данных из файлов или базы данных или вывод данных в файл (базу данных). Конкретные требования к внешнему интерфейсу определяются на основе анализа предполагаемых условий применения пакета и объемов обрабатываемых данных. Если используемые в пакете массивы данных содержат десятки или сотни чисел, их удобнее готовить и редактировать независимо от пакета и передавать в пакет через внешний интерфейс.
Наиболее просто решается задача внешнего интерфейса, если все внешние файлы представляются в текстовом виде, соответствующем требованиям форматного ввода-вывода используемого языка программирования, а каждый массив образует отдельный файл. В некоторых случаях группы связанных данных могут размещаться в одном файле. При этом должен соблюдаться фиксированный порядок следования данных или же перед каждой группой (массивом) данных должен располагаться специальный код-разделитель, уникальный для каждого данного (массива или скаляра).
К функциям внешнего интерфейса можно отнести и действия по сохранению состояния пакета, и данных при временном прерывании работы с пакетом, когда нужно обеспечить продолжение работы, начиная с сохраненного положения. В этом случае в файл или в несколько файлов должны выводиться: информация о составе и состоянии модели предметной области, значения управляющих переменных, необходимых для продолжения работы, значения данных из рабочей области памяти. Способ решения этой проблемы зависит от формы представления в памяти информации о модели предметной области, организации использования рабочей памяти, состава управляющих переменных. В некоторых случаях можно ограничиться сохранением данных из рабочей памяти (при статической модели предметной области).
Контрольные вопросы
Назовите основные функции обслуживающих модулей в ППП.
Охарактеризуйте виды интерфейса пользователя, различные по функциональному назначению.
Как происходит анализ ошибки, возникающей при работе ППП?
Перечислите способы организации справочного интерфейса.
Приведите примеры реализации интерфейса управления в известных вам ППП.
|