Форум Сообщества Аналитиков

Общий раздел => Теория моделирования и нотации => UML SysML и пр. => Тема начата: Stanislav.A от 29 Ноября 2010, 14:02:43

Название: Diagram: Activity vs Sequence
Отправлено: Stanislav.A от 29 Ноября 2010, 14:02:43
Подскажите начинающему аналитику, прочитавшему умную книжку, но ничего не понимающему на практике:
Диаграммы последовательностей и действий используются для разных целей или они взаимозаменяемые?
Если нет, то для каких задач больше подходит диаграмма последовательностей и для каких диаграмма действий.

Спасибо!
Название: Re: Diagram: Activity vs Sequence
Отправлено: Galogen от 29 Ноября 2010, 14:51:43
Прагматика использования естественно разная. Однако одну и ту же информацию можно изобразить на этих диаграммах. Но не следует я думаю смешивать семантику.

ДД - это дань блок-схемам, семантика - сети Петри. Идеально подходить для описания алгоритмов (например реализаций операций), но не только. Но никак не приближает к объектной реализации

ДП - диаграмма взаимодействия, показывает последовательность (протокол) взаимодействия объектов и естественно приближает нас максимально к объектной реализации
Название: Re: Diagram: Activity vs Sequence
Отправлено: Stanislav.A от 30 Ноября 2010, 12:59:18
Большое спасибо за ответ.
Я понял следующее:
1. Чисто теоретически, любой процесс или операция могут быть изображены и с помощью ДП и с помощью ДА.
2. ДП более ОО. Линии жизни, по сути, это аналитические классы. Из ДП гораздо проще будет построить проектную модель, т.к. классы и их взаимодействие уже подробно описаны.
Название: Re: Diagram: Activity vs Sequence
Отправлено: Galogen от 30 Ноября 2010, 13:30:05
2. ДП более ОО. Линии жизни, по сути, это аналитические классы. Из ДП гораздо проще будет построить проектную модель, т.к. классы и их взаимодействие уже подробно описаны.
Линия жизни - вовсе не аналитический класс, а именно линия жизни, т.е. некая продолжительность существования конкретного объекта. Не класса - класс - это спецификация, тип, он существовать не может. Его реальное воплощение - это объекты.
В целом да, более того ДП заточена на выявление операций класса и кроме того показывает фрагменты поведения при взаимодействии наиболее явным для ООП образом
Название: Re: Diagram: Activity vs Sequence
Отправлено: maksiq от 30 Ноября 2010, 14:04:43
Еще диаграмма деятельности (activity) может использоваться (и это - часто оправдано) вне непосредственно системы, для изображения реальных бизнес-процессов заказчика. А также в случае, если система сложна и обладает собственной активностью. А диаграмма последовательности - это именно нитка обработки в ответ на некоторойе внешнее воздействие.
Название: Re: Diagram: Activity vs Sequence
Отправлено: lnew от 19 Декабря 2010, 14:38:31
Давно дело было. Может быть это уже не интересно. Но я хотел бы добавить к выступлениям предыдущих ораторов еще один аспект.
Можно вполне выкинуть из названия темы "vs":

Хотя в UML2 диаграмма последовательности существенно расширена и ее уже никак нельзя назвать диаграммой сценариев (сценарий ифов иметь не может, это детерминированная последовательность), но все же описание логики процесса очень перегружает. Для машины - это не препятствие (различного рода преобразования MDA, в том числе кодогенерация). Но для человека - это кошмар!

В UML2 есть новая диаграмма. Я перевел ее название как "диаграмма обзора взаимодействий". Как на английском - не помню. Может быть я ошибаюсь, мне кажется, что ни в одном из инструментов моделирования она "впрямую" не реализована. Я упоминаний не встречал.

Что я делаю для борьбы со сложностью (на Rational Software Architect):
- верхний уровень процесса я представляю в виде диаграммы деятельности, узлы которой - вызываемые поведения
- вызываемые поведения, в зависимости от сложности, раскрываю с помощью деятельностей или взаимодействий
- двойной щелчок по узлу диаграммы деятельности "проваливает" в диаграмму, которая описывает соответствующую вызываемую деятельность или взаимодействие.
Очень удобно.

Должен заметить еще, что диаграмма деятельности в UML2 существенно приблизилась к ОО: потоки (разделы) представляют экземпляры классов. Вопрос выбора - скорее вопрос традиций.
Общепринято, что чем ближе к коду, тем проще выглядит диаграмма последовательности (за счет декомпозиции процессов на верхних уровнях).

http://lnew.ucoz.ru
Название: Re: Diagram: Activity vs Sequence
Отправлено: [прилетело НЛО и...] от 25 Июня 2022, 20:21:19
Одно и то же поведение может быть описано разными диаграммами. В зависимости от используемой диаграммы будут визуализированы разные аспекты этого поведения. Диаграмма последовательности визуализирует взаимодействие в рамках описываемого поведения, при чём выражает его в виде обменов сообщениями. Диаграмма деятельности визуализирует потоки управления и/или данных в рамках описываемого поведения, выражая их в виде действий и управления. Получается что два типа диаграмм дают два вида проекций. Разные проекции одного и того же поведения могут быть схожи до такой степени, что по потокам управления можно догадаться и/или "прочесть между строк" о том, каким будет взаимодействие. В другую сторону это тоже может быть справедливо. Но это не всегда так. Проекции могут существенно расходится.
Алгоритм, реализация операции могут быть описаны в обеих проекциях.
Выбор типа диаграммы определяется задачей, но это не задача, сформулированная так: "смоделировать алгоритм / операцию / что-то ещё". Это задача в формулировке которой указано, какой аспект важен: передача управления и/или данных между отдельными шагами или обмен сообщениями между объектами.