Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КИС_2013_02_18.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

События

События представляют собой внешние стимулы, которые могут вызвать изменение состояния объекта. События не имеют длительности.

Имена событий указывают рядом со стрелками переходов

Рисунок 16. Изменение состояния объекта

Например, при подписании платежного поручения директором и главным бухгалтером оно переходит из состояния «Заполненное» в состояние «Утвержденное».

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

Рисунок 17. Использование условий

Если событие не указано, предполагается что переход происходит автоматически при завершении активности, связанной с данным состоянием. При этом условие перехода, определенное завершением активности в состоянии, можно не указывать, чтобы не загромождать диаграмму. Например, переход из состояния «Вскипятить чайник» в состояние «Заварить чай» происходит автоматически после того, как чайник вскипит.

Возможные виды событий приведены в таблице.

Наименование

Условие наступления

Обозначение

Временное событие

истечение определенного отрезка времени

наступление заданного времени

after(условие)

when(условие)

Событие изменения

изменение значения логического выражения от false к true

when(условие)

Событие вызова

вызов операции объекта

имя события

Сигнальное событие

получение сигнала от другого объекта

имя события

Рисунок 18. Диаграмма операции “Заварить чай”

Например, диаграмма операции “Заварить чай” может выглядеть так :

Операции

Операции характеризуют поведение объекта. На STD диаграммах различают 2 вида операций : активность и действие.

Активностью называется операция, которая длится определенное время. Этот вид операций связан с состоянием и продолжается до тех пор, пока объект находится в этом состоянии. Активность может включать непрерывные операции, либо последовательность операций, длящуюся некоторое время. В последнем случае при завершении последовательности операций происходит автоматический переход в другое состояние.

Рассмотрим для примера диаграмму гаражной двери с электрическим приводом. При закрытой двери нажатие кнопки приводит к ее открытию, а при открытой – к закрытию. В процессе открытия двери нажатие кнопки игнорируется до полного открывания двери.

На данной диаграмме можно выделить 4 состояния, в двух из которых (закрыто, открыто) дверь может находиться сколь угодно долго, а два других имеют конечную длительность во времени.

Рисунок 19. Диаграмма гаражной двери

Рисунок 20. Обозначение активности

Активность обозначают в нижней части закругленного прямоугольника состояния. Для изображения активности используется ключевое слово do, за которым указывается слеш / и название активности.

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

Рисунок 21. Изображение действия на диаграммах

Действие указывается вслед за именем события и условием. Для описания действия используется слеш /, за которым следует название действия. Например, при истечении срока хранения документа вызывается операция «уничтожить» и документ переходит в новое состояние.

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

Для обозначения действий, выполняемых при входе в состояние, используется ключевое слово entry, вслед за которым указывается слеш и имя действия. А для действий, выполняемых при выходе из состояния, применяется ключевое слово exit. Если необходимо показать события, которые не вызывают срабатывание действий входа/ выхода, то они показываются внутри состояния

Например, при вводе пароля необходимо сначала отключить режим вывода введенных символов на экран, а по окончании ввода – включить его. События “символ” и “help” являются внутренними для состояния “Ввод пароля” и не приводят к выходу за его пределы.

Рисунок 22.. Использование ключевых слов entry и exit

Вложенные диаграммы состояния

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

Состояние объекта может быть декомпозировано на взаимоисключающие или конкурентные (параллельно существующие) подсостояния. Первый вид декомпозиции устанавливает взаимосвязь типа “или” между состоянием и его подсостояниями и является формой обобщения состояний. Второй вид декомпозиции устанавливает взаимосвязь типа “и” и является формой агрегирования состояний.

Рассмотрим каждую из декомпозиций более подробно

Взаимоисключающие подсостояния

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

Рассмотрим STD диаграмму работы торгового автомата, который выдает необходимую покупку при поступлении заданной суммы денег.

Рисунок 23. STD диаграмма работы торгового автомата

Состояние “Выдать покупку” детализируется на следующей STD диаграмме.

Рисунок 24. Детализация состояния “Выдать покупку”

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

Например, диаграмма автоматической трансмиссии будет иметь сложное состояние “Прямая передача”, подсостояниями которой будут “Первая”, “Вторая”, “Третья”, “Четвертая”

Рисунок 25. STD диаграмма автоматической трансмиссии

Подсостояния наследуют переходы их суперсостояний, подобно тому как подклассы наследуют атрибуты и операции суперклассов. Так, переход от прямой передачи к нейтральной подразумевает 4 наследуемых перехода, от каждой из прямых передач.

Переход по событию “стоп” от контура прямой передачи к состоянию “Первая” наследуется всеми 4 подсостояниями, так как остановка автомобиля переводит трансмиссию в состояние первой передачи.

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

Конкурентные подсостояния

Конкуренция в пределах состояния одного объекта возникает, когда объект может быть расчленен на подмножество атрибутов и связей, каждое со своей собственной поддиаграммой. Такая конкуренция показывается путем разделения состояния с помощью точечных линий. Имя составного состояния отделяется сплошной линией от конкурентных поддиаграмм.

Например, для получения допуска к сессии студенту необходимо отчитаться по всем лабораторным, практическим и курсовым работам, а также сдать все зачеты. Причем, не важно в каком порядке.

Рисунок 26. Конкуренция в пределах одного состояния

Агрегирование представляет собой взаимосвязь типа “и”. Объект, находящийся в агрегатном состоянии, будет находиться в первом подсостоянии и во втором, и в третьем и т.д. одновременно.

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

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

Рисунок 27. CD диаграмма автомобиля

Состояние автомобиля включает одно подсостояние от каждого компонента. Диаграммы состояния компонент можно считать независимыми.

Рисунок 28. STD диаграмма состояния автомобиля