Диаграммы состояний (statechart diagram) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Диаграммы состояний (statechart diagram)



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


Рис 3.48. Пример диаграммы деятельности

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

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

Автомат

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

Простейший пример автомата с двумя состояниями демонстрирует ситуация с исправностью компьютера. Здесь рассматриваются два самых общих состояния: «исправен» и «неисправен» и два перехода: «выход из строя» и «ремонт». Графически эта информация может быть представлена в виде изображенной Диаграммы состояний компьютера (рис. 3.49).

Основными понятиями, описывающими автомат, являются состояние и переход. Предполагается, что система находится в каком-либо состоянии в течение некоторого времени, тогда как переход объекта из состояния в состояние происходит мгновенно.

Рис. 3.49. Пример диаграммы состояний

Состояние

Состояние (State) — это ситуация в жизни объекта, на протяжении которой он удовлетворяет некоторому условию, осущест­вляет определенную деятельность или ожидает какого-то события.

Состояние на диаграмме изображается прямоугольником со скругленными вершинами (рис. 3.50), который может быть разделен горизонтальной линией на две секции.

Рис. 3.50. Графическое изображение состояний на диаграмме состояний

В прямоугольнике может располагаться «Имя состояния» (первая секция) и «Список внутренних действий в данном состоянии» (вторая секция). При этом под действием (action) в языке UML понимают некоторую атомарную операцию, выполнение которой приводит к изменению состояния или возврату некоторого значения.


Имя состояния

Имя состояния — это строка текста, начинающаяся с заглавной буквы, которая раскрывает содержательный смысл данного состояния. Имя является необязательным элементом. Рекомендуется в качестве имени использовать глаголы в настоящем времени (звенит, печатает, ожидает) или соответствующие причастия (занят, свободен, передано, получено).

Список внутренних действий

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

<метка-действия выражение-действия>

Метка действия указывает на обстоятельства или условия, при которых будет выполняться деятельность, определенная выражением действия. При этом выражение действия может использовать любые атрибуты и связи, которые принадлежат области имен или контексту моделируемого объекта. Если список выражений действия пустой, то разделитель в виде наклонной черты '/' может не указываться.

На рис. 3.51 показан пример состояния считывает запись после открытия файла, содержащего несколько записей.

Рис. 3.51. Пример состояния с непустой секцией внутренних действий

Начальное и конечное состояния описаны в разделе описания диаграммы деятельности (см. рис. 3.45).

Переход

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

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

Событие

Событие (Event) — это спецификация существенного факта, который происходит во времени и пространстве. В контексте автоматов событие — это стимул, способный вызвать срабатывание перехода.

Сторожевое условие

Сторожевое условие (guard condition), если оно есть, всегда записывается в прямых скобках после события-триггера и представляет собой некоторое булевское выражение (выражение, результатом которого является «истина» или «ложь»).


 

Рис. 3.52. Диаграмма состояний для моделирования почтовой

программы-клиента


Заключение



Поделиться:


Последнее изменение этой страницы: 2016-12-29; просмотров: 1089; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.32.230 (0.005 с.)