ЛЕКЦИЯ 5 ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ СПРАВОЧНЫЙ ИНТЕРФЕЙС ИНТЕРФЕЙС УПРАВЛЕНИЯ ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС ИНТЕРФЕЙС ВВОДА-ВЫВОДА ВНЕШНИЙ ИНТЕРФЕЙС
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 Связь пользователя с программами пакета можно представить как обмен сообщениями: либо пользователь передает в пакет некоторый запрос и получает на него ответ, либо запрос формируется в пакете, а от пользователя ожидается ответ.
В современных ЭВМ для ввода данных пользователем могут применяться клавиатура терминала, световое перо, устройства графического ввода. ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 Для ведения такого диалога пользователю должны быть предоставлены средства ввода сообщений, а сообщения, формируемые пакетом, должны представляться в форме, доступной для восприятия пользователем.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 Дисплеи современных ЭВМ допускают гибкое управление отображением информации на экране, в том числе разделение экрана на области различного функционального назначения.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 Выделенную прямоугольную область экрана обычно называют окном. 4 Имеются специальные пакеты программ для управления окнами. 4 Для форматирования экрана с выделением окон могут применяться библиотечные процедуры и функции систем Турбо Паскаль и Турбо Си.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 Итак, можно выделить четыре группы функций интерфейса с пользователем: справочную, по управлению, по вводу-выводу данных и информационную. 4 Все эти функции предполагают использование клавиатуры и экрана дисплея, и возникает проблема организации совместного использования одних и тех же устройств для разных функций.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 В простых пакетах можно ограничиться применением библиотечных программ ввода- вывода используемого языка программирования, которые обычно обеспечивают последовательное заполнение экрана и продвижение информации на экране, когда все строки заполнены. 4 В этом случае операторы ввода-вывода могут непосредственно включаться в программные модули, реализующие соответствующие функции.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 Однако вариант последовательного использования экрана для различных функций не всегда удобен для пользователя, например, при вводе управляющей информации может быть желательным видеть на экране ранее полученную справку.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 При необходимости длительного сохранения на экране некоторой информации независимо от выполнения других функций требуется форматирование экрана путем выделения функциональных окон. 4 При этом доступными для ввода информации могут быть одновременно 1-2 окна, для управления окнами могут использоваться закрепленные за ними служебные клавиши.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 При форматировании экрана в пакет может включаться модуль управления интерфейсом пользователя (монитор интерфейса)
ОСОБЕННОСТИ РЕАЛИЗАЦИИ ИНТЕРФЕЙСА С ПОЛЬЗОВАТЕЛЕМ 4 монитор интерфейса обеспечивает: – выделение окон и установку их атрибутов; – сохранение информации, отображаемой в окне, при перекрытии окон; – восстановление информации в окне; – вывод информации в указанное окно; – распознавание, к какому окну относятся действия пользователя, и их отображение в соответствующем окне.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ Справочный интерфейс предназначен для вывода справок о предметной области пакета, составе и состоянии модели предметной области, допустимых действиях пользователя в различных состояниях пакета.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ 4 Если тексты справок о предметной области, о допустимых действиях пользователя могут быть заготовлены заранее, то справки о состоянии модели предметной области должны формироваться заново в каждом состоянии модели.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ 4 Отдельные справки, особенно содержащие тексты, занимающие значительную часть экрана, целесообразно выводить только по запросу пользователя, передаваемому через интерфейс управления.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ 4 Короткие справки-подсказки могут выводиться при определенных состояниях модели предметной области или вместе с приглашением пользователю к выполнению управляющих действий.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ 4 Конкретный набор справочных функций определяется особенностями задач, решаемых пакетом, типом модели предметной области и способом внешнего управления пакетом.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ 4 В частности, при проблемно- ориентированном внешнем управлении желательно иметь возможность получать справку- объяснение о способе, которым вычислены в пакете искомые данные.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ Таким образом в пакете могут быть предусмотрены справки: –о данных, определенных в модели, с указанием типа данного, его физического или экономического смысла; – о предусмотренных функциональных связях, т.е. отдельных задачах, решаемых пакетом, в том числе о входных и выходных данных этих задач; –о данных, имеющих конкретные значения в данном состоянии пакета; –о командах, составляющих входной язык пакета.
СПРАВОЧНЫЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
4 Перечисленные справки могут быть построены с различной степенью подробности. Например, может быть предусмотрена справка о полном списке данных (задач, команд) или полная справка об отдельном данном (задаче, команде).
ИНТЕРФЕЙС УПРАВЛЕНИЯ 4 Интерфейс управления предназначен для ввода управляющей информации пользователем пакета. На модули этого интерфейса целесообразно возложить и первичный (лексический) контроль вводимой информации, чтобы исключить явные ошибки пользователя, в том числе случайные нажатия клавиш. 4 Технические приемы реализации интерфейса зависят от типа используемого входного языка.
ИНТЕРФЕЙС УПРАВЛЕНИЯ 4 Наиболее просто организуется интерфейс при входном языке типа меню. 4 Вариант модуля интерфейса может быть построен по следующему алгоритму:
ИНТЕРФЕЙС УПРАВЛЕНИЯ 4 Активизировать функциональное окно для вывода меню, например выделить его определенным цветом. 4 Вывести в окно тексты пунктов меню. 4 Вывести приглашение к выбору одного из пунктов меню. 4 Ввести ответ пользователя. 4 Если ответ неверный, вывести сообщение об ошибке и вернуться ко второму пункту. 4 Выход из модуля с передачей вызывающему модулю значения выбора пользователя.
ИНТЕРФЕЙС УПРАВЛЕНИЯ 4 В рассмотренном алгоритме предполагается, что пользователь вводит номер выбранного пункта. 4 Можно упростить действия пользователя, если предоставить ему возможность непосредственно указывать выбранный пункт меню.
ИНТЕРФЕЙС УПРАВЛЕНИЯ 4 Для этого один из пунктов меню (обычно первый) выделяется особым цветом, подчеркиванием или заключением в рамку. 4 Пользователь указывает свой выбор, используя клавишу перемещения курсора вверх-вниз, а сделав выбор, нажимает клавишу "Ввод". 4 В этом варианте работы можно исключить возможные ошибки пользователя, если интерфейсный модуль не будет реагировать на нажатие остальных клавиш, пока пользователь не сделает свой выбор.
ИНТЕРФЕЙС УПРАВЛЕНИЯ 4 Несколько сложнее строится модуль интерфейса управления для входного языка командного типа. 4 В этом случае фактически приходится решать две задачи: 0 ввод кода команды 0 и ввод операндов команды. 4 Поскольку возможны команды без операндов, с фиксированным числом операндов и с переменным числом операндов, целесообразно предварительно сгруппировать команды по числу и способам задания операндов.
ИНТЕРФЕЙС УПРАВЛЕНИЯ 4 В большинстве случаев при разработке интерфейса управления приходится искать разумный компромисс между сложностью модулей интерфейса и простотой работы пользователя.
ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС 4 Информационный интерфейс предназначен для вывода сообщений об ошибках и особых ситуациях, возникающих в процессе работы пакета. 4 Поскольку эти сообщения возникают в случайные моменты времени и нежелательно, чтобы они портили (перекрывали) уже имеющуюся на экране информацию, для информационных сообщений целесообразно выделить постоянную область экрана, например две нижние строки.
ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС В общем случае ошибки, возникающие в ходе выполнения пакета, можно классифицировать по уровню их серьезности. 4 Информационный интерфейс в отличие от интерфейса управления является односторонним. 4 Пользователь реагирует на сообщения об ошибках через интерфейс управления.
ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС 4 Например, можно различать: –терминальные ошибки, при возникновении которых дальнейшее выполнение заданий пользователя невозможно испорчена информация о модели предметной области, потеряны значения данных и т.п.); –ошибки выполнения отдельных шагов задания пользователя, отдельных команд, не препятствующие дальнейшей работе с пакетом; –предупреждения о возможных погрешностях в работе пакета, например о недостижимости требуемой точности результатов.
ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС
4 Обращение к информационному интерфейсу происходит из управляющих и обслуживающих модулей, когда вызываемый модуль возвращает ненулевой код возврата или обнаружена ошибка пользователя.
ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС 4 Для вывода каждого сообщения необходимо: –идентифицировать сообщение по коду команды (функции), коду модуля, коду данного и коду возврата. Совокупность этих кодов образует уникальный ключ поиска в массиве (файле) текстов сообщений;
ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС –выбрать текст сообщения (заготовки сообщения) из массива (файла) по ключу поиска; выполнить подстановку значений параметров;
ИНФОРМАЦИОННЫЙ ИНТЕРФЕЙС – установить код серьезности ошибки ( Код серьезности ошибки должен использоваться управляющей частью пакета для принятия решения о продолжении работы) ; – вывести сообщение об ошибке
ИНТЕРФЕЙС ВВОДА-ВЫВОДА 4 Данные для решения задач могут вводиться из заранее подготовленных файлов или же непосредственно пользователем пакета с клавиатуры.
ИНТЕРФЕЙС ВВОДА-ВЫВОДА 4 Если в пакете всегда требуется вводить значения одних и тех же данных, запрос на ввод данных формируется пакетом, и пользователь, отвечая на этот запрос, должен вводить данные. –Такая ситуация типична, например, для пакета линейного программирования, когда требуется решать новую задачу, или для пакета межотраслевого баланса
ИНТЕРФЕЙС ВВОДА-ВЫВОДА 4 В пакетах более широкого назначения пользователь сам определяет, значения каких данных он будет вводить, а какие данные требуется вычислить.
ИНТЕРФЕЙС ВВОДА-ВЫВОДА 4 В этом случае пользователь сначала вводит команду (выбирает пункт меню) для активизации программ ввода данных, затем указывает данные, которые будет вводить, называя их имена или отмечая в предложенном ему списке данных.
ВНЕШНИЙ ИНТЕРФЕЙС 4 Внешний интерфейс должен обеспечить ввод данных из файлов или базы данных или вывод данных в файл (базу данных). 4 Конкретные требования к внешнему интерфейсу определяются на основе анализа предполагаемых условий применения пакета и объемов обрабатываемых данных. 4 Если используемые в пакете массивы содержат десятки или сотни чисел, их удобнее готовить и редактировать независимо от пакета и передавать в пакет через внешний интерфейс.
ВНЕШНИЙ ИНТЕРФЕЙС 4 К функциям внешнего интерфейса можно отнести и действия по сохранению состояния пакета и данных при временном прерывании работы с пакетом, когда нужно обеспечить продолжение работы, начиная с сохраненного состояния. 4 В этом случае в файл или в несколько файлов должны выводиться информация о составе и состоянии модели предметной области, значения управляющих переменных, необходимых для продолжения работы, значения данных из рабочей области памяти.
ВНЕШНИЙ ИНТЕРФЕЙС 4 Способ решения этой проблемы зависит от формы представлении в памяти информации о модели предметной области, организации использования рабочей памяти, состава управляющих переменных. 4 В некоторых случаях можно ограничиться сохранением данных из рабочей памяти (при статистической модели предметной области).
ВНЕШНИЙ ИНТЕРФЕЙС 4 Наиболее просто решается задача внешнего интерфейса, если все внешние файлы представляются в текстовом виде, соответствующем требованиям форматного ввода-вывода используемого языка программирования, а каждый массив образует отдельный файл.
ВНЕШНИЙ ИНТЕРФЕЙС 4 В некоторых случаях группы связанных данных могут размещаться в одном файле. 4 При этом должен соблюдаться фиксированный порядок следования данных или же перед каждой группой (массивом) данных должен располагаться специальный код-разделитель, уникальный для каждого данного (массива или скаляра).