назад

Links: http://en.wikipedia.org/wiki/State_diagram

Диаграмма состояния

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

Есть много форм диаграмм состояния, которые отличаются и имеют различную семантику.

Направленный граф

Классическая форма диаграмм состояния для конечных управляющих автоматов - направленный граф со следующими элементами:

Состояние Q: конечный набор вершин, обычно представляемых кругами и помеченный уникальными символами указателя или словами вписанными в них (Booth (1967) p. 69, Hopcroft and Ullman (1979) p. 16, Sipser (2006) p. 34).

Входные символы Σ: конечный набор входных "символов" или указателей Σ (Booth, Hopcroft and Ullman, Sipser). Для детерминированных конечных управляющих автоматов (DFA), недетерминированных конечных управляющих автоматов (NFA), обобщенная недетерминированная конечная управляющий автомат (GNFA), или автомат Мура, вход показан на каждом краю, обычно около происходящего состояния. Для автомата Мили, вход и выход показаны на каждом краю, обычно показываются, отделено с разрезом "/":

Автомат Мили на входе и на выходе маркируются на краю (стрелки): "1/0" определяет символ "1" вызванный символ "0" как выход.

Выходные символы Z: конечный набор выходных "символов" или указателей (Booth, Hopcroft and Ullman, Sipser). Для автомата Мили, входные и выходные сигналы показаны на каждом краю как показано выше. Для автоматов Мура выходные сигналы состояния обычно пишутся в кругу состояния, отделенном от указателя состояния с разрезом "/".

Пример: Если состояние имеет множество выходных сигналов (например "a= motor counter-clockwise=1, b= caution light inactive=0"), диаграмма должна отразить это: например "q5/1,0" определяет состояние q5 с выходом a=1, b=0. Этот указатель будет написан в кругу состояния.

"Функция выхода ω" представляет картографию ω символов входа Σ × Q в выходном состояние Z (Booth).

Грани δ: представляют "переходы" между двумя состояниями которое вызваны входом (идентифицированным их символом, продвинутыми "гранями"). 'Грани' обычно рисуются как стрелка, направленные от существующего состояния к следующему состоянию. δ представляет картографию символов входа Σ ×, заявляет Q на символы выхода Z (Booth, Hopcroft and Ullman, Sipser).

Начальное состояние qo: (в примерах ниже не показано). Начальное состояние qo обычно представляется "стрелкой, указывающей на это из ниоткуда" (cf Sipser (2006) p. 34, Hopcroft and Ullman (1979) p. 16). В старой литературе (например: Booth (1969), McCluskey (1965), Hill and Peterson (1974)) начальное состояния не показываются и доложено быть выведено из текста.

Принятые состояния F: Если используется - собрание двойных кругов имело обыкновение определять, принятое состояния (Hopcroft and Ullman, Sipser). Иногда принимающаяся функция состояния как "Финал" (остановка, пойманная в ловушку) состояния (cf Hopcroft and Ullman (1979) Figure 2.15, p. 33).


Примеры:

DFA, NFA, GNFA, или автомат Мура

S1 и S2 - состояния, и S1 - принимающие состояние. Каждый грани отмечены входом.

dfa_moore_example.png

Автомат Мил

S0, S1, и S2 - состояния. Каждая грань помечена как "j / k", где j - вход, и k - выход.

mealy_machine_state_diagram.png

Harel statechart

Harel statecharts (открытый в 1987 Дэвидом Харэлем) получает некоторое более широко распространенное использование, так как(с тех пор как) вариант стал частью UML. Тип диаграммы позволяет моделировать суперсостояния, параллельные государственные диаграммы и например моделировать действия как часть состояния.

Классические диаграммы состояния являются так называемыми "или" диаграммы, потому что автомат может только быть в одном состоянии или в другом. С Harel statecharts возможно моделировать "и" автоматы, где автоматы находится в двух или больше состояниях в одно и то же время. Это должно частично к моделированию суперсостояний и частично к моделированию параллельных автоматов.

Диаграмма состояния UML

Example UML State diagram.
Пример диаграмма состояния UML.

Unified Modeling Language (UML) (или SysML) диаграмма состояния - по существу Harel statechart со стандартизированным примечанием, которое может описать много вещей, от компьютерных программ до бизнес-процессов. Следующее - основные письменные элементы, которые могут использоваться, чтобы составить диаграмму:

  • Заполненный круг, указывая на начальное состояние
  • Полый круг, содержащий меньший заполненный круг, указывая заключительное состояние (если любое)
  • Округленный Прямоугольник, обозначая состояние. Вершина прямоугольника содержит название состояния. Может содержать горизонтальную линию в середине, ниже которой действия, которые сделаны в том состоянии
  • Стрелка, обозначает переход. Название случая события (если любое) порождение этого перехода маркирует тело стрелки. Выражение охраны может быть добавлено, приложено в скобках ([]) обозначение, что это выражение должно быть верным для перехода иметь место. Если действие выполнено в течение этого перехода, это добавлено к ярлыку после "/". eventName[guardExpression]/action
  • Толстая горизонтальная линия любой x>1 вступающая  линия и 1 линией покидает  или с 1 входящей линией и x>1 линией покидает. Они обозначают соединение/вилку, соответственно.