Диаграмма состояний
Для моделирования динамики информационной системы служат диаграммы состояний, деятельности, последовательности и кооперации, каждая из которых показывает будущую систему в своем ракурсе.
Диаграмма состояний описывает процесс изменения одного класса, а точнее — одного экземпляра класса. На диаграмме отражаются состояния и переходы между состояниями объекта под воздействием внешних факторов.
Состояния (states) на диаграмме состояний показываются прямоугольниками с закругленными вершинами. В каждом таком прямоугольнике может быть одна (обязательная) секция, в которой записывается имя состояния (для имени рекомендуется использовать глаголы, причастия и деепричастия), и несколько других секций, обозначающих действия объекта в этом состоянии.
Начальное состояние изображается черным кружком, конечное — черным кружком в белом кольце. На диаграмме, показанной па рис. 3.20, объект из начального состояния переходит в некоторое другое состояние, в котором выполняется действие 1, а затем — в конечное состояние.
Начальное и конечное состояния могут отсутствовать. Примером отсутствия конечного состояния может служить система, которая запускается один раз, а даль
ше функционирует в непрерывном режиме. Примером отсутствия начального состояния может служить функционирующая система, неизвестно когда возникшая.
Примером отсутствия как конечного, так и начального состояния могут служить циклические изменения какого-либо объекта.Внутренние действия состояния описываются в следующем формате:
метка / действие
Здесь аргумент метка представляет собой одно из следующих ключевых слов:
? entry — действие выполняется в момент перехода объекта в данное состояние;
? exit — действие выполняется в момент выхода объекта из данного состояния;
? do — действие выполняется во время нахождения объекта в данном состоянии;
? include — обращение к подсостоянию (substate) данного состояния объекта.
Составное состояние (composite state), или суперсостояние, — это такое состояние объекта, которое включает в себя несколько подсостояний. Использование подсостояний удобно, например, когда на диаграмме требуется показать состояния объекта в зависимости от одного из его свойств. При этом другие свойства объекта также могут изменяться, и если такие состояния и переходы между ними показывать в качестве самостоятельных состояний, то диаграмма будет перегружена обозначениями, затрудняющими восприятие смысла диаграммы — демонстрации переходов между состояниями в зависимости от конкретного свойства. Два варианта графического изображения составного состояния показаны на рис. 3.21.
Частными случаями составного состояния являются последовательные состояния (на рис. 3.22 это состояния А, Б, В) и параллельные состояния (на рис. 3.22 это состояние Г по отношению к последовательности состояний А, Б, В). Историческое состояние (history state) — это такое составное состояние, последующие переходы в которое означают переход к последнему подсостоянию объекта. В качестве примера можно привести систему ведения журнала сбоев (рис.
3.23). При втором и последующем обращении к этому состоянию нет необходимости еще раз создавать журнал сбоев, поэтому переход приведет сразу к подсостоянию Запись в журнал. Историческое состояние обозначается символом Н в кружке.
Переходы между состояниями в языке UML полагаются мгновенными, то есть на переход из одного состояния объекта в другое время не затрачивается.
Переходы между состояниями изображаются на диаграммах состояний стрелками, над.которыми могут указываться событие (event), вызвавшее этот переход, условие допустимости этого перехода (сторожевое условие) и действия, сопровождающие этот переход, в формате:
событиеСсписок параметров) [сторожевое условие] выполняемые действия События на диаграммах состояний исполняют роль триггеров — переход не произойдет, пока не случится соответствующее событие. Если рядом со стрелкой, обозначающей переход, не указано событие, его специфицирующее, то такой переход называется нетриггерным. Нетриггерный переход происходит сразу после выполнения действий в этом состоянии.
Сторожевое условие (guard condition) — некоторое логическое выражение, являющееся дополнительным условием перехода. Переход не произойдет, если сторожевое условие принимает значение false, даже в случае наступления соответствующего события. Сторожевые условия удобно использовать, когда из одного состояния при наступлении одного и того же события возможен переход в несколько других состояний. Например, пусть клиент в виртуальном магазине выбрал товары (состояние — выбор) и по окончании послал команду оплатить покупку (событие). Тогда товары доставляются клиенту только в том случае, если на его счете есть достаточная сумма (сработает переход в состояние, в котором выполняется действие доставки), если же необходимая сумма отсутствует, возможны переходы в другие состояния.
Переходы могут быть простыми и сложными.
Простой переход — это переход в другое или в то же состояние объекта. Переход в то же состояние на диаграммах изображается стрелкой, начинающейся и заканчивающейся у этого состояния (рис. 3.24). При каждом переходе такого рода выполняются соответствующие входные и выходные действия.Сложные переходы — это переходы с несколькими исходными (или конечными) состояниями объекта, а также переходы Между подсостояниями разных состояний. Переход с несколькими исходными или несколькими конечными состояниями объекта (параллельный переход) обозначается жирной вертикальной или горизонтальной линией (линией синхронизации), как показано на рис. 3.25. Пример перехода между подсостояниями разных состояний показан ца рис. 3.26 (переход из А2 в В1).
В общем случае переходы на диаграммах состояний принимаются асинхронными, то есть не зависящими от других переходов. Однако при проектировании может возникнуть необходимость показать синхронность переходов между состояниями объекта. Это достигается введением синхронизирующих состояний, обозначаемых символом * внутри окружности. В примере на рис. 3.27 объект не перейдет в подсостояние В, пока не произойдет переход от С к Б, который «синхронизирует» переход от А к В.
СОВЕТ----------------------------------------------------------------------------------------
Нотация иМЬ предоставляет широкие возможности для иллюстрирования процесса разработки информационных систем, что видно на примере диаграмм состояний, на которых существует возможность показать составные состояния, сложные переходы ит. д. В то же время злоупотребление сложными конструкциями в конечном итоге приводит только к трудностям в понимании диаграмм — цели, прямо противоположной заявленной нами. Такой же эффект дает перегрузка диаграмм объектами и связями между ними. Отсюда следует общая рекомендация к построению диаграмм: без необходимости не усложняйте диаграммы, не пытайтесь на одной диаграмме показать сразу все аспекты функционирования системы.
Еще по теме Диаграмма состояний:
- Девятый сеанс Диаграмма трат, ее зарядка “небесной энергией”
- § 19 Узаконение незаконных детей в России. – Узаконение раскольничьих детей. – Когда признаются незаконными дети, рожденные в браке? – Состояние незаконных детей. – Законность рождения и состояние незаконных по закону прибалтийских губерний.
- СОСТОЯНИЕ
- СОЗНАНИЕ: СОСТОЯНИЕ
- ТЕСТ СОСТОЯНИЙ
- СОСТОЯНИЕ ПОГРАНИЧНОЕ
- СОСТОЯНИЕ ПСИХИЧЕСКОЕ
- Психические состояния
- Неврологические состояния
- Неврологические состояния
- СОСТОЯНИЕ РЕАКТИВНОЕ