Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Н. Половикова. Методическое пособие по UML.doc
Скачиваний:
35
Добавлен:
18.03.2016
Размер:
764.42 Кб
Скачать

Тема 6. Диаграмма состояний (Statechart Diagram)

Для моделирования поведения могут использоваться несколько диаграмм: состояний, деятельности, последовательности и кооперации, каждая из которых описывает отдельный аспект функционирования системы. В отличие от других диаграмм диаграмма состояний описывает процесс изменения состояний только одного экземпляра класса. Диаграмма моделирует все возможные изменения в состоянии конкретного объекта.

Любая система при взаимодействии с пользователем или с другими системами подвержена изменению, а точнее изменяются объекты, которые входят в состав системы. Объекты изменяю своё состояние в ответ на происходящие с ними события.

Рассмотрим примеры:

Система Автомобиль. Класс Aвтомобиль можно представить композицией следующих классов: Двигатель, Коробка передач, Тормозная система и т.д. При движении автомобиля в зависимости от скорости, от дороги, от количества пассажиров двигатель может переходить в различные состояния (не работать, работать, работать не в полную мощь и т.д.) Аналогично и другие части машины.

Функционирование всей системы зависит от состояний, в которых находятся её элементы (составные части). Диаграмма описывает поведение системы через описание изменений составляющих её элементов. Следует определить разницу между состоянием, в котором находится объект, и переходом в новое состояние (в процессе перехода объект также находится в некотором переходном состоянии). Главное различие между ними заключается в том, что длительность нахождения системы в отдельном состоянии существенно превышает время, которое затрачивается на переход из одного состояния в другое. Предполагается, что в пределе время перехода из одного состояния в другое равно нулю (если дополнительно ничего не сказано), т.е. переход объекта из состояния в состояние происходит мгновенно.

Состояние на диаграмме изображается прямоугольником с округленными углами (см. рис. 6.1), переход– сплошной линией со стрелкой, которая соединяет два состояния. На диаграмме состояний могут присутствовать два особых состояния, которые соответствуют начальному и конечному состоянию объекта. Начальному состоянию соответствует – закрашенный круг, обведенный круг (глаз) соответствует конечному состоянию (см. рис. 6.2).

Рис. 6.1. Графическое представление состоянияна диаграмме состояний.

Рис. 6.1. Представление начальногоиконечного состоянияна диаграмме.

Спецификация состояний

Имя состояния должно раскрывать его содержательный смысл. В качестве имени рекомендуется использовать глаголы в настоящем времени (работает, печатает, ожидает) или соответствующие причастия (занят, свободен, передано, получено).

Прямоугольник, который символизирует состояние, может быть разделен на три части. В верхней области имя состояния, в средней области располагаются переменные состояния, нижняя предназначена для размышления видов деятельности. Переменными состояния могут быть различные таймеры и счетчики. Но, к сожалению, в Ration Rose нет такой спецификации, но в качестве спецификации состояния можно опредлить (указать) виды деятельности.

В секции виды деятельности содержит перечень внутренних действий, которые выполняются в процессе нахождения моделируемого элемента (объекта) в данном состоянии. Каждое из действий записывается в виде отдельной строки и имеет следующий формат: метка-действия /название действия (деятельности) Метка-действия определяет условие, при котором будет выполняться действие. Перечень имён для меток имеет фиксированные значения в языке UML, которые не могут быть использованы в качестве имен событий:

  • Entry - эта метка показывает, что действие должно выполнятся в момент входа в данное состояние объекта.

  • Exit - эта метка показывает, что действие должно выполнятся в момент выхода из данного состояние объекта.

  • Do - эта метка показывает, что действие выполняется в течение всего времени, пока объект находится в данном состоянии, или до тех пор, пока не закончится вычисление.

Некоторые среды UML позволяю также определять свои метки-действия.