ЛЕГКОВЕСНЫЙ МОДЕЛЬНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К АВТОМАТИЗАЦИИ БИЗНЕС-ПРОЦЕССОВ МАЛЫХ ТОРГОВЫХ ПРЕДПРИЯТИЙ: СКВОЗНАЯ ТРАНСФОРМАЦИЯ IDEF0 → BPMN → DFD → UML → КОД NESTJS
Конференция: XCVII Международная научно-практическая конференция «Научный форум: инновационная наука»
Секция: Технические науки

XCVII Международная научно-практическая конференция «Научный форум: инновационная наука»
ЛЕГКОВЕСНЫЙ МОДЕЛЬНО-ОРИЕНТИРОВАННЫЙ ПОДХОД К АВТОМАТИЗАЦИИ БИЗНЕС-ПРОЦЕССОВ МАЛЫХ ТОРГОВЫХ ПРЕДПРИЯТИЙ: СКВОЗНАЯ ТРАНСФОРМАЦИЯ IDEF0 → BPMN → DFD → UML → КОД NESTJS
Аннотация. Представлена легковесная методология автоматизации бизнес-процессов малого торгового предприятия, основанная на последовательном применении нотаций IDEF0, BPMN, DFD и UML с последующей прямой трансформацией BPMN-моделей в сервисный код NestJS. Отказ от внешних BPMN-движков достигается за счёт формальных правил отображения элементов процесса в конструкции TypeScript. Предложен многокритериальный алгоритм резервирования запасов с коэффициентом приоритета αⱼ. Имитационное моделирование показывает преимущество алгоритма перед стратегиями FIFO и приоритетом по маржинальности. Нагрузочные испытания демонстрируют, что ручная трансформация обеспечивает выигрыш в пропускной способности в 2,8 раза и снижение потребления памяти в 3,4 раза по сравнению с эквивалентной реализацией на Camunda BPMN.
Ключевые слова: IDEF0, BPMN, DFD, UML, NestJS, модельно-ориентированная разработка, автоматизация бизнес-процессов, резервирование запасов, многокритериальный алгоритм, легковесный workflow.
Введение
Малые и средние торговые предприятия сталкиваются с фрагментацией информации, нечётким распределением ответственности и отсутствием оперативного мониторинга. Внедрение полнофункциональных ERP-систем для них часто экономически неоправданно. Модельно-ориентированная разработка (MDE) позволяет сократить разрыв между бизнес-требованиями и программным кодом [1, 3], однако типичные MDE-решения опираются на тяжелые BPMN-движки (Camunda, Activiti), избыточные для прототипов и небольших проектов [6, 4]. Цель данной работы разработать и экспериментально проверить легковесную методологию сквозной трансформации моделей бизнес-процессов в исполняемый код NestJS, обеспечивающую отказ от использования внешних BPMN-движков на этапе прототипирования для малых предприятий.
2. Концептуальная модель сквозной трансформации Предложенная методология состоит из пяти шагов:
- IDEF0 функциональная декомпозиция процесса «Order‑to‑Cash» на три подфункции: приём и проверка заказа, обработка заказа, выполнение заказа.
- BPMN 2.0 детальное моделирование процесса с 21 задачей, 7 шлюзами и 4 дорожками. Все исключительные потоки явно отражены.
- DFD моделирование потоков данных, определяющее хранилища и внешние сущности.
- UML построение диаграмм классов, прецедентов и последовательностей. Установлено формальное отображение элементов BPMN в артефакты UML: дорожка → актор, группа задач → прецедент, хронологический поток → диаграмма последовательности.
- Прямая трансформация BPMN → код NestJS по формальным правилам (таблица 1). Аналогичные подходы рассматривались в [7, 8].
Таблица 1.
Правила трансформации BPMN → NestJS/TypeScript
|
BPMN элемент |
Конструкция NestJS / TypeScript |
|
Задача (Task) |
Метод сервиса |
|
Эксклюзивный шлюз (XOR) |
if‑else |
|
Параллельный шлюз (AND) |
Promise.all |
|
Пользовательская задача (User Task) |
PATCH‑эндпоинт |
|
Стартовое событие |
POST‑эндпоинт |
|
Данные (Data Object) |
DTO / интерфейс |
Данные правила позволяют вручную, но систематически переносить логику процесса в код без привлечения стороннего workflow-движка.
3. Многокритериальный алгоритм резервирования запасов
При дефиците запасов для каждого заказа j вычисляется коэффициент приоритета:
αⱼ = (mⱼ · pⱼ) / (1 + β · tⱼ),
где mⱼ – ожидаемая маржа, pⱼ – вероятность оплаты (0–1), tⱼ – время ожидания (дни), β – настраиваемый коэффициент. Заказы сортируются по убыванию αⱼ, доступные запасы распределяются соответственно. Это позволяет в одной целевой функции сбалансировать прибыльность, надёжность оплаты и время ожидания клиента. Подход развивает идеи классических работ по BPM [9, 2].
4. Имитационное моделирование алгоритма резервирования
Дискретно-событийное моделирование выполнено на Python. Параметры: 10 видов товаров, начальный запас 50 ед., пуассоновский поток заказов λ=20/день, пополнение каждые 3 дня, горизонт 30 дней. Сравнивались три стратегии (по 100 прогонов каждая). Методика расчёта показателей: общая прибыль — сумма маржи выполненных заказов; уровень выполнения — доля полностью выполненных заказов; среднее ожидание — среднее арифметическое времени от поступления заказа до полного резервирования. Результаты приведены в таблице 2.
Таблица 2.
Результаты имитационного моделирования
|
Стратегия |
Общая прибыль (млн тг) |
Уровень выполнения (%) |
Среднее ожидание (дни) |
|
FIFO |
4,82 |
78,3 |
2,1 |
|
Только маржа |
5,41 |
76,8 |
2,8 |
|
Многокритериальная (β=0,1) |
5,28 |
82,5 |
1,7 |
Многокритериальный алгоритм увеличил общую прибыль примерно на 9,5 % по сравнению с FIFO, повысил уровень выполнения с 78,3 % до 82,5 % и сократил среднее время ожидания с 2,1 до 1,7 дня.
5. Сравнительные нагрузочные испытания
Один и тот же процесс «Приём и обработка заказа» реализован двумя способами на идентичных входных данных и одинаковой конфигурации СУБД (PostgreSQL 15), предлагаемая ручная трансформация в NestJS и с использованием движка Camunda BPMN 7.20. Измерения проводились на виртуальной машине Ubuntu 22.04 (4 vCPU, 8 ГБ RAM) с помощью инструмента k6 [5]. Результаты представлены в таблице 3.
Таблица 3.
Результаты нагрузочного тестирования (500 одновременных пользователей)
|
Показатель |
NestJS (ручная трансф.) |
Camunda |
|
Пропускная способность, RPS |
1185 |
412 |
|
Среднее время обработки, мс |
85 |
320 |
|
Память для 100 одновр. заказов, МБ |
180 |
620 |
|
Цикломатическая сложность |
4,2 |
2,8 |
Ручной подход в 2,8 раза быстрее и потребляет в 3,4 раза меньше памяти. Это объясняется тем, что Camunda сохраняет состояние каждого экземпляра процесса в базе данных, тогда как ручная трансформация удерживает всю логику в оперативной памяти. Полученные результаты согласуются с выводами работ [7, 8].
6. Статистическая проверка
К данным о времени обработки заказов применён U-тест Манна‑Уитни. Полученное значение p < 0,001 подтверждает статистическую значимость различий.
7. Расширения с помощью искусственного интеллекта
Архитектура допускает интеграцию XGBoost (прогноз спроса) и Isolation Forest (аномалии) через REST API [5]. Оба микросервиса взаимодействуют с NestJS через REST API, сохраняя модульную структуру.
Заключение
Исследование демонстрирует полный легковесный конвейер от моделирования бизнес-функций до исполняемого кода без тяжелых BPMN-движков. Формальные правила трансформации обеспечивают прозрачность и проверяемость. Предложенный алгоритм резервирования превосходит традиционные стратегии при имитационном моделировании, а ручная кодовая трансформация показывает значительные преимущества в производительности перед Camunda. Методология непосредственно применима к малым предприятиям и может быть расширена компонентами искусственного интеллекта.

