mirror of
https://github.com/bpmbpm/doc.git
synced 2026-04-30 12:30:52 +00:00
106 lines
5 KiB
Markdown
106 lines
5 KiB
Markdown
### 1 Представь схему в EPC (Event-Driven Process Chain) в формализме конечных автоматов
|
||
с учетом:
|
||
- Исключаем Логические операторы (AND, OR, XOR) управляют ветвлениями.
|
||
- Событие EPC → Переход FSM
|
||
- Функция EPC → Состояние FSM.
|
||
|
||
### Ответ
|
||
# Преобразование EPC в конечный автомат (FSM) по новым правилам
|
||
|
||
## Основные принципы соответствия
|
||
|
||
В новой схеме используются следующие правила отображения элементов:
|
||
|
||
- **Событие EPC** → **Переход FSM**
|
||
- **Функция EPC** → **Состояние FSM**
|
||
- **Логические операторы** (AND, OR, XOR) — исключаются (рассматриваются только линейные цепочки)
|
||
|
||
## Правила преобразования
|
||
|
||
1. **Начальное событие EPC**
|
||
→ Переход из начального псевдосостояния FSM в первое состояние (функция).
|
||
|
||
2. **Промежуточное событие EPC**
|
||
→ Переход между состояниями (от предыдущей функции к следующей).
|
||
|
||
3. **Конечное событие EPC**
|
||
→ Переход из последнего состояния FSM в конечное псевдосостояние.
|
||
|
||
4. **Функция EPC**
|
||
→ Состояние FSM, в котором выполняется соответствующая операция.
|
||
|
||
## Формальная схема преобразования
|
||
|
||
Для цепочки EPC вида:
|
||
```
|
||
[Событие₁] → (Функция₁) → [Событие₂] → (Функция₂) → ... → [Событиеₙ]
|
||
```
|
||
|
||
Получаем FSM со следующими элементами:
|
||
|
||
**Состояния** (соответствуют функциям):
|
||
- $S_1$ — (Функция₁)
|
||
- $S_2$ — (Функция₂)
|
||
- ...
|
||
- $S_{n-1}$ — (Функция$_{n-1}$)
|
||
|
||
**Переходы** (инициируются событиями):
|
||
1. $S_{\text{нач}} \xrightarrow{\text{Событие}_1} S_1$
|
||
2. $S_1 \xrightarrow{\text{Событие}_2} S_2$
|
||
3. ...
|
||
4. $S_{n-1} \xrightarrow{\text{Событие}_n} S_{\text{кон}}$
|
||
|
||
где:
|
||
- $S_{\text{нач}}$ — начальное псевдосостояние FSM
|
||
- $S_{\text{кон}}$ — конечное псевдосостояние FSM
|
||
|
||
## Пример преобразования
|
||
|
||
**Исходная EPC‑цепочка:**
|
||
```
|
||
[Заказ получен] → (Проверить оплату) → [Оплата подтверждена] → (Отправить товар) → [Товар отправлен]
|
||
```
|
||
|
||
**Полученный FSM:**
|
||
|
||
**Состояния:**
|
||
- $S_1$: «Проверить оплату»
|
||
- $S_2$: «Отправить товар»
|
||
|
||
**Переходы:**
|
||
1. $S_{\text{нач}} \xrightarrow{\text{Заказ получен}} S_1$
|
||
2. $S_1 \xrightarrow{\text{Оплата подтверждена}} S_2$
|
||
3. $S_2 \xrightarrow{\text{Товар отправлен}} S_{\text{кон}}$
|
||
|
||
## Особенности и ограничения
|
||
|
||
1. **Линейность**
|
||
Метод применим только для последовательных EPC без:
|
||
- ветвлений
|
||
- параллельных процессов
|
||
- циклов
|
||
|
||
2. **Семантика состояний**
|
||
В отличие от классического FSM, состояние здесь означает *активное выполнение функции*, а не ожидание события.
|
||
|
||
3. **Инициализация**
|
||
Начальное псевдосостояние FSM ($S_{\text{нач}}$) введено формально — в EPC прямого аналога нет.
|
||
|
||
4. **Завершение**
|
||
Конечное псевдосостояние ($S_{\text{кон}}$) соответствует конечному событию EPC.
|
||
|
||
## Рекомендации по применению
|
||
|
||
**Использовать метод рекомендуется для:**
|
||
- простых линейных процессов;
|
||
- моделирования этапов обработки с акцентом на время выполнения функций.
|
||
|
||
**Для сложных случаев (ветвления, циклы):**
|
||
- добавляйте условия на переходах (например, $\text{Оплата подтверждена} \land \text{Склад готов}$);
|
||
- рассмотрите переход к расширенным моделям:
|
||
- Harel Statecharts;
|
||
- UML State Machines.
|
||
|
||
**Инструменты для автоматизации:**
|
||
- YAKINDU Statechart Tools;
|
||
- PlantUML (поддержка кастомных правил преобразования).
|