Основные элементы диаграмм состояний
Диаграмму состояний часто рассматривают в контексте конечного автомата. Тогда можно сказать, что диаграмма состояний(Statechartdiagram) показывает автомат,фокусируя внимание на потоке управления отсостояния к состоянию.
Автомат (Statemachine) –это описание последовательностисостояний, через которые проходит объект на протяжении всего жизненного цикла, реагируя на события, - в том числе описание реакций на эти события.
Состояние (State) –это ситуация в жизни объекта,на протяжениикоторой он удовлетворяет некоторому условию, осуществляет определенную деятельность или ожидает какого-то события.
Для поиска состояний класса можно просматривать атрибуты этого класса. Хорошим индикатором состояний является такой атрибут класса как «статус».
Диаграмма состояний изображается в виде графа с вершинами и ребрами.
Состояние на диаграмме изображается прямоугольником со скругленными вершинами. Под именем состояния могут размещаться действия (рис. 1).
Рисунок 1 - Состояния
Кроме обычных состояний на диаграмме состояний могут размещаться псевдосостояния.
Псевдосостояние (pseudo-state) -вершина в конечном автомате,которая имеет форму состояния, но не обладает поведением.
Примерами псевдосостояний, которые определены в языке UML, являются начальное и конечное состояния.
Начальное состояние (startstate) -разновидность псевдосостояния,обозначающее начало выполнения процесса изменения состояний конечного автомата или нахождения моделируемого объекта в составном состоянии.
В этом состоянии находится объект по умолчанию в начальный момент времени. Оно служит для указания на диаграмме состояний графической области, от которой начинается процесс изменения состояний. Графически начальное состояние в языке UML обозначается в виде закрашенного кружка, из которого может только выходить стрелка-переход (рисунок 2)
Рисунок 2 - Начальное и конечное состояния
Конечное состояние (finalstate) -разновидность псевдосостояния,обозначающее прекращение процесса изменения состояний конечного автомата (рис. 2).
Объект находится в конечном состоянии непосредственно перед уничтожением. Конечных состояний может быть несколько.
Находясь в каком-либо состоянии, объект может выполнять определенные действия, с состоянием можно связать такие действия как входное и выходное действия и внутренняя или просто деятельность.
С состоянием можно связывать данные пяти типов: деятельность, входное действие, выходное действие, событие и история состояния.
Деятельность
Деятельностью (activity) называется поведение, реализуемое объектом, пока он находится в данном состоянии. Деятельность – это прерываемое поведение. Оно может выполняться до своего завершения, пока объект находится в данном состоянии, или может быть прервано переходом объекта в другое состояние. Деятельность изображают внутри самого состояния, ей должно предшествовать слово do (делать) и двоеточие.
Входное действие
Входным действием (entryaction) называется поведение, которое выполняется, когда объект переходит в данное состояние. Данное действие осуществляется не после того, как объект перешел в это состояние, а, скорее, как часть этого перехода. В отличие от деятельности, входное действие рассматривается как непрерываемое. Входное действие также показывают внутри состояния, ему предшествует слово entry (вход) и двоеточие.
Выходное действие
Выходное действие (exitaction) подобно входному. Однако, оно осуществляется как составная часть процесса выхода из данного состояния. Оно является частью процесса такого перехода. Как и входное, выходное действие является непрерываемым.
Выходное действие изображают внутри состояния, ему предшествует слово exit (выход) и двоеточие.
Поведение объекта во время деятельности, при входных и выходных действиях может включать отправку события другому объекту. В этом случае описанию деятельности, входного действия или выходного действия предшествует знак « ^ ».
Соответствующая строка на диаграмме выглядит как
Do: ^Цель.Событие (Аргументы)
Здесь Цель – это объект, получающий событие, Событие – это посылаемое сообщение, а Аргументы являются параметрами посылаемого сообщения.
В общем случае действие имеет следующий формат:
<метка действия / выражение действия>
Деятельность может также выполняться в результате получения объектом некоторого события. При получении некоторого события выполняется определенная деятельность.
Срабатывание <перехода> (fire) - выполнение перехода из одного состояния в другое.
На диаграмме переход изображается сплошной стрелкой. У перехода существует несколько спецификаций: событие, граничные условия, действия и посылаемые события.
<имя события>(<список параметров, разделенных запятыми>)[<сторожевое условие>]/<выражение действия>.
У перехода существует несколько спецификаций. Они включают события, аргументы, ограждающие условия, действия и посылаемые события.
События
Событие (event) – это то, что вызывает переход из одного состояния в другое. Событие размещают на диаграмме вдоль линии перехода.
На диаграмме для отображения события можно использовать как имя операции, так и обычную фразу.
Большинство переходов должны иметь события, так как именно они, прежде всего, заставляют переход осуществиться. Тем не менее, бывают и автоматические переходы, не имеющие событий. При этом объект сам перемещается из одного состояния в другое со скоростью, позволяющей осуществиться входным действиям, деятельности и выходным действиям.
Дата добавления: 2021-07-22; просмотров: 629;