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


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



ЗНАЕТЕ ЛИ ВЫ?

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



 

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

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

Главное назначение данной диаграммы – описать возможные последовательности состояний и переходов, которые в совокупности характеризуют поведение моделируемой системы (или какой-то подсистемы) в течение всего ее жизненного цикла.

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

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

       
   
 
 

 

 


Рисунок 37 – Изображения состояний

 

Имя состояния представляет собой законченное предложение и записывается с прописной буквы. В исключительных случаях имя может отсутствовать – такое состояние называется анонимным.

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

 

метка действия / выражение действия

 

Метка действия указывает на обстоятельства или условия, при которых будет выполняться это действие, и представляет собой или одно из четырех служебных слов, или идентификатор события, запускающего действие (т.н. внутренний переход). Стандартные метки действия приведены ниже:

entry – указывает на входное действие, то есть действие, которое должно быть выполнено в момент входа в состояние;

exit – указывает на выходное действие, то есть действие, которое должно быть выполнено в момент выхода из состояния;

do – определяет некоторую деятельность (do activity), которая будет выполняться в течение всего времени нахождения системы в данном состоянии или до выполнения специального условия;

include – обращается к конечному подавтомату, имя которого указывается вместо выражения действия.

Пример состояния со списком внутренних действий – ввод пароля – приведен на рис. 38 [2].

 

 
 

 


Рисунок 38 – Пример состояния со списком внутренних действий

 

Начальное состояние (initial state) представляет собой частный случай состояния, которое не содержит никаких внутренних действий, и в котором система (объект) находится в начальный момент. Графически изображается в виде закрашенного кружка (рис. 39, а).

       
   
 
 

 


а б

Рисунок 39 – Начальное и конечное состояния

Конечное состояние (final state) представляет собой частный случай состояния, которое также не содержит никаких внутренних действий и в котором моделируемая система (объект) находится после завершения работы. Графически изображается в виде закрашенного кружка, помещенного в окружность (рис. 39, б).

Простой переход (simple transition) представляет собой отношение между двумя последовательными состояниями, которое указывает на факт смены одного состояния (источника) другим (целевым). Переход осуществляется при наступлении события – завершении ду-деятельности в исходном состоянии (нетриггерный переход) или поступлении сообщения (триггерный переход), а также при удовлетворении так называемого сторожевого условия. Изображается сплошной линией со стрелкой, направленной от исходного состояния в целевое, сопровождающейся строкой текста. Если исходное и целевое состояния совпадают, переход называют переходом в себя и изображают петлей со стрелкой. Сторожевое условие (guard condition) записывается в квадратных скобках после (или вместо) строки-события и представляет собой некоторое булевское выражение, то есть должно принимать одно из двух значений – «истина» или «ложь».

Составное состояние (composite state) состоит нескольких вложенных подсостояний (substate). В зависимости от взаимного расположения подсостояния могут быть последовательными (sequential substates) или параллельными.

На рис. 40 показано составное состояние с двумя вложенными последовательными подсостояниями на примере работы телефонного аппарата (прецедент «дозвон до абонента») [2], на рис. 41 – составное состояние с двумя вложенными параллельными подсостояниями.

 

 
 

 


Рисунок 40 – Диаграмма состояний дозвона до абонента

 

 
 

 

 


Рисунок 41 – Составное состояние с параллельными подсостояниями

 

Если при выходе из подсостояния необходимо его «запомнить» для последующего возвращения, используются так называемые исторические состояния (history state). Неглубокое историческое состояние (shallow history state) изображается буквой H (рис. 42, а) и определяет первое подсостояние при входе в составное состояние (при первом входе оно автоматически заменит начальное состояние). Глубокое историческое состояние (deep shallow history state) изображается символами H* и служит для запоминания всех вложенных подсостояний (рис. 42, б).

       
   
 
 

 

 


а б

Рисунок 42 – Недавнее (неглубокое) и давнее (глубокое)

исторические состояния

 

Если нужно явно показать, что некоторый переход может иметь несколько исходных состояний или несколько целевых состояний, он называется параллельным переходом и изображается вертикальной чертой. На рис. 43 показаны две разновидности параллельного перехода – слияние (join) и разделение (fork).

       
   
 
 

 


а б

Рисунок 43 – Параллельные переходы вида «слияние» (а)

и «разделение» (б)

 

Синхронизирующее состояние (synch state) используется совместно с переходом-слиянием или переходом-разделением для явного указания влияния событий в одном подавтомате на другой подавтомат и обозначается небольшой окружностью со «звездочкой» внутри.

На рис. 44 приведен пример использования синхронизирующих состояний при моделировании строительства дома [2], на рис. 45 изображена диаграмма состояний для модели системы управления банкоматом, а на рис. 46 – возможный вариант диаграммы состояний для работы простейшей информационной системы.

 

 


Рисунок 44 – Диаграмма состояний моделирования строительства дома

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 265; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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