История состояний

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

Диаграмма состояний позволяет учесть такую особенность. В UML применяется специальное обозначение, указывающее на то, что композитное состояние запомина­ет активное промежуточное состояние во время выхода объекта из композитного со­стояния. Это символ «н», заключенный в небольшой круг и соединенный сплошной линией со стрелкой с запоминаемым подчиненным состоянием. На рис. 8 это обо­значение введено для отображения состояния Работа.

Рис. 8. История состояний, обозначенная символом «Н» в небольшом круге, пока­зывает, что композитное состояние запоминает свое активное промежу­точное состояние при выходе объекта из этого композитного состояния

На рассматриваемой диаграмме не принимались во внимание те окна, которые открываются другими — вложение состояний в иные подчинен­ные состояния. Если запоминаются подчиненные состояния всех уров­ней вложенности (как для подчиненных состояний Работа окон состоя­ния Работа), то история состояний называется глубокой. Если запомина­ется только самое верхнее подчиненное состояние, история считается мелкой. Для глубокой истории в кружочке отображается надпись «Н*».

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: