Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по CASE-технологиям 2.doc
Скачиваний:
203
Добавлен:
27.03.2015
Размер:
1.04 Mб
Скачать

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

Диаграмма деятельности (activity diagram) представляет особую форму конечного автомата, в которой показываются процесс вычислений и потоки работ [2], [10], [11]. В ней выделяются не обычные состояния объекта, а состояния выполняемых вычислений — состояния действий. При этом полагается, что процесс вычислений не прерывается внешними событиями. Сло­вом, диаграммы деятельности очень похожи на блок-схемы алгоритмов.

Основным элементом в диаграмме деятельности является состояние действия (action state) (см. рис. 2.33), которое изображается как прямоугольник с закругленными боковы­ми сторонами.

Рис. 2.33. Состояние действия

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

Рис. 2.34. Состояние под-деятельности

Фактически в данную вершину вписывается имя другой диаграммы, имеющей внутреннюю структуру.

Переход (transition) между вершинами — состояниями действий — изображается в виде стре­лки. Переходы выполняются по окончании действий.

Кроме того, в диаграммах деятельности используются вспомогательные элементы:

  • решение (decision) ― небольшой ромб с одной входящей и несколькими исходящими стрелками;

  • объединение ― небольшой ромб с несколькими входящими и одной исходящей стрелкой;

  • линия синхронизацииразделение (concurrent fork) ― отрезок горизонтальной линии, толщина которой несколько шире основных сплошных линий диаграммы, с одной входящей и несколькими исходящими стрелками;

  • линия синхронизациислияние (concurrent join) ― отрезок горизонтальной линии, толщина которой несколько шире основных сплошных линий диаграммы, с несколь­кими входящими и одной исходящей стрелкой;

  • начальное состояние (start state) ― небольшой черный круг;

  • конечное состояние (end state) ― небольшой не закрашенный круг, в котором размещен черный круг меньшего размера.

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

Элемент объединение отмечает точку слияния альтернативных потоков действий.

Линии синхронизации позволяют показать параллельные потоки действий, от­мечая точки их синхронизации при запуске (момент разделения) и при заверше­нии (момент слияния).

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

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

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

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

Рис. 2.35. Диаграмма деятельности торговой компании с объектом-заказом

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

Упражнение

Постройте диаграмму деятельности для варианта использования Снять деньги со счета в системе АТМ (см. рис. 2.36).

Этапы выполнения упражнения

Создание диаграммы деятельности и добавление названия диаграммы

  1. Найдите в браузере вариант использования Снять деньги со счета. Щелкните на нем правой кнопкой мыши и в открывшемся меню укажите пункт New > Activity Diagram (Создать диаграмму деятельности).

Рис. 2.36. Диаграмма деятельности для системы АТМ

  1. Нажмите кнопку Text Box (Текст) панели инструментов. Поместите этот элемент в верхней части созданной диаграммы. Введите текст названия диаграммы Диаграмма деятельности АТМ при снятии денег со счета.

Добавление начального и конечного состояний

1. Нажмите кнопку Start State (Начальное состояние) панели инструментов. Поместите это состояние на диаграмму деятельности.

2. Нажмите кнопку End State (Конечное состояние) панели инструментов. Также поместите это состояние на диаграмму деятельности.

Добавление деятельностей

1. Нажмите кнопку Activity (Деятельность) панели инструментов. Поместите эту деятельность на диаграмму между начальным и конечным состояниями. Назовите деятельность Аутентифицировать личность владельца карточки.

2. Повторив п.1, создайте деятельности, представленные на рис. 2.36.

Добавление символов ветвления

1. Нажмите кнопку Decision (Решение) панели инструментов. Поместите этот элемент на диаграмму деятельности.

2. Повторите п.1 для добавления еще пяти таких элементов на диаграмму (см. рис. 2.36).

Добавление линии синхронизации

Нажмите кнопку Horizontal Synchronization (Горизонтальная линия синхронизации) панели инструментов. Поместите этот элемент на диаграмму деятельности (см. рис. 2.36).

Добавление переходов

1. Нажмите кнопку State Transition (Переход) панели инструментов. Щелкните мышью на начальном состоянии. Проведите линию перехода к деятельности Аутентифицировать личность владельца карточки.

2. Повторив п.1, создайте остальные переходы на диаграмме (см. рис. 2.36).

Описание переходов

1. Дважды щелкнув мышью на переходе, откройте окно спецификации перехода.

Перейдите на вкладку Detail (Подробно). В поле Guard Condition (Сторожевое условие) введите нужную фразу, например, Проверка прошла. Щелкнув на кнопке ОК, закройте окно спецификации.

2. Повторив п.1, занесите остальные сторожевые условия на диаграмму (см. рис. 2.36).