Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АИС методичка.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.18 Mб
Скачать

4.2. Простая транзитивная сеть

Одним из наиболее простых способов отражения логики диалога является простая транзитивная сеть (STN – State Transition Network). Это графический способ представления диалога.

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

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

Рис. 4.2. Макет формы

Форма имеет 2 режима работы:

  1. Режим таблицы (Первый пункт меню). В Edit1 вводится имя таблицы, а при нажатии «ОК» происходит попытка связи с БД. Если попытка успешна, то данные можно редактировать в объекте DBGrid1.

  2. Режим запроса. При помощи двух TEdit и двух TListBox формируется текст запроса при этом Edit1 для ввода имени таблицы доступен только вначале. После нажатия «Далее» пользователь работает со списком ListBox1, показывающим поля таблицы. По двойному щелчку добавляются поля из списка в раздел select запроса (Memo1). Для начала формирования раздела where повторно нажимается кнопка «Далее». После нажатия «Далее» поля из ListBox1 добавляются уже в раздел where для первого условия. Математические операции сравнения берутся из ListBox2, значения, с которыми сравниваются поля – из Edit2. После выбора поля для условия нажимается «Далее», выбирается операция для условия, после следующего нажатия «Далее» - параметр сравнения с полем. Все это переносится в Memo1, причем после этого можно сформировать другие условия (ListBox2 содержит пункты and и or). Далее схема повторяется. После нажатия «ОК» выполняется запрос, и его результат можно просмотреть в DBGrid1. Основная проблема: какие объекты доступны в тот или иной момент времени, и какие действия может выполнить пользователь.

На рисунке 4.3. представлен граф переходов:

Рис. 4.3. Описание логики диалога с пользователем

Входное состояние на диаграмме напрямую не отображается. На графе существует переход «извне» в первое состояние. Состояние finish необходимо для указания точки выхода из приложения. Такие вершины содержатся в графе логики диалога всегда независимо от количества и смысла других состояний.

Достоинства простой транзитивной сети:

  1. точное формальное описание диалога;

  2. диалог реализуется в простой табличной форме;

  3. реализация диалога легко редактируется и дополняется.

Недостатки простой транзитивной сети:

  1. Возможность неэффективного использования памяти, так как таблицы могут содержать много однотипной информации. Если граф имеет вид, как на рисунке 4.4, то реализация его в виде конечного автомата может оказаться нецелесообразной, если вид как на рисунке 4.5, то реализация эффективна.

Рис. 4.4. Пример графа

Рис. 4.5. Пример графа

  1. Система помнит только одно состояние, то есть нельзя прервать обычный порядок работы диалога, выполнить какие-то действия и вернуться к состоянию, предшествующему нарушению порядка.

Для того, что бы избежать двух этих недостатков диалог проектируют, используя рекурсивную транзитивную сеть.