doc/BPM/notation/BPMN/docflow/ai1.md
2025-11-21 21:10:55 +03:00

150 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 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 может быть разной направленности и соединяет любые элементы для контекстных связей.