Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП - Краткие ответы.doc.doc
Скачиваний:
22
Добавлен:
15.04.2019
Размер:
479.74 Кб
Скачать
  1. Диаграммы активности (деятельностей).

Диаграммы деятельностей – это одна из самых больших неожиданностей UML. Используются для описания поведения систем.

В отличие от большинства других средств UML диаграммы деятельностей не имеют отношения к работам «троих друзей». Диаграммы деятельностей сочетают в себе идеи различных методов: диаграмм событий Джима Оделла, диаграмм состояний SDL и сетей Петри. Эти диаграммы особенно полезны в сочетании с потоками работ, а также в описании поведения, которое включает параллельные процессы.

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

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

На диаграмме, построенной с точки зрения спецификации или реализации, деятельность – это некоторый метод над классом.

Рассмотрим пример на рис.6.8.1. Диаграмма деятельностей описывает метод над типом Личность.

Мы видим на примере, что за каждой деятельностью может следовать другая деятельность. В этом случае они образуют простую последовательность (например, за деятельностью «Положить Кофе в Фильтр» следует деятельность «Вставить Фильтр в Автомат»). При таком подходе диаграмма деятельностей напоминает блок-схему.

Разницу можно обнаружить, если посмотреть на деятельность «Поискать Напиток». Эта деятельность активизирует два действия: каждое действие содержит условие, которое может принимать одно из двух значений: «истина» или «ложь» (так же, как на диаграмме состояний). У нас Личность осуществляет деятельность «Поискать Напиток», выбирая между кофе и колой.

Предположим, что мы отыскали кофе, то есть идем вниз по «кофейному» маршруту. Этот путь ведет к линейке синхронизации, с которой связана активизация трех деятельностей: «Положить Кофе в Фильтр», «Добавить Воду в Ёмкость» и «Достать Чашки». Диаграмма указывает, что эти три деятельности могут выполняться параллельно. Причем порядок их выполнения не играет роли: их можно выполнять в любой последовательности, а можно и чередовать друг с другом (например, достать одну чашку, затем добавить немного воды в ёмкость; достать другую чашку, добавить еще немного воды и т.д.). А можно делать некоторые вещи одновременно: одной рукой наливать воду, а другой доставать чашки. Любой из этих вариантов допустим. Это и показывает линейка синхронизации, то есть выбор порядка выполнения действий остается за Личностью (за тем, кто выполняет эти действия). В этом заключается главное различие между диаграммой деятельностей и блок-схемой, то есть блок-схемы обычно показывают последовательные процессы, а диаграммы деятельностей могут поддерживать дополнительно параллельные процессы.

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

Итак, если при описании поведения системы выявляются параллельные процессы (деятельности), то их необходимо синхронизировать.

Простая линейка синхронизации (как в примере) показывает, что выходная деятельность ( «Включать Автомат» ) активизируется только тогда, когда выполнены обе входные деятельности: «Добавить Воду в Емкость» и «Вставить Фильтр в Автомат». Линейки могут быть и более сложными.

Обратите внимание, что второе решение (первое – «Поискать Напиток») относится к составным. Если кофе нет, то приходим ко второму решению, связанному с колой. При такой последовательности решений второе решение обозначается ромбом. Количество вложенных решений может быть любым.

Далее обратите внимание, что деятельность «Выпить Напиток» имеет два входа. Это означает, что она будет выполнена в любом случае, т. е. рассматривается как условие «ИЛИ» (выполняется, если выполняется хотя бы одна из двух входящих деятельностей). Линейку же синхронизации можно рассматривать как условие «И».

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]