Слайд 1Курганский государственный университет
Кафедра программного обеспечения автоматизированных систем
К У Р С
Л Е К Ц И Й
по дисциплине
ВВЕДЕНИЕ
В ПРОГРАММНУЮ ИНЖЕНЕРИЮ
для студентов направления 231000.62
«Программная инженерия»
Лекция 3.5. Моделирование поведения программной системы.
UML-диаграммы деятельности
(Activity Diagram)
Слайд 2План лекции
1. Состояние действия
2. Переход
3. Управление ветвлением
4. Управление параллелизмом
5. Моделирование
бизнес-процессов
6. Синхронизация
7. Контрольное задание
Слайд 3Введение
При моделировании поведения проектируемой программной системы возникает необходимость детализировать особенности
алгоритмической и логической реализации выполняемых системой операций. Традиционно для этой
цели использовались блок-схемы алгоритмов.
В языке UML для моделирования процесса выполнения операций используются диаграммы деятельности, на которых присутствуют обозначения состояний системы и переходов системы из одних состояний в другие.
Каждое состояние на диаграмме деятельности соответствует выполнению некоторой элементарной операции, а переход в следующее состояние происходит только при завершении этой операции в предыдущем состоянии.
Основное назначение диаграмм деятельности - визуализация алгоритмов реализации операций классов. При этом каждое состояние может связываться с выполнением операции некоторого класса.
Диаграмма деятельности может разрабатываться для целой подсистемы, для отдельного варианта использования, отдельного класса или отдельной операции класса, а также для наглядного представления бизнес-процессов, позволяя специфицировать деятельность подразделений компаний.
Слайд 4Основные компоненты диаграммы деятельности
Деятельность (activity) представляет собой совокупность действий (actions),
каждое из которых может приводить к некоторому результату.
На диаграмме
деятельности отображается последовательность переходов системы от одного состояния действия к другому, при этом результат действия может привести к изменению состояния системы или возвращению некоторого значения.
Диаграмма деятельности представляется в форме графа деятельности, вершинами которого являются состояния действия (action states), а дугами – переходы (transitions) от одного состояния действия к другому.
Слайд 5Состояние действия
Состояние действия (action state) используется для моделирования одного элементарного
шага выполнения алгоритма (процедуры) или потока управления и характеризуется одним
входным действием и, по крайней мере, одним выходящим из состояния переходом.
Этот переход неявно предполагает, что входное действие уже завершилось. Состояние действия не может иметь внутренних переходов, поскольку оно является элементарным.
Графически состояние действия изображается прямоугольником со скругленными углами, внутри которого записывается выражение действия (action-expression), которое должно быть уникальным в пределах одной диаграммы деятельности.
Выражение действия может быть записано на естественном языке, языке программирования или псевдокоде. Рекомендуется в качестве имени простого действия использовать глагол с пояснительными словами (а).
Если же действие может быть представлено в некотором формальном виде, то целесообразно записать его на том языке программирования, на котором предполагается реализовывать конкретный проект (б).
Слайд 6Состояния под-деятельности
(subactivity state)
Когда возникает необходимость представить на диаграмме
деятельности сложное действие, состоящее из нескольких более простых действий, используют
специальное обозначение состояния под-деятельности (subactivity state).
Каждое такое состояние является графом деятельности и обозначается специальной пиктограммой в правом нижнем углу символа состояния действия, подчеркивающей вложенность структуры.
Каждая диаграмма деятельности должна иметь единственное начальное и единственное конечное состояние, для которых используются специальные графические примитивы.
Диаграмму деятельности принято располагать таким образом, чтобы действия следовали сверху вниз, при этом начальное состояние всегда будет изображаться в верхней части диаграммы, а конечное – в нижней.
Слайд 7Переход
Переход (transition) представляет собой отношение между двумя последовательными состояниями, которое
указывает на факт смены одного состояния другим.
Пребывание моделируемого объекта
в некотором ("исходном") состоянии сопровождается выполнением определенных действий, а переход в следующее ("целевое") состояние будет возможен только после завершения выполнения этих действий - в этом случае говорят, что происходит срабатывание перехода.
При построении диаграммы деятельности используются только нетриггерные переходы, т. е. такие, которые не управляются событиями, а срабатывают сразу после выполнения соответствующего действия в исходном состоянии.
Слайд 8Управление ветвлением
Переход изображается на диаграмме сплошной линией со стрелкой, соединяющей
исходное и целевое состояния и направленной в целевое состояние.
Исходное
состояние может иметь один или несколько альтернативных переходов: если переход всего один, то его линия на диаграмме никак не помечается, а если переходов несколько, то каждый из них должен быть "помечен" строкой текста, заключенной в прямые скобки – так называемым сторожевым условием (guard condition), представляющим собой любое корректное логическое выражение.
При этом из всех выходящих из состояния переходов сработать должен только один – тот, для которого сторожевое условие получит истинное значение после завершения действия соответствующего состояния.
Таким образом реализуется ветвление деятельности, то есть разделение ее на несколько взаимно исключающих ветвей в зависимости от значения некоторого промежуточного результата.
Для обозначения ветвления на диаграмме применяется специальный символ – ромб, вершины которого связывают стрелки входящих и выходящих переходов.
Стрелки, направленные в целевые состояния помечаются соответствующими сторожевыми условиями.
В качестве примера на следующем слайде приведен фрагмент диаграммы деятельности для моделирования операции приема платежа по кредитной карте за товар, приобретаемый в супермаркете.
Слайд 9Пример диаграммы деятельности с ветвлениями
Слайд 10Управление параллелизмом
Один из существенных недостатков обычных блок-схем алгоритмов связан с
проблемой изображения параллельных ветвей алгоритмов.
В языке UML для этой
цели используется специальный символ для обозначения переходов-разделений и переходов-слияний: прямая утолщенная черта, соединяющая входящие и выходящие линии переходов.
Не следует путать переходы-разделения (а) с рассмотренными выше ветвлениями, реализующими переходы к альтернативным (то есть взаимно исключающим) целевым состояниям.
В случае с разделением при срабатывании входящего перехода безальтернативно срабатывают все выходящие переходы, и становятся активными одновременно несколько целевых состояний.
Для перехода-слияния (б) выходящий переход сработает только при срабатывании всех без исключения входящих в него переходов.
Слайд 11Диаграмма деятельности с разделением и слиянием переходов
Для иллюстрации особенностей
отображения параллельных процессов выполнения действий рассмотрим классический пример операции приготовления
(и потребления) кофе
Сторожевые условия выполнения альтернативных переходов на диаграмме не показаны - предлагается записать их самостоятельно.
Слайд 12Моделирование бизнес-процессов
Диаграммы деятельности могут быть использованы не только для спецификации
алгоритмов вычислений или потоков управления в программных системах - не
менее важная область их применения связана с моделированием бизнес-процессов.
Применительно к бизнес-процессам желательно выполнение каждого действия ассоциировать с конкретным подразделением компании. В этом случае подразделение несет ответственность за реализацию отдельных действий, а сам бизнес-процесс представляется в виде переходов действий как внутри одного подразделения, так и из одного подразделения к другому.
Для моделирования этих особенностей в языке UML используется специальная конструкция, получившее название дорожки (swimlanes - по визуальной аналогии с плавательными дорожками в бассейне). При этом все состояния действия на диаграмме деятельности группируются по их исполнителям (подразделениям компании), и каждая такая группа помещается на отдельной дорожке диаграммы, отделяемой от соседних дорожек вертикальными линиями.
Название подразделения явно указывается в верхней части соответствующей дорожки.
Порядок следования дорожек не несет какой-либо семантической информации и определяется соображениями удобства отображения информации.
Слайд 13Пример диаграммы деятельности торговой компании
На рисунке приведен фрагмент диаграммы
деятельности торговой компании, обслуживающей клиентов по телефону.
Каждому их трех
подразделений компании - отделу приема и оформления заказов, отделу продаж и складу на диаграмме выделена соответствующая дорожка.
Как видим, диаграмма деятельности описывает не только последовательность выполнения торговых операций, но и содержит информацию о зоне ответственности подразделений компании за их исполнение.
Слайд 14Объекты
Действия, состояния которых отображаются на диаграмме деятельности, выполняются над определенными
объектами, которые либо инициируют выполнение действий, либо определяют их результат.
При этом действия специфицируют вызовы, которые передаются от одного объекта графа деятельности к другому. Поскольку в таком ракурсе объекты играют определенную роль в понимании процесса деятельности, иногда возникает необходимость явно указать их на диаграмме деятельности.
Для графического представления объекта используются уже знакомый нам символ прямоугольника класса, с тем отличием, что имя объекта подчеркивается, а после имени в прямых скобках может указываться [характеристика состояния объекта].
Символы объектов на диаграмме деятельности присоединяются к состояниям действия отношением зависимости, обозначаемым пунктирной линией со стрелкой. Такая зависимость определяет состояние объекта после выполнения предшествующего действия.
На диаграмме деятельности с дорожками расположение объекта может иметь некоторый дополнительный смысл: например, если объект расположен на границе двух дорожек, то это может означать, что переход к следующему состоянию действия в соседней дорожке ассоциирован определенным состоянием объекта (например, с готовностью некоторого документа); если же объект целиком расположен внутри дорожки, то его состояние целиком определяется действиями данной дорожки.
Слайд 15Пример диаграммы деятельности с объектом-заказом
Слайд 16Синхронизация параллельно выполняемых действий
Необходимость в синхронизации отдельных действий на
диаграмме деятельности возникает в случаях, когда параллельно выполняемые действия оказывают
влияние друг на друга.
На диаграмме деятельности синхронизация параллельных процессов реализуется с помощью рассмотренных выше символов переходов "разделение-слияние".
Постройка дома включает в себя два параллельно выполняемых процесса: общестроительные работы и работы по электрификации дома.
Очевидно, что работы по подведению к строящемуся дому линии электроснабжения могут выполняться параллельно с работами по возведению фундамента и стен дома.
В то же время, начало работ по прокладке внутридомовой электропроводки должно быть синхронизировано с завершением работ по возведению стен, а начало отделочных работ должно быть синхронизировано с завершением работ по прокладке внутридомовой электропроводки.
Из диаграммы видно, что, например, система перейдет в целевое состояние действия "Отделочные работы" только после завершения двух параллельно выполняющихся действий: "Возведение крыши" и "Прокладка внутренней электропроводки" и срабатывания соответствующих переходов.
Слайд 17Контрольное задание
Используя диаграмму деятельности "Строительство коттеджа", приведенную на предыдущем слайде,
разработайте диаграмму деятельности с дорожками и объектами с учетом следующих
усложнений:
Дополнительно выполняются работы по газификации дома, отоплению, водоснабжению, канализации (подведение и внутренняя разводка соответствующих коммуникаций) и обустройству придомовой территории.
Весь комплекс работ выполняется специализированными бригадами:
"Землеустроители"
"Бетонщики"
"Каменщики"
"Кровельщики"
"Отделочники"
"Электрики"
"Газовики"
"Сантехники и водопроводчики"
Завершение каждого этапа работ оформляется соответствующей записью в общем документе – акте выполненных работ.