Дважды связанный список. Проблемы при работе с динамической памятью Стеки и очереди. Определение стека, страница 6

Автоматы

Основными понятиями входящими в формализм автомата, является состояние и переход. Главное различие между ними состоит в том, что длительность нахождения системы в отдельном состоянии существенно превышает время, затрачиваемое на переход из одного состояние в другое. Предполагается, что в пределе время перехода из одного состояния в другое равно нулю (если дополнительно ничего не сказано).

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

Одним из таких свойств является выделение из всей совокупности состояний двух специальных: начального и конечного. Хотя на диаграмме состояний время нахождение в том или ином состоянии явно не учитывается, предполагается, что последовательность изменения состояний упорядочена во времени.

Еще одним свойством графа является достижимость состояний.

Формализм обычного автомата основан на выполнении следующих условий:

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

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

3.  Хотя процесс изменения состояний автомата происходит во времени, явно концепция времени не входит в формализм автомата.

4.  Количество состояний автомата должно быть обязательно конечным и все они должны быть специфицированы явным образом. При этом отдельные псевдосостояния могут не иметь спецификации (начальное и конечное состоянии).

5.  Граф состояний не может содержать изолированных состояний и переходов. Это условие обозначает, что все состояния, кроме начального, обязаны иметь предыдущее. Каждый переход должен соединять два состояния. Допускается переход из состояния в себя, такой переход еще называют петлей.

6.  Автомат не должен содержать конфликтующих состояний, т. е. таких переходов из одного состояний, когда объект может перейти в два и более последующих состояний (кроме случаев паралелльных подавтомтов). В языке UML исключение конфликтов возможно на основе введения так называемых сторожевых условий.

Состояние

Под состояние объекта в UML понимается в виде набора конкретных атрибутов этого объекта, при это изменение их отдельных значений будет отражать изменение состояния данного объекта. При этом следует отметить, что не каждый атрибут класса может характеризовать состояние. Как правило, имеют значение только те свойства системы, которые отражают динамический или функциональный аспект ее поведения.

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

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