Смекни!
smekni.com

1 понятие и классификация пакетов прикладных (стр. 14 из 15)

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

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

Использование командной строки для ввода управляющей информации показано в среде сервисной программы управления файлами и архивами FAR v.1.65 (Е. Рошаль) на примере программы архивации ARJ32 (ARJ Software) (рис. 4.4).

В командной строке, начинающейся с указания места нахождения C:\Program Files, вслед за именем программы arj32 задаются (через пробелы):

1) имя команды: а («добавить файлы или каталоги в архив»);

2) операнды команды: v1200 («создавать многотомный архив с объемом каждого тома 1200 Кбайт»); archive (имя создаваемого архива); («добавлять каталоги»); bp chat (имена каталогов, которые нужно добавить в архив; они тоже разделяются пробелом).

Кстати, если в командной строке задать только имя программы arj32, то на экране появится справочный интерфейс программы.


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

4.3 Справочный интерфейс пользователя

Одним из показателей качества программного изделия является наличие хорошо проработанного справочного интерфейса, как одного из видов пользовательской документации, представляемой в электронном виде.

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

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

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

1. Выбор пункта Главного меню Справка (Help), который дублируется нажатием кнопки F1 на клавиатуре (рис. 4.5 а). Подпункты этого меню могут содержать:

1)


справку по программному продукту, структура которой изображена на рис. 4.6; для поиска нужной информации используются гипертекстовые ссылки, размещаемые в тексте справки (поле справа), Указатель и Мастер ответов, ведущие поиск по заданным пользователем ключевым словам;

2)


вызов «интеллектуального помощника» (рис. 4.5 б), который, в принципе, обеспечивает те же функции, что и Справка, только в более забавном виде (если вам не нравится игривая Кошка, можете сменить помощника, заказав, например, мудрого Эйнштейна);

3) контекстную справку, вызываемую щелчком мыши по знаку «?» (рис. 4.5 в); указав им интересующий параметр, можно получить справку по этому параметру;

4) соединение с Web-узлом разработчика пакета, обеспечивающую онлайновую справку и поддержку;

5) вызов Руководства пользователя (Manual) или Обучающего пособия (Tutorial), выполненных либо в виде файла с расширением .pdf (для его чтения требуется программа Adobe Acrobat Reader), либо в виде интерактивного мультимедийного учебника;

6) краткие сведения о разработчиках продукта, его версии и годе выхода в свет.

Пункт меню Справка может располагаться не только в главном меню, но и в любом месте интерфейса управления (рис. 4.7).

2. Всплывающие подсказки, появляющиеся у объектов (кнопок, строчек меню) и поясняющие их назначение.


3. Контекстно-зависимое меню, вызываемое нажатием правой кнопки мыши или специальной клавишей на 104/108 кн. клавиатуре. Хотя это меню является частью интерфейса управления, но оно информирует пользователя о возможных действиях в данном состоянии МПО пакета (или, иными словами, в данном контексте использования ППП), поэтому его можно отнести и к справочному интерфейсу.

4.4 Информационный интерфейс пользователя

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

С точки зрения информатики, причиной появления ошибок в программных продуктах является нарушение правильности перевода информации из одного вида в другой на разных этапах разработки (см. гл. 6). Типы ошибок – самые разнообразные, что приводит к необходимости их классификации. С этого и начинается создание информационного интерфейса:

1) разработка системы классификации ошибок,

2) разработка способа кодирования ошибок;

3) разработка способа кодирования типов сообщений об ошибках.

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

· терминальные ошибки, при возникновении которых дальнейшее выполнение заданий пользователя невозможно (испорчена информация о модели предметной области, потеряны значения данных и т.п.);

· ошибки выполнения отдельных шагов задания пользователя, отдельных команд, не препятствующие дальнейшей работе с пакетом;

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

Эти ошибки разбиваются по классам (например, «Ошибки ОС», «Ошибки вычислений», «Логические ошибки», «Ошибки ввода-вывода», «Неясности» и т.д.), по категориям внутри классов (например, внутри класса «Ошибки вычислений» можно выделить категории «Деление на нуль», «Слишком большое число», «Ошибка в вычислении индекса» и т.д.).

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

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

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

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

По способу формирования сообщений об ошибках можно выделить два типа сообщений:

· сообщения с фиксированным текстом, не требующим переработки при выводе (рис. 4.8 и 4.9);

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

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

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


Для вывода каждого сообщения необходимо:

1) идентифицировать сообщение по коду команды, коду модуля, коду данного и коду возврата. Совокупность этих кодов образует уникальный ключ поиска в массиве (файле) текстов сообщений;

2) выбрать текст сообщения (заготовки сообщения) из массива (файла) по ключу поиска;