Теория и практика UML. Диаграмма деятельностиСоздание Информационной Системы – сложный процесс, который можно представить как поэтапный спуск от общей концепции будущей ИС, через понимание ее логической структуры к наиболее детальным моделям, описывающим физическую реализацию. Диаграмма деятельности принадлежит к логической модели. В качестве графического представления для выделения основных функций Системы мы применяем диаграмму вариантов использования (use case).
То есть если варианты использования ставят перед Системой цель, то диаграмма деятельности показывает последовательность действий, необходимых для ее достижения. Действия (action) это элементарные шаги, которые не предполагают дальнейшую декомпозицию. Деятельность может содержать входящие и/или исходящие дуги деятельности, показывающие потоки управления и потоки данных. Если поток соединяет две деятельности, он является потоком управления. Если поток заканчивается объектом, он является потоком данных. Деятельность выполняется, только тогда, когда готовы все его «входы», после выполнения, деятельность передает управление и(или) данные на свои «выходы». Саму диаграмму деятельности принято располагать таким образом, чтобы действия следовали слева направо или сверху вниз. Чтобы указать, где именно находится процесс, используется абстрактная точка «маркер» (или «токен»). Визуально на диаграмме маркер не показывается, данное понятие вводится только для удобства описания динамического процесса. Переход маркера осуществляется между узлами. Маркер может не содержать никакой дополнительной информации (пустой маркер) и тогда он называется маркером управления (control flow token) или же может содержать ссылку на объект или структуру данных, и тогда маркер называется маркером данных (data flow token). Для создания диаграммы деятельности используются следующие узлы:
Для отображения расширений сценария на диаграмме деятельности используются, так называемые узлы решения . В точку ветвления входит ровно один переход, а выходит - два или более. Для каждого исходящего перехода задается булевское выражение, которое вычисляется только один раз при входе в точку ветвления. Ни для каких двух исходящих переходов эти сторожевые условия не должны одновременно принимать значение "истина", иначе поток управления окажется неоднозначным. Желательно чтобы условия покрывали все возможные варианты, иначе поток остановится. Для пометки исходящего перехода, который должен быть выбран в случае, если условия, заданные для всех остальных переходов не выполнены, разрешается использовать ключевое слово else. Далее следует обратить внимание на такой элемент, как узел объединение. Узел объединения имеет два и более входящих узла и один исходящий. Для отображения условий соответствующих логическому оператору «и» на диаграмме используются синхронизационная черта.
Точка слияния обеспечивает синхронизацию нескольких параллельных потоков.
Также диаграмма действия может описывать поведение, на которое оказывают влияние внешние события, происходящие за пределами данной Системы. На диаграмме это может быть показано при помощи изображения передачи сигнала. Передача сигнала может изображаться путем помещения между двумя действиями соответствующего элемента. Данная семантика была принята в UML 2.0. Передача сигнала (send signal action) - действие, которое на основе своих входов создает экземпляр сигнала и передает его внешней Системе. Прием события (receive event action) - действие, которое ожидает некоторого события, принимает и обрабатывает полученное сообщение. На диаграмме представлено взаимодействие двух независимых Систем: «Учетная система» и «Веб-магазин».
Для изображения передачи сигнала мы можем поместить между двумя узлами деятельности символ деятельности передачи или ожидания сигнала, или непосредственно узел объекта, который будет символизировать сигнал. Для отображения объекта, осуществляющего управление потоками из нескольких источников, в UML 2 появилось два специальных узла: центральный буфер и хранилище данных. Центральный буфер - объект, который управляет потоками между множественными источниками и приемниками. На диаграмме центральный буфер представляется в виде объекта со стереотипом <. Данный объект может применяться на уровне описания реализации функций Системы для визуализации временных таблиц. На рисунке представлена диаграмма, которая отражает сценарий формирования списка сравнения товаров:
Для оптимизации диаграммы входные и выходные объекты могут заменяться изображением «контакт». Входной контакт, в данном случае, является узлом объекта, который принимает значения от других действий в форме потока объектов. Соответственно выходной контакт поставляет значения другим действиям в форме потока объекта. Частный случай Центрального буфера – Хранилище данных. Если пришедший заказ уже содержится в хранилище, то предыдущий объект будет заменен. Далее следует подробно рассмотреть разбиение деятельности на разделы. Разделы группируют действия относительно какой-либо общей характеристики, при этом на течение потоков эта группировка никак не влияет. В более ранних версиях UML использовалось такое понятие как дорожки (swimlanes) по аналогии с дорожками в плавательном бассейне. Дорожки, используемые при данной структуре диаграммы деятельности, зачастую символизируют роль пользователя или организационное подразделение, осуществляющее определенные действия в рамках данной деятельности.
В UML 2 принято правило применять горизонтальное расположение дорожек для отображения модели бизнес-процесса. Для оптимизации диаграммы деятельности, использование дорожек можно заменить указанием наименования раздела перед наименованием действия. Как уже говорилось, для описания процессов верхнего уровня на диаграмме мы показываем переход между деятельностями, которые в свою очередь содержат свою последовательность деятельностей или действий. Спецификация UML дает несколько способов представления декомпозиции деятельности на диаграмме. Мы можем использовать обозначение под-деятельности (subactivity state), где указываем:
Данная форма не дает нам представления о последовательности действий для данной деятельности, а лишь предоставляет ссылку на более детальную диаграмму. При необходимости описание последовательности действий для под-деятельности может быть размещено непосредственно на основной диаграмме. Для этого описание под-деятельности размещается в отдельный фрейм. При таком способе декомпозиции мы можем указать:
Диаграмма деятельности – мощный инструмент, который интенсивно используется при создании ИС. В зависимости от, поставленной перед нами задачи мы создаем диаграмму деятельности, используя тот набор элементов, который необходим для отражения определенного уровня детализации. Таким образом, диаграмма деятельности может применяться как для описания бизнес-процесса, так и функциональных требований к Системе. Цель концептуального описания - показать целостную картину бизнес-процессов предметной области.
На слайде показаны стандартные UML-объекты «действие» и «объект», но со специальными стереотипами:
Для создания концептуальной модели необходимо выделять только основные процессы, так как вспомогательные процессы и сущности могут перегружать диаграмму. Также концептуальная модель должна включать только процессы верхнего уровня. Далее можно детализировать каждый процесс на отдельной диаграмме, как это показано на следующем слайде. Диаграмма деятельности данного вида хорошо отражает:
Для того чтобы отобразить соответствие деятельности определенному пользователю или Системе к данной диаграмме можно применить «дорожки». Так как в нашем случае все действия выполняются менеджером, применение разделителей не целесообразно. Данный способ иллюстрации бизнес-процесса может охватывать не только действия, происходящие внутри, разрабатываемой системы, но производящиеся за ее пределами, что необходимо для формирования четкого представления о процессе в целом. Наш пример содержит только действия, совершаемые в рамках ИС, поэтому данная диаграмма может быть помещена в качестве иллюстрации к сценарию использования в раздел «Общее описание функций» документа «Техническое задание на разработку ИС». Если, на диаграмме последовательность действий будет включать деятельность, выходящую за рамки ИС (например, «оплатить товар»), она может быть размещена в разделе «Сведения об объекте автоматизации». Также диаграмма деятельности целесообразна для описания требований на уровне взаимодействия компонентов Системы. Целевой аудиторией в данном случае будет являться команда разработчиков. Если на диаграмме необходимо показать последовательность действий, вызываемых сторонними Системами, то целесообразно добавить элементы получения и приема сигналов. Статья подготовлена с использованием материалов:
|