10 KiB
1 bpmn 2 "data association" и "association"
Представь таблицей: тип объекта источника (начало связи) - тип связи - тип объекта приемника (конец связи).
таблица, показывающая применение связей "Data Association" и "Association" в BPMN 2.0:
| Тип объекта источника | Тип связи | Тип объекта приемника | Описание |
|---|---|---|---|
| Data Object | Data Association | Activity | Показывает, что данные являются входом для активности |
| Activity | Data Association | Data Object | Показывает, что данные создаются/изменяются активностью |
| Data Object | Data Association | Event (Start, Intermediate, End) | Показывает, что данные связаны с событием |
| Text Annotation | Association | Любой BPMN элемент | Связывает текстовую аннотацию с элементом |
| Data Object | Association | Activity | Альтернативный способ показать связь данных с активностью |
| Group | Association | Множество элементов | Группирует логически связанные элементы |
| Activity (Task, Subprocess) | Data Association | Data Store | Показывает чтение/запись в хранилище данных |
Подробнее о типах связей:
Data Association:
- Используется для показа потоков данных между элементами
- Изображается пунктирной линией со стрелкой
- Может иметь маркеры Input/Output
Association:
- Используется для различных видов ассоциаций
- Изображается пунктирной линией без стрелки (или со стрелкой)
- Часто используется для связи Text Annotation с элементами
В контексте процесса "Согласование документа":
- Data Association будет связывать объекты данных ("Заявление", "Справка") с задачами
- Association может использоваться для добавления текстовых пояснений к элементам процесса
2 не показано, что может быть связь "Поток управления" - ассоциация - Data Object. А также "Поток управления" - ассоциация по данным - Data Object
Уточняю таблицу с учетом потоков управления и направленности связей:
Таблица связей в BPMN 2.0
| Тип объекта источника | Тип связи | Тип объекта приемника | Направленность | Описание |
|---|---|---|---|---|
| Activity | Data Association → | Data Object | Направленная | Поток данных ОТ активности К данным |
| Data Object | Data Association → | Activity | Направленная | Поток данных ОТ данных К активности |
| Sequence Flow | Association → | Data Object | Направленная | Связь потока управления с объектом данных |
| Sequence Flow | Data Association → | Data Object | Направленная | Поток данных от управления к данным |
| Text Annotation | Association --- | Любой элемент | Ненаправленная | Связь аннотации с элементом |
| Group | Association --- | Множество элементов | Ненаправленная | Группировка элементов |
| Data Object | Association --- | Activity | Ненаправленная | Общая связь данных с активностью |
Уточнение по направленности:
Data Association:
- ❌ Всегда направленная (имеет стрелку)
- Показывает поток данных между элементами
- Не может быть ненаправленной
Association:
- ✅ Может быть как направленной, так и ненаправленной
- Направленная: пунктир со стрелкой →
- Ненаправленная: пунктир без стрелки ---
- Используется для различных видов связей
Ключевой момент: Data Association всегда показывает направление потока данных, в то время как обычная Association может быть использована более гибко.
3
Визуальные различия Data Association и Association
1. Визуальное представление в BPMN 2.0:
Data Association:
[Activity] -.-> [Data Object] (пунктир со стрелкой →)
Association (направленная):
[Element] ---> [Data Object] (пунктир со стрелкой →)
Association (ненаправленная):
[Element] --- [Data Object] (пунктир без стрелки)
2. Семантическое различие связей с Sequence Flow:
"Связь потока управления с объектом данных" (Association):
- Это структурная/справочная связь
- Показывает, что объект данных как-то связан с потоком управления
- Не подразумевает передачи данных
- Пример: "При переходе по этому потоку требуется документ X"
"Поток данных от управления к данным" (Data Association):
- Это операционная связь
- Показывает фактическую передачу/обработку данных
- Подразумевает, что данные читаются/записываются
- Пример: "При переходе записывается результат в документ X"
Наглядная таблица различий:
| Аспект | Data Association | Association |
|---|---|---|
| Стрелка | Обязательна | Опциональна |
| Направленность | Всегда направленная | Может быть ненаправленной |
| Семантика | Поток данных | Структурная связь |
| С Sequence Flow | Данные обрабатываются | Данные ссылаются |
| Визуально | Пунктир + стрелка | Пунктир ± стрелка |
Ключевое различие: Data Association показывает операции с данными, а Association - контекстные или справочные связи.
4
Типы потоков:
- Sequence Flow - сплошная линия со стрелкой → (поток управления)
- Message Flow - пунктирная линия с окружностью ○---→ (поток сообщений)
- Association - пунктирная линия ± стрелка --- или ---→
- Data Association - пунктирная линия со стрелкой -.->
Уточненная таблица связей:
| Тип объекта источника | Тип связи | Тип объекта приемника | Направленность |
|---|---|---|---|
| Activity/Event/Gateway | Data Association → | Data Object | Направленная |
| Data Object | Data Association → | Activity/Event/Gateway | Направленная |
| Sequence Flow | Association → | Data Object | Направленная |
| Sequence Flow | Association --- | Data Object | Ненаправленная |
| Text Annotation | Association --- | Любой элемент | Ненаправленная |
Визуальное различие:
Sequence Flow: [A] ───→ [B] (сплошная + стрелка)
Message Flow: [A] ○---→ [B] (пунктир + круг + стрелка)
Data Association: [A] -.-> [Data] (пунктир + стрелка)
Association (напр.): [A] ---→ [Data] (пунктир + стрелка)
Association (ненапр): [A] --- [Data] (пунктир без стрелки)
Ответ на вопрос:
"Связь Sequence Flow с объектом данных" vs "Поток данных от управления к данным" - это семантическое различие:
- Association к Sequence Flow = "этот переход связан с этими данными" (контекст)
- Data Association от Sequence Flow = "при этом переходе данные передаются/обрабатываются" (операция)
Однако в стандарте BPMN Data Association не может исходить из Sequence Flow! Data Association может соединять только:
- Activity/Event/Gateway ↔ Data Object
- Data Object ↔ Data Object
Вывод: Data Association всегда направленная и соединяет элементы процесса с данными, а Association может быть разной направленности и соединяет любые элементы для контекстных связей.