
- •«Диаграммы состояний»
- •1. Что такое диаграмма состояний
- •Набор символов
- •Дополнительные элементы в изображении состояния
- •Дополнительные обозначения для переходов: события и действия
- •Дополнительные обозначения для переходов: условия переходов
- •2. Подчиненные состояния
- •Последовательные подчиненные состояния
- •Параллельные подчиненные состояния
- •3. История состояний
- •4. Сообщения и сигналы
- •5. Зачем нужны диаграммы состояний
- •Дополнение к общей картине
- •6. Резюме
- •Вопросы и ответы
- •Задание
Дополнение к общей картине
Теперь в общую картину UML можно добавить "поведенческие элементы". На рис. 11 представлена общая картина UML с добавленными к ней элементами диаграммы состояний.
Рис. 11. Общая картина UML теперь включает поведенческий элемент — диаграмму состояний
6. Резюме
Объекты в системе изменяют свое состояние с течением времени и в ответ на события. Эти изменения отражает диаграмма состояний UML. На ней изображаются переходы между состояниями одного объекта. Состояние графически представляется прямоугольником с округленными углами, а переход из одного состояния в другое изображается линией со стрелкой.
Обозначение состояния содержит его имя и может включать переменные и набор действий этого состояния. Переход зачастую происходит в ответ на переключающее событие и может вызывать некоторые действия. Переход также может происходить вследствие выполнения всех необходимых действий в предыдущем состоянии: он называется безусловным. Наконец, переход может происходить в случае выполнения специальных условий — так называемых условий переходов.
Иногда состояние складывается из подчиненных состояний, которые могут быть последовательными (происходящими Друг за другом) или параллельными (происходящими одновременно). Состояние, включающее подчиненные состояния, называется композитным. История состояния показывает, что композитное состояние запоминает свое промежуточное состояние, когда объект из него выходит. Мелкая история подразумевает запоминание только одного подчиненного состояния. Глубокая история включает все уровни вложенности состояний.
Если один объект передает сообщение, вызывающее переход на диаграмме состояний другого объекта, то это сообщение называется сигналом. Иерархию наследования сигналов можно построить на базе диаграммы классов с использованием стереотипа «сигнал».
Диаграммы состояний важны для аналитиков, проектировщиков и разработчиков, поскольку они позволяют понять поведение объектов системы. Разработчики, в частности, должны знать о предполагаемом поведении объектов в системе, чтобы программно реализовать это поведение. Не достаточно реализовать сам объект — нужно добиться, чтобы объект выполнял свои функции.
Вопросы и ответы
С чего начинать построение диаграмм состояний?
Процесс создания диаграмм состояний напоминает создание диаграммы классов или прецедентов. На диаграмме классов сначала перечисляются все классы, а затем определяются ассоциации. На диаграмме состояний сначала отображаются все состояния объекта, а затем строятся переходы. Анализируя переходы, можно добавить на диаграмму переключающие события и происходящие действия.
Нужно ли каждую диаграмму состояний завершать конечным состоянием ("глазком")?
Нет. Объект, который никогда "не выключается", не имеет такого состояния.
Существуют ли какие-нибудь рекомендации по построению диаграммы состояний?
Старайтесь располагать состояния и переходы таким образом, чтобы минимизировать пересечение линий. Одной из задач такой диаграммы (и любой другой) является прояснение и структурирование известной информации. Если разработчики не в состоянии понять построенную модель, они не будут ее использовать, и все усилия окажутся напрасными.