Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач / Методические указания.docx
Скачиваний:
0
Добавлен:
07.08.2024
Размер:
3.53 Mб
Скачать

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

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

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

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

Графически диаграмма деятельности представляется в виде ориентированного графа, вершинами которого являются состояния действия или деятельности, а дугами — переходы от одного состояния к другому.

Основными элементами диаграммы являются состояния действия, состояния деятельности, переходы, решения, ветвления и слияния параллельных потоков и дорожки.

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

Г рафически состояние действия отображается, как обыкновенное состояние.

Рисунок 77 - Примеры состояний действия

Внутри фигуры записывается выражение действия (action expression, англ.). Действие может быть записано на естественном языке, некотором псевдокоде или языке программирования.

Состояние деятельности (поддеятельности – subactivity state, англ.) является аналогом предопределенного процесса на блок-схемах. Деятельность является составным состоянием, отображаемым на диаграмме как единое целое (например, на рисунке 77 – «Разработать план проекта»), а ее детализация выполняется, в случае необходимости, на отдельной диаграмме. Графически деятельность от действия отличается специальный знак, помещаемый в правый нижний угол состояния.

Рисунок 78 - Пример состояния деятельности

Каждая диаграмма деятельности должна иметь начальное и конечное (конечные) состояния, обозначаемые так же, как и на диаграмме состояний.

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

Решение (decisions, англ.) на диаграмме деятельности и на блок-схемах имеет одинаковое назначение и изображение. Оно используется для ветвления альтернативных потоков на диаграмме. Как и на блок-схемах, оно обозначается ромбом, но в отличие от них внутри ромба не делается поясняющая надпись. Условия ветвления показываются в виде сторожевого условия рядом с соответствующей альтернативной стрелкой. Решение обозначает как ветвление, так и слияние альтернативных потоков. Т.о. если на диаграмме имеется ветвление, то должно быть и слияние таких потоков. Допускается слияние альтернативных потоков в конечном состоянии.

Ветвление (fork, англ.) и слияние (join, англ.) параллельных потоков (concurrent flow, англ.) являются аналогом параллельных действий на блок-схемах. Ветвление и слияние потоков такое же, как и на диаграмме состояний.

Рисунок 79 - Ветвление (а) и слияние (б)

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

В качестве простого примера можно привести диаграмму деятельности, моделирующую процесс входа пользователя в информационную систему, т.е. процедуру аутентификации и авторизации пользователя. Эта диаграмма представлена на рисунке 80.

Рисунок 80 – Диаграмма деятельности «Вход в систему»

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

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

Вверху каждой дорожки пишется имя объекта, а внутри указываются действия, которые выполняются объектом (рисунок 81).

Чтобы оптимизировать процесс с помощью диаграммы деятельности с «плавательными дорожками» нужно свести к минимуму количество передач процесса между участниками. В идеале, каждый должен участвовать в процессе один раз на всем его протяжении, как в эстафете: пробежал свой этап, передал заказ — эстафетную палочку следующему по процедуре участнику, и все, больше не возвращайся к этому заказу. Для каждого момента передачи эстафетной палочки должен быть составлен полный набор информации, которая должна передаваться. Если чего-либо не хватает, это будет означать, что процесс остановится и все участники будут ждать, пока не появится необходимая информация.

Рисунок 81 – Диаграмма деятельности с «дорожками»