<<
>>

Диаграмма состояний

В процессе функционирования информационной системы свойства объектов сис­темы будут принимать различные значения, а объекты системы — различные со­стояния. Состояния объектов, переходы объектов из одного состояния в другое, сообщения, которыми обмениваются объекты, образуют динамическую составля­ющую информационной системы.

Для моделирования динамики информационной системы служат диаграммы со­стояний, деятельности, последовательности и кооперации, каждая из которых по­казывает будущую систему в своем ракурсе.

Диаграмма состояний описывает процесс изменения одного класса, а точнее — одного экземпляра класса. На диаграмме отражаются состояния и переходы меж­ду состояниями объекта под воздействием внешних факторов.

Состояния (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 объект не перейдет в подсостояние В, пока не произойдет переход от С к Б, который «синхронизирует» переход от А к В.

СОВЕТ----------------------------------------------------------------------------------------

Нотация иМЬ предоставляет широкие возможности для иллюстрирования процесса разработки информационных систем, что видно на примере диаграмм состояний, на которых существует возможность показать составные состояния, сложные переходы ит. д. В то же время злоупотребление сложными конструкциями в конечном итоге приводит только к трудностям в понимании диаграмм — цели, прямо противополож­ной заявленной нами. Такой же эффект дает перегрузка диаграмм объектами и свя­зями между ними. Отсюда следует общая рекомендация к построению диаграмм: без необходимости не усложняйте диаграммы, не пытайтесь на одной диаграмме пока­зать сразу все аспекты функционирования системы.

<< | >>
Источник: Избачков Ю. С., Петров В. Н.. Информационные системы. 2006

Еще по теме Диаграмма состояний:

  1. Девятый сеанс Диаграмма трат, ее зарядка “небесной энергией”
  2. § 19 Узаконение незаконных детей в России. – Узаконение раскольничьих детей. – Когда признаются незаконными дети, рожденные в браке? – Состояние незаконных детей. – Законность рождения и состояние незаконных по закону прибалтийских губерний.
  3. СОСТОЯНИЕ
  4. СОЗНАНИЕ: СОСТОЯНИЕ
  5. ТЕСТ СОСТОЯНИЙ
  6. СОСТОЯНИЕ ПОГРАНИЧНОЕ
  7. СОСТОЯНИЕ ПСИХИЧЕСКОЕ
  8. Психические состояния
  9. Неврологические состояния
  10. Неврологические состояния
  11. СОСТОЯНИЕ РЕАКТИВНОЕ