Псевдосостояния – начальное и конечное состояния объекта или процесса. Каждая диаграмма состояний должна начинаться начальным состоянием и заканчиваться конечным. Для добавления на диаграмму начального и конечного состояний используются кнопки и соответственно.
Рассмотрим следующий пример. Составим диаграмму состояний для класса Order (Заказ), поскольку в нашей модели он наиболее часто будет менять свое состояние. Заказ может находиться в нескольких состояниях:
· при создании заказа он переходит в состояние Инициализация, в котором выполняются некоторые предварительные действия;
· после завершения инициализации заказ переходит в состояние Открыт, в котором к заказу добавляются новые пункты. Выход из этого состояния возможен или в случае отмены заказа, или в случае заполнения всех необходимых пунктов заказа;
· если заполнены все необходимые пункты заказа, то он переходит в состояние Закрыт, в котором происходит выписка счета. Выход из этого состояния произойдет только после того, как счет будет выписан;
|
|
· если заказ отменен, то из состояния Открыт он переходит в состояние Отменен. При выходе из этого состояния происходит удаление всех пунктов заказа.
Разместим все состояния объекта на диаграмме, в том числе начальное и конечное. Определим некоторые действия, которые выполняются в данных состояниях.
· на входе в состояние Инициализация – действие «Сохранить дату заказа»;
· деятельность состояния Инициализация – действие «Внести информацию о клиенте»;
· на выходе из состояния Открыт – действие создания пункта заказа;
· на выходе из состояния Отменен – действие «Сохранить дату отмены»;
· деятельность состояния Закрыт – действие «Выписать счет».
Действие добавления пунктов заказа, а также удаления отмененного заказа, пока опустим. С помощью инструмента Broom можно выровнять элементы относительно друг друга.
Рис.6. Состояния объекта Entry.