Page 96 - 6602
P. 96
композиту, аби не починати її виконання спочатку. Для цієї мети в
мові UML існує «історичний стан».
Історичний стан (history state) - псевдостан, який
використовується для запам'ятовування того з послідовних
підстанів, який був поточним у момент виходу із складеного стану.
Історичний стан застосовується лише в складених станах. При
цьому існує два різновиди історичного стану: неглибокий, або
недавній, і глибокий або давній (рис. 6.11).
Неглибокий історичний стан (shallow history state) є першим
підстаном в складеному стані, і перехід ззовні в даний складений
стан повинен вести безпосередньо в даний історичний стан. По-
друге, при першому попаданні в неглибокий історичний стан він не
зберігає жодної історії. Іншими словами, при першому переході в
недавній історичний стан він замінює собою початковий стан
відповідного кінцевого підавтомата. Далі можуть послідовно
змінюватися вкладені підстани. Якщо в деякий момент відбувається
вихід із складеного стану (наприклад, в разі настання деякої події),
то даний історичний стан запам'ятовує той з підстанів, який був
поточним на момент виходу з даного складеного стану. При
подальшому вході в цей складений стан неглибокий історичний
підстан має непорожню історію і відразу відправляє кінцевий
підавтомат в підстан, що запам'ятав, минувши всі попередні йому
підстани.
Рис. 6.11. Графічне зображення недавнього (а) і давнього (б)
історичного стану
Історичний стан втрачає свою історію в той момент, коли
92