Добрый день!
Кто-нибудь, вообще, сталкивался с сабжем? Тут в у меня в ТЗ есть требование: описать пользовательский интерфейс с помощью транзитивных сетей , а я ни в интернете, ни в книгах ничего толкового не нашел.
Подкиньте, пожалуйста, материальчик. Какие книги глянуть, может в интернете есть что-нибудь толковое? И есть ли ПО для построения таких сетей?
Заранее благодарен.
Описания интерфейса пользователя с помощью транзитивных сетей
126. Проектирование диалога с пользователем: графическое представление диалога
При проектировании диалога обычно определяется состояние системы. Состояние – это устойчивое положение системы, в котором пользователь может выполнять определенные действия. Состояние системы характеризуется контекстом. Контекст – это набор визуальных объектов, доступных пользователю в соответствующем состоянии системы. Изменения контекста отображаются на экране.
Для пользователя приложение имеет вид формы с визуальными объектами. Пользователь взаимодействует с объектами путем порождения событий. Формы преобразуют события во входные сигналы модулей, т.е. не любое событие является входным сигналом.
Модуль логики диалога взаимодействует с прикладным интерфейсом. В качестве прикладного интерфейса для систем БД могут выступать ODBC или DBE. А в качестве команд выступают update, delete, create и т.п. В ответ на команду прикладной интерфейс генерирует ответный сигнал. Одной из разновидностей этого сигнала является сообщение об ошибке.
Сигнал от прикладного интерфейса и входные сигналы пользователя переводят модуль логики диалога из одного состояния в другое, изменяя при этом контекст системы.
Формы и объекты могут взаимодействовать с прикладным интерфейсом, минуя модуль логики диалога, если это взаимодействие не должно изменять состояние системы, например, объект класса TDbGrid представляет данные, используя прикладной интерфейс, но не затрагивает модуль логики диалога.
Для описания диалога с пользователем используются 2 базовые нотации – графическая и текстовая. В 1ом случае логика диалога представляется в виде диаграмм, во 2ом – на специальном языке.
Транзитивная сеть
Одним из наиболее простых способов отражения логики диалога является простая транзитивная сеть или сеть состояний и переходов. При таком подходе состояния системы отображаются в виде окружностей и соединяются дугами. Сверху дуги именуются согласно входным сигналам или обратной связи, снизу – в зависимости от действия, к-ое система должна выполнить при переходе из одного состояния в другое по определенному входному сигналу.
Среди состояний выделяют начальное (или стартовое), в к-ом система находится в начале работы. Это состояние обозначается входной дугой, не имеющей источника. Начальное состояние в с-ме м.б. одно. Кроме того, в транзитивной сети выделяются финальные состояния, попадая в которые система завершает свою работу. Таких состояний м.б. несколько. Финальные состояния выделяются двойной обводкой.
Реализовать транзитивную сеть можно с использованием конечного автомата, к-ый описывается семёркой: H(Q,∑,P,δ,γ,q0,F), где Q – множество состояний; ∑ - множество входных сигналов; P – множество команд; δ – ф-ция переходов опре деляет в какое состояние должна перейти с-ма из текущего при определенном входном сигнале; γ – ф-ция прикладных действий (какое действие необходимо осуществить); q0 – начальное состояние с-мы (q0Q); F – множество конечных состояний (FQ).
Часто транзитивная сеть приложений может включать большое число состояний и переходов. В этом случае сеть можно разбить на подсети. Каждая группа или подсеть отображается на общей схеме как единое целое. После чего отдельно описываются диаграммы, представляющие эти подсети.
Достоинства простой транзитивной сети:
1. Точное формальное описание диалога
2. Диалог реализуется в простой табличной форме
3. Такая реализация диалога легко редактируется и дополняется
Недостатки простой транзитивной сети:
1. Возможность неэффективного использования памяти, т.к. таблицы могут содержать большое количество однотипной информации.
2. Система помнит только одно состояние, т.е. нельзя прервать обычный порядок работы диалога, выполнить какие-либо действия и вернуться к состоянию, предшествующему нарушению порядка.
Рекурсивно-транзитивная сеть
Основным признаком необходимости построения такой сети является: 1 Выделение подсети, обладающей всеми характеристиками основной сети; 2 Переход в подсеть из основной сети может осуществляться из нескольких состояний, а выход из подсети в основную сеть должен производиться в состояние, явившееся точкой входа в подсеть.
Рекурсия в данном случае не всегда подразумевает вызов сети самой из себя. Чаще всего это другая смысловая подсеть.
Реализуется такой диалог с помощью стекового конечного автомата. В стек заносится состояние при входе в подсеть, а при выходе извлекается из него.
Часто в рекурсивно-транзитивных сетях сущ-ет специальный сигнал – выход из рекурсии. При его получении подсеть завершает свою работу и из стека извлекается состояние, в к-ое и попадаем.
Проектирование конкурентного диалога.
Работу транзитивной сети можно рассматривать как передвижение единственной метки из одного состояния в другое. То есть, система в каждый момент времени находится в единственном состоянии. Поэтому недостатком использования сетей переходов, как простых, так и рекурсивных, являются слабые возможности отражения конкурентного диалога. Такой диалог характерен для систем, которые могут находиться более чем в одном состоянии одновременно. Наиболее часто конкурентный диалог возникает при проектировании различных настроек.
Альтернативным решением является использование для проектирование конкурентного диалога сетей Петри.
Сети Петри.
Этот механизм изначально предназначен для описания конкурентного диалога, и неформально его можно представить как перемещение множества меток по графу состояний.
Основные элементы сети Петри: 1) положения (аналогичны состояниям), обозначаются окружностями, 2) Переходы, обозначаемые прямоугольниками. 3) Воздействие пользователя, отражаемое эллипсом. Окружности и эллипсы могут содержать метки. Переходы имеют входные дуги из окружностей и эллипсов и выходные к окружностям.
Правило работы: Если все вершины на входных дугах перехода содержат метки, то переход выполняется (выстреливает), и все метки перемещаются в вершины выходных дуг сети.
Спасибо, anonymous.ru, вроде кое-что прояснилось по сути... Жалко примеров нет