Специальные состояния.

Начальное состояние (initial state) – это специальное состояние, соответствующее ситуации, когда машина состояний еще не работает. На диаграмме начальное состояние изображается в виде закрашенного кружка. Начальное состояние не имеет таких составляющих, как действия на входе, выходе и внутренняя активность, но оно обязано иметь исходящий переход, ведущий в то состояние, которое будет являться по настоящему первым состоянием при работе машины состояний. Исходящий переход из начального состояния не может иметь события перехода, но может иметь сторожевое условие. В последнем случае должны быть определены несколько переходов из начального состояния, причем один из них обязательно должен срабатывать. Начальное состояние может иметь действие на переходе — это действие выполняется до начала работы машины состояний.

Заключительное состояние (final state) – это специальное состояние, соответствующее ситуации, когда машина состояний уже не работает. На диаграмме заключительное состояние изображается в виде закрашенного кружка, который обведен дополнительной окружностью. Подобно начальному состоянию, заключительное состояние не имеет таких составляющих, как действия на входе, выходе и внутренняя активность, но имеет входящий переход, ведущий из того состояния, которое является последним состоянием в данном сеансе работы конечного автомата. Работа конечного автомата может завершаться несколькими различными способами. Это соответствует общепринятой программистской практике: программа может иметь вариант нормального завершения и несколько вариантов завершения при возникновении исключительной ситуации или при ошибке.

Историческое состояние может использоваться во вложенной машине состояний внутри составного состояния. При первом запуске машины состояний историческое состояние означает в точности тоже, что и начальное: оно указывает на состояние, в котором находится машина в начале работы. Если в данной машине состояний используется историческое состояние, то при выходе из объемлющего составного состояния запоминается то состояние, в котором находилась вложенная машина перед выходом. При повторном входе в данное составное состояние в качестве текущего состояния восстанавливается то запомненное состояние, в котором машина находилась при выходе. Проще говоря, историческое состояние заставляет автомат помнить, в каком состоянии его прервали в прошлый раз и "продолжать начатое".