С помощью взаимодействий (они были описаны ранее) можно моделировать поведение сообщества совместно работающих объектов. Для моделирования поведения отдельного объекта применяется автомат.
Автомат (State machine) описывает поведение в терминах последовательности состояний, через которые проходит объект в течение своей жизни, отвечая на события, а также его реакций на эти события.
Автоматы используются для моделирования динамических аспектов системы. В основном под этим понимается описание жизни экземпляров класса, прецедентов и системы в целом. Экземпляры могут реагировать на такие события, как сигналы, операции или истечение промежутка времени.
Диаграмма, которая описывает все возможные состояния, в которых может находиться объект в процессе работы системы называется диаграммой состояний. Она указывает, какие события могут влиять на объект, и в каких ситуациях он меняет свое состояние.
Действие (Action) - это атомарное вычисление, которое приводит к изменению состояния модели или возврату значения.
Событие - это спецификация существенного факта, имеющего место в пространстве и во времени. В контексте автоматов событие - это некий стимул, инициирующий переход из одного состояния в другое.
Состояние объекта - это ситуация в его жизни, на протяжении которой он удовлетворяет некоторому условию, осуществляет определенную деятельность или ожидает какого-то события.
Переход - это отношение между двумя состояниями, показывающее, что объект, находящийся в первом состоянии, должен выполнить определенные действия и перейти во второе состояние, как только произойдет указанное событие, и будут удовлетворены определенные условия.
Графически состояние изображается в виде прямоугольника с закругленными углами. Переход обозначается линией со стрелкой.
Когда происходит событие, в зависимости от текущего состояния объекта имеет место та или иная деятельность.
Деятельность (Activity) -это занимающее некоторое время неатомарное вычисление внутри автомата. Результатом деятельности является некоторое действие, составленное из атомарных вычислений, которое приводит к изменению состояния модели или возврату значения. Последовательность деятельностей составляют диаграмму деятельности (активности).
Визуализировать автомат можно двумя способами: выделяя передачу потока управления от одной деятельности к другой (с помощью диаграммы деятельности) или выделяя потенциальные состояния объектов и переходы между ними (с помощью диаграммы состояний).
Хорошо структурированные автоматы подобны хорошо структурированным алгоритмам, они эффективны, просты, адаптируемы к разным ситуациям и просты для понимания.