- •Тема 1.4. (Продовження) Основи об'єктно-орієнтованого проектування мовою uml
- •1. Діаграми послідовності і кооперації.
- •Диаграммы последовательности
- •Диаграммы кооперации
- •Когда следует использовать диаграммы взаимодействия
- •2. Діаграми стану.
- •Диаграммы параллельных состояний
- •Когда использовать диаграммы состояний
- •3. Діаграми діяльності.
- •Декомпозиция деятельности
- •Динамическая параллельность
- •Дорожки
- •Когда использовать диаграммы деятельности
Декомпозиция деятельности
Деятельность может быть разделена на поддеятельности.
В данном случае деятельность по доставке выделена как отдельная со своим началом и окончанием. Можно также изобразить переходы, входящие или выходящие непосредственно из дочерней диаграммы. Достоинство явного указания начального и конечного состояний состоит в том, что в этом случае деятельность по доставке может быть использована в нескольких контекстах, и родительская диаграмма не будет зависеть от содержимого дочерней диаграммы.
Динамическая параллельность
Динамическая параллельность позволяет представлять итерации без изображения таких конструкций, как петля.
Деятельность Заполнить Строку Заказа выполняется только один раз для каждой позиции заказа. Маркер кратности (*) указывает, что эта деятельность может выполняться несколько раз. Переход к деятельности Доставка Заказа происходит только в том случае, когда все позиции отдельного заказа будут заполнены. Если несколько де- ятельностей должны некоторым образом выполняться совместно, это можно показать, пометив деятельность Заполнить Строку Заказа как составную.
Дорожки
Диаграммы деятельности говорят нам о том, что происходит, однако они ничего не говорят о том, кто участвует в выполнении соответствующих деятельностей. С точки зрения программирования это означает, что данная диаграмма не сообщает, какой класс отвечает за выполнение той или иной деятельности.
При моделировании предметной области это означает, что диаграмма не может сообщить, какие люди или подразделения отвечают за выполнение каждой деятельности. Один из способов решить эту проблему состоит в том, чтобы снабдить каждую деятельность меткой класса или человека, ответственного за ее выполнение. Это дает нужный результат, однако данный способ не обеспечивает такой ясности, как в диаграммах взаимодействия при изображении обмена сообщениями между объектами.
Другой способ решить проблему - изобразить так называемые дорожки (swimlanes).
Для использования дорожек необходимо с помощью пунктирных линий разделить диаграммы деятельности на вертикальные зоны. Каждая зона представляет собой зону ответственности конкретного класса или отдельного организационного подразделения.
Преимущество дорожек проявляется в том, что они позволяют объединить логику представления диаграммы деятельности с представлением ответственности на диаграмме взаимодействия.
Когда использовать диаграммы деятельности
Анализ варианта использования. На этом этапе не интересует связь между действиями и объектами; только нужно понять, какие действия должны иметь место и каковы зависимости в поведении системы.
Понимание потока работ. Прежде чем приступить к рассмотрению содержания вариантов использования, целесообразно привлечь диаграммы деятельности для лучшего понимания соответствующего бизнес-процесса. Эти диаграммы лучше разрабатывать совместно с бизнес-аналитиками, поскольку при этом можно понять особенности бизнес-процесса и возможности его изменения.
Описание сложного последовательного алгоритма. В этом случае диаграмма деятельности не позволяет представить ничего сверх того, что может быть изображено на согласованной с обозначениями языка UML схеме алгоритма. При этом можно использовать принятые на схемах алгоритмов специальные обозначения.
Работа с многопоточными приложениями.
Диаграммы деятельности не следует использовать в следующих ситуациях:
Пытаться представить кооперацию объектов. Диаграммы взаимодействия являются более простыми и обеспечивают более наглядное представление кооперации.
Пытаться представить поведение объектов в течение их жизненного цикла. Для этой цели лучше использовать диаграмму состояний.
Представление сложных логических условий. Для этой цели лучше использовать таблицу истинности.
