Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture8.doc
Скачиваний:
2
Добавлен:
27.11.2019
Размер:
100.35 Кб
Скачать

Вопрос 5.

Рис 8-2. Диаграмма состояний и переходов системы управления роботом

Два способа программной реализации КА:

  • По столбцам таблицы состояний и переходов / выходов: состояние - место в программе, переходы - CASE по входам

  • По строкам: состояние - флажок, прием входа - место в программе, далее CASE по флажкам для данного входа

Вопрос 5.

Модель расширенного КА: переход / выход зависит не только от входа, но и от некоторого условия - предиката над некоторыми переменными. Его функции переходов / выходов:

fs : X  S  P  S; fy : X  S  P  Y, где Р - множество предикатов.

Табличное представление этих функций - в виде набора строк вида:

Текущее состояние

s

Вход

x

Условие

p

Выход

y

Новое состояние

s

...

...

...

...

...

Вопрос 6.

Пример: модель работы АТС по обслуживанию абонента телефонного аппарата. КА-диаграмма с точки зрения абонента:

Рис. 8-3. Диаграмма состояний и переходов при телефонном разговоре

Это высокоуровневое описание может детализироваться, если использовать понятие макросостояния. Детализация состояния "Соединение" изображена на рис. 8-2.

Соединение

Набран

&абонент

свободен

Успех

Трубка

снята

Up

Успех

Up

Набор

номера

Вызов

(звонок)

Подключ.

ПНН к АК

Неуспех

Набран

&абонент

занят

Таймаут

Down

Неуспех

Рис. 8-4. Детализация макросостояния "Соединение"

ПНН - приемник набора номера, АК - абонентский комплект данного абонента; оба устройства находится на АТС. Количество ПНН гораздо меньше числа абонентов АТС, поэтому возможны отказы в обслуживании (станция занята - короткие гудки). Down -

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

Рис. 8-4 - это диаграмма расширенного КА, т.к. здесь есть переходы по входу "Номер набран" с предикатами "Абонент занят" и "Абонент свободен", вычисленными в состоянии "Набор номера". Макросостояния - средство структуризации диаграмм КА. Дуги, ведущие к нему, должны приходить к конкретному внутреннему "подсостоянию", а исходящие дуги могут исходить сразу из нескольких подсостояний (как в нашем примере "Down" объединяет выходы из всех подсостояний, что означает, что процесс соединения прекращается в любой момент, когда трубка кладется на рычаг). Имена входов / выходов внутри (черный шрифт) и снаружи макросостояния (красный шрифт)могут не совпадать.

Очевидно, что входами могут быть сигналы о событиях в других частях системы, которые

являются выходами других КА (например, "Трубка снята" - событие на другом конце

телефонного соединения). Т.е., в сложной системе поведение компонента вынужденно специфицируется в контексте поведения других компонентов.

Существует множество вариантов моделей КА, графических и текстовых нотаций (языков), которые поддерживаются различными СASE-системами. Например, язык SDL (System Definition Language), разработанный первоначально для описания проектов цифровых АТС, получил стандарт MKTT в 1968 и ISO - в 1985; язык ESTELLE (Extended State Transition Language) разработан для спецификации протоколов вычислительных сетей. Большинство таких языков служат для моделирования, но не для реализации ПП.

Очевидно удобство применения моделей КА при проектировании реактивных систем (промышленная и бытовая автоматика, встроенные системы реального времени) и интерактивных программ, к которым относится реализация UI. Задание 8.

В event-driven системах вход - это сигнал о событии. В message-driven системах сообщение – вход - сигнал о событии (приходе сообщения) вместе с самим сообщением.

При проектировании многих других приложений (AI, обработка транзакций, отказоустой-чивость и др.) модели КА также полезны. Близость с ОО-концепцией: объект имеет внут-реннее состояние (значения инкапсулированных переменных); входами служат вызовы его методов; выходы - результаты работы методов. В таком смысле КА модель применяется в языке UML. Интересно, что уже 25 лет назад в первом ОО языке SmallTalk была пред-ложена именно такая модель: объекты вызывают методы, посылая друг другу сообщения.

Соседние файлы в предмете Информатика