mirror of
https://github.com/bpmbpm/doc.git
synced 2026-04-29 03:50:46 +00:00
150 lines
10 KiB
Markdown
150 lines
10 KiB
Markdown
|
||
### 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 может быть разной направленности и соединяет любые элементы для контекстных связей.
|