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

Диалог между пользователем и программным приложением (информационной системой) можно определить, как процесс обмена информацией между программным приложением (информационной системой) и пользователем, проводимый с помощью интерактивного терминала и по определенным правилам [19].

Развитие диалога можно рассматривать как последовательность переходов от одного состояния к другому. Диалог может находиться в состоянии ожидания ввода от пользователя и может переходить в одно из нескольких возможных состояний в зависимости от характера принятой информации. В соответствии с этим диалог пользователя с программным приложением может быть представлен сетью переходов или диаграммой состояний (рис. 35).

Сеть переходов. Если диалог находится в состоянии N1 и условие «а» удовлетворяется, то диалог переходит в состояние N2

Рисунок 35 Сеть переходов. Если диалог находится в состоянии N1 и условие «а» удовлетворяется, то диалог переходит в состояние N2

Каждая вершина графа помечена знаком N. В каждой вершине графа находится состояние диалога. Вершина графа представляет собой точку, в которой диалог выводит сообщение пользователю или требует входного сообщения от пользователя. Вершины соединяются направленными дугами. Метки на дуге определяет условие, при выполнении которого происходит переход к другой вершине. Несколько дуг могут соединять две вершины. Это значит, что переход от одной вершины к другой может произойти при выполнении нескольких условий [19]:

  • 1. Существование более чем одной дуги между одной и той же парой вершин в исходной сети означает наличие синонимов. В агрегированной сети эта пара вершин связывается единственной дугой с множественной меткой а, b (рис. 36), обозначающей, что вершины а и b являются синонимами.
  • 2. Если происходит перехода по умолчанию между вершинами, то такой переход обозначается подчеркиванием метки дуги в агрегированной сети (рис. 36).
  • 3. Вершины, представляющие вспомогательные сообщения и сообщения об ошибках, в агрегированной сети не отображаются как отдельные вершины (рис. 36). Предполагается, что они автоматически доступны в любой вершине сети переходов.
Свертка сети переходов

Рисунок 36 Свертка сети переходов

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

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

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

Пример сети переходов для диалога ( в вершинах 1р, 2р, 6 пользователю предоставляется меню; в вершинах 1т, 2т происходит безусловный переход)

Рисунок 37 Пример сети переходов для диалога ( в вершинах 1р, 2р, 6 пользователю предоставляется меню; в вершинах 1т, 2т происходит безусловный переход)

В сетях перехода существуют три типа вершин [19]:

  • 1. Вершины, в которых выводится сообщение пользователю с запросом на ввод. Передача на соседнюю вершину зависит от контекста введенного сообщения. Типичным примером такой вершины является вершина 1р на рис. 37, которая запрашивает входное управляющее сообщение, такое, как выбор варианта.
  • 2. Вершины, в которых выводится сообщение пользователю без запроса на входное сообщение. Следует автоматическая передача на соседнюю вершину. Типичным примером является вершина 1т на рис. 37, соответствующая появлению на экране формы или меню.
  • 3. Вершина, в которой пользователю выводится сообщение с запросом на ввод, после которого осуществляется безусловный переход на соседнюю вершину. Типичным примером является вершина 2т на рис. 37.

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

Пример структуры управления в вершине

Рисунок 38 Пример структуры управления в вершине

Структура управления устанавливает соответствие между назначением следующей вершины и каждым элементом из набора условий. В структуре управления существует запись ИНАЧЕ, определяющая переход, который произойдет в случае, если ни одно из условий не удовлетворено. Такой случай может произойти в случае ошибки диалога, а также при безусловном переходе. На рис. 39 проиллюстрировано содержание структуры управления диалогом в случае перехода с выполнением условий и в случае безусловного перехода.

Управление переключения для двух различных типов вершин

Рисунок 39 Управление переключения для двух различных типов вершин

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >