20453

Диаграмма деятельности (activity diagram)

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-07-25

136 KB

4 чел.

25 Диаграмма деятельности (activity diagram)

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

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

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

В контексте языка UML деятельность (activity) представляет собой совокупность отдельных вычислений, выполняемых автоматом, приводящих к некоторому результату или действию (action). На диаграмме деятельности отображается логика и последовательность переходов от одной деятельности к другой, а внимание аналитика фокусируется на результатах. Результат деятельности может привести к изменению состояния системы или возвращению некоторого значения.

Состояние действия

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

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

Рис. 5. Изображение состояния действия

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

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

Рис. 6. Изображение состояния под-деятельности

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

Переходы

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

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

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

Один из недостатков обычных блок-схем алгоритмов связан с проблемой изображения параллельных ветвей отдельных вычислений. Поскольку распараллеливание вычислений существенно повышает общее быстродействие программных систем, необходимы графические примитивы для представления параллельных процессов. В языке UML для этой цели используется специальный символ для разделения и слияния параллельных вычислений или потоков управления. Таким символом является прямая черточка. Как правило, такая черточка изображается отрезком горизонтальной линии, толщина которой несколько шире основных сплошных линий диаграммы деятельности. При этом разделение (concurrent fork) имеет один входящий переход и несколько выходящих, а слияние (concurrent join) имеет несколько входящих переходов и один выходящий.

Дорожки

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

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

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

Объекты

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

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

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

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

 


 

А также другие работы, которые могут Вас заинтересовать

50877. Преобразование Лапласа. Нахождение оригинала функции по её изображению 175 KB
  Преобразование Лапласа. Нахождение оригинала функции по её изображению.
50878. Создание программного продукта линейной структуры в среде Delphi 258.5 KB
  Одни типы уже определены в языке другие программисту приходится задавать самому. Типы данных определяемые пользователем обычно задаются в разделе описания типов программы или модуля unit однако тип можно делать и внутри процедур и функций. Внутри же они заменяют все внешние типы с тем же именем. Простые типы данных Порядковые типы Целые типы Символьные типы Булевы типы Перечисляемые типы Поддиапазонные типы Любой реально существующий тип данных каким бы сложным он не казался на первый взгляд представляет собой простые...
50879. Парольная защита. Исследование программных аспектов парольной защиты 148 KB
  Исследовать зависимость длины пароля при фиксированных значениях от вероятности подбора пароля для заданных значений. Результаты работы предоставить в виде отчета: а краткое содержание последовательного порядка выполненных работ б по результатам решения задач построить график зависимостей S = fP проанализировать полученные зависимости и сформулировать выводы о том каким образом величина вероятности угадывания подбора пароля влияет на параметры: 1 длину пароля; 2 время жизни пароля при заданных значениях длины пароля и времени...
50880. Интерактивные элементы. Action Script 365 KB
  Кнопки Основное отличие кнопок состоит в том что они предназначены для реагирования на действия пользователя например нажатия на саму кнопку ее клавишный аналог или активную область в фильме. Timeline кнопки содержит всего четыре кадра: Up обычное состояние кнопки. Over изменение кнопки при нахождении над ней мыши. Если у вас будет несколько одинаковых кнопок достаточно создать только один образец кнопки накладывая на него необходимые надписи меняя цвет или размер экземпляров.
50881. Программирование в Delphi. Разработка программ с ветвлением 796.5 KB
  Например: Величина сопротивления равна нулю Ответ правильный Сумма покупки больше 300 рублей В программе условие это выражение логического типа Boolen которое может принимать одно из двух значений: True истина или Flse ложь. Операторы сравнения Оператор Описание Результат сравнения Больше True если первый операнд больше второго иначе Flse Меньше True если первый операнд меньше второго иначе Flse = Равно True если первый операнд равен второму иначе Flse Не равно True если первый операнд не равен второму иначе Flse =...
50882. Анимация во Flash mx 2004 9.29 MB
  Практическая часть Задание: Ознакомьтесь с ключевыми принципами работы с анимацией во FLSH MX 2004. Анимация и интерактивные мультимедийные приложения вот то что привлекает к Flsh MX 2004 большинство пользователей. Если его нет когда вы только запустили программу либо закрыли проект Timeline Временная шкала не будет отображена в рабочем окне Flsh.
50883. Временные характеристики линейных систем управления. Определение реакции системы на произвольное входное воздействие 237.5 KB
  Определение свободного и вынужденного движения системы. при ненулевых начальных условиях Cхема моделирования системы с использованием пакета Simulink Осциллограмма системы. Определить с использованием пакета Simulink реакцию системы с передаточной функцией при подаче на вход сигнала: 1. Определение реакции системы на сигнал сложной формы.
50884. Программирование в Delphi. Разработка программ со сложным ветвлением 737 KB
  Даны три стороны а в с. Если все стороны равны то Равносторонний если две стороны равны Равнобедренный если стороны не равны Разносторонний Даны три числа найти сумму отрицательных из них Даны три числа возвести в квадрат те из них значения которых не отрицательны а затем сложить. Даны три числа найти произведение тех чисел значение которых положительны Составить программу определяющую уровень облученности студента низкий средний достаточный высокий по его среднему балу Даны три числа вычислите корень...
50885. Анимация движения во FLASH MX 2004. Движение по маршруту. Программная анимация 4.82 MB
  Анимация трансформации формы (морфинг). Этот вид анимации следует реализовывать тогда, когда один графический объект мультфильма должен плавно видоизмениться в другой. Вы задаете только начальную и конечную формы, а промежуточные кадры будут заполнены автоматически.