Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Унифицированный язык моделирования (Unified Mod...doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Внутренние переходы Семантика

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

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

Нотация

Внутренний переход связывается с состоянием иначе, чем переход. Графически он показывается как текстовая строка внутри секции внутреннего перехода на символе состояния. Синтаксис строки внутреннего перехода такой же, как и внешнего перехода.

Пример

Рисунок 49. Состояние с внутренними переходами

Диаграмма активности

Диаграмма активности

Семантика

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

Нотация

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

Пример

Рисунок 50. Диаграмма активности

Состояние действия Семантика

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

Нотация

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

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

Варианты представления

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

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

Пример

Рисунок 51. Деятельность

Решения

Семантика

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

Нотация

Решение может изображаться как помеченное множество переходов действия с различными условиями защиты.

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

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

Пример

Рисунок 52. Решение

Дорожки процессов

Семантика

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

Нотация

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

Пример

Рисунок 53. Дорожки процессов на диаграмме активности

Отношения потока объект-действие

Семантика

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

Нотация

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

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

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

Объект в состоянии. Часто один и тот же объект управляется несколькими последовательными действиями. Можно показать стрелки к и от всех соответствующих действий. Однако для большей ясности, объект может быть показан на диаграмме много раз, каждое появление обозначает различные моменты в процессе его жизни. Чтобы отличить разные появления одного объекта, на каждой точке появления может помещаться заключенное в скобки и присоединенное к названию объекта его состояние, например, PurposeOrder[approved]. Такое описание может также использоваться на диаграммах сотрудничества.

Пример

Рисунок 54. Действия и поток объектов