Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2. Анализ и моделирование на UML.docx
Скачиваний:
18
Добавлен:
21.09.2019
Размер:
547.87 Кб
Скачать

Сложные переходы

Рассмотренное выше понятие перехода является вполне достаточным для большинства типичных расчетно-вычислительных задач. Однако современные программные системы могут реализовывать очень сложную логику поведения отдельных своих компонентов. Может оказаться, что для адекватного представления процесса изменения состояний семантика обычного перехода для них недостаточна. С этой целью в языке UML специфицированы дополнительные обозначения и свойства, которыми могут обладать отдельные переходы на диаграмме состояний.

Переходы между параллельными состояниями

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

Графически такой переход изображается вертикальной черточкой. Если параллельный переход имеет две и более входящие дуги, его называют соединением (join). Если же он имеет две или более исходящие дуги, то его называют ветвлением (fork). Текстовая строка спецификации параллельного перехода записывается рядом с черточкой и относится ко всем входящим или исходящим дугам.

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

20. Диаграмма деятельности.

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

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

Для построения диаграммы деятельности используются переходы, которые срабатывают сразу после завершения деятельности или выполнения соответствующего действия состояния. Графически: сплошная линия со стрелкой. Ветвление - из одной деятельности несколько переходов, из которых срабатывает только один, при срабатывании с торожевого условия. Обозначается символом решения (decision).Входит только одна стрелка из ветвлящейся деятельности. Для объединения альтернативных решений используется соединение - merge.

Для разделения и слияния параллельных вычислений или потоков управления используется специальный символ. Разделение(fork) - имеет один входящий переход и несколько выходящих. Слияние (concurrent join) имеет несколько входящих переходов и один выходящий.

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

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