Диаграммы состояний
Диаграмма состояний (statechart diagram) используется для описания эволюции объектов со сложным поведением. Диаграмма представляет собой граф, вершины которого — состояния объекты, дуги — переходы между состояниями. Переход может помечаться вызывающим переход событием, условием выполнения, выполняемым действием.
Таким образом, диаграмма состояния показывает автомат. С помощью диаграмм состояний можно описывать как автомат Мили, так и автомат Мура. Разновидностью диаграммы состояний является диаграмма деятельности (activity diagram), в которой состояния — это некоторые работы, а переходы соответствуют завершению работы в исходном состоянии и, возможно, выполнению некоторых условий.
С помощью диаграмм состояний можно визуализировать, специфицировать и документировать динамику экземпляров классов, прецедентов и системы в целом. Обычно автомат строится только для объектов со сложным поведением.
Пример диаграммы активности, иллюстрирующей поведение объекта (экземпляра) класса «Строка заказа»:
Особым образом указываются начальное и конечное состояния. Если диаграмма описывает непрерывно работающий автомат, то конечное состояние может отсутствовать.
Переходы помечаются в соответствии со шаблоном:
«Событие»(«аргументы») [«условие»] / «Действие» ^ «Отправляемое сообщение»(«аргументы»)
В данном примере события и отправляемые сообщения не имеют аргументов.
Диаграммы состояний поддерживают вложенность, т.е. можно моделировать подсостояния в пределах некоторого состояния.
Процесс построения полезной диаграммы состояний может состоять из следующих шагов:
· выбор конечного и начального состояния объекта;
· определение устойчивых состояний объекта, т.е. таких, в которых он может находиться неопределенно долгое время;
· определение допустимых состояний объекта;
· определение подсостояний для некоторых важных состояний;
· выявление событий, инициирующих переходы между состояниями;
· спецификация переходов;
· проверка достижимости всех состояний и отсутствия тупиковых состояний;
· упрощение графа за счет реорганизации с помощью подсостояний, ветвлений, слияний и т.п.;
· трассировка автомата для проверки согласованности его поведения с ожидаемым.
Дата добавления: 2018-11-25; просмотров: 858;