Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование_МПС_лек12

.pdf
Скачиваний:
12
Добавлен:
15.02.2015
Размер:
725.47 Кб
Скачать

1

12 КОНЕЧНЫЕ АВТОМАТЫ (лекция 3)

12.1 Рекомендации по разработке диаграмм состояний

Приведенные ниже рекомендации относятся как к плоским, так и к иерархическим диаграммам.

а) Имя состояния должно отражать такую ситуацию и такой промежуток времени, когда в системе что-то происходит. Например, «Начало» или

«Начальное», «Лифт движется».

б) В пределах одной диаграммы имена состояний должны отличаться.

Наличие двух состояний с одним и тем же именем приводит к неоднозначности.

в) Плоская диаграмма в любой момент времени находится только в одном состоянии. Два состояния, например «Лифт движется» и «Лифт на этаже», не могут быть активны одновременно.

г) Не следует путать события и действия. Событие – это причина перехода состояний, а действие – его следствие.

д) Событие происходит в некоторый момент времени. Имя события должно пояснить, что именно произошло, например: «Вызов вверх», «Дверь закрылась».

е) Действие – это команда. Например «Остановить», «Закрыть дверь», «Поддерживать скорость».

ж) С одним переходом состояний может быть ассоциировано несколько действий. Концептуально все эти действия выполняются одновременно,

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

з) Условие – это булево значение. Если переход помечен конструкцией

событие [условие], то он происходит только тогда, когда в момент

2

возникновения события условие истинно. Условие остается истинным на протяжении конечного промежутка времени. Переход «Разогнаться

[Торможения нет]» предназначен специально для того, чтобы предотвратить смену состояния в случае, если в момент возникновения события «Разогнаться» нажата педаль тормоза.

12.2 Построение диаграммы состояний на основе прецедентов

Чтобы построить диаграмму состояний на основе прецедента, нужно начать с наиболее типичного сценария, описываемого прецедентом, т.е. с

важнейшего пути. В идеале это должен быть такой путь, который соответствует самой распространенной последовательности взаимодействия между актером

(или актерами) и системой. Затем рассматриваются случаи возникновения внешних событий в данном сценарии. В каждом случае входное событие вызывает переход в новое состояние, которому присваивается имя,

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

Сначала строится плоская модель, которая отражает последовательность событий, описанную в сценарии. Все состояния, изображенные на диаграмме,

должны быть видны извне, следовательно, актер должен знать о каждом состоянии. По сути дела, состояние – это не что иное, как представление порядка действий, предпринимаемых актером прямо или косвенно.

12.3 Пример разработки диаграммы состояний на основе прецедента

Чтобы показать, как строится диаграмма состояний на основе прецедента,

рассмотрим прецедент «Управление скоростью», который описывает

3

последовательность взаимодействий между актером (водителем) и системой.

Затем синтезируем диаграмму состояний на основе этого прецедента.

12.3.1 Прецедент «Управление скоростью»

4

12.3.2 Разработка диаграммы состояний

5

6

12.3.3 Рассмотрение альтернативных внешних событий

7

12.3.4 Разработка иерархической диаграммы состояний

8

9