ZuboLom.ru

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

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

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

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

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

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

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

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

Показ объектов и их состояний помогает понять, когда и как происходит смена состояний объекта.

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

На нашем примере после ввода пользователем информации о кредитной карточке, билет переходит в состояние [не подтвержден]. Когда завершится процесс обработки кредитной карточки и будет подтвержден перевод денег, возникает деятельность "Зарезервировать место" переводящее билет в состояние "приобретен" и затем он используется в деятельности "Формирование номера подтверждения".

Переход ( -----> ) показывает, как поток управления переходит от одной деятельности к другой.

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

В данном примере параллельно выполняются "Зарезервировать место", "Формирование номера подтверждения" и "Отправить подтверждение по e-mail", а после завершения всех процессов пользователю выдается номер подтверждения.

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

Диаграмма деятельности предпочтительней использовать в следующих ситуациях:

  1. Анализ потока событий в конкретном варианте использования. Здесь нас не интересует связь между действиями и объектами, а нужно просто посмотреть какие действия должны иметь место и каковы зависимости в поведении системы.
  2. Анализ потока событий в различных вариантах использования. Когда варианты использования взаимодействуют друг с другом, на диаграмме деятельности удобно представить и проанализировать их потоки событий.

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