Научная статья на тему 'ГИБРИДНЫЙ ПОДХОД ВЫДЕЛЕНИЯ СОБЫТИЙ ПРЕДМЕТНОЙ ОБЛАСТИ'

ГИБРИДНЫЙ ПОДХОД ВЫДЕЛЕНИЯ СОБЫТИЙ ПРЕДМЕТНОЙ ОБЛАСТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
119
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАЗРАБОТКА ПРОГРАММНЫХ СИСТЕМ / ПРЕДМЕТНАЯ ОБЛАСТЬ / МИКРОСЕРВИСНАЯ АРХИТЕКТУРА / ПОДХОД DOMAIN DRIVEN DESIGN / НОТАЦИЯ IDEF0 / СОБЫТИЙНЫЙ ШТУРМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Власов К. П., Наривная А. В., Дзансолов Г. О.

Статья посвящена инструментам для разработки сложных программных систем. Рассмотрены подход Domain Driven Design, Event Driven Architecture и нотация IDEF0, приведены особенности данных технологий, выделены их плюсы и минусы. Предложен новый гибридный метод, объединяющий событийный штурм и описания бизнес-процессов в рамках нотации IDEF0 для повышения эффективности разработки программных систем. Приведены примеры применения предлагаемого метода, выделены его отличительные черты и преимущества перед классическими методами проектирования программных продуктов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

HYBRID APPROACH TO SELECTING EVENTS OF DOMAIN AREA

The article is devoted to tools for developing complex software systems. The Domain Driven Design approach, Event Driven Architecture and IDEF0 notation are considered, the features of these technologies are given, their pros and cons are highlighted. A new hybrid method is proposed that combines event storming and descriptions of business processes in the framework of the IDEF0 notation to improve the efficiency of software systems development. Examples of the application of the proposed method are given, its distinctive features and advantages over classical methods of projecting software products are highlighted.

Текст научной работы на тему «ГИБРИДНЫЙ ПОДХОД ВЫДЕЛЕНИЯ СОБЫТИЙ ПРЕДМЕТНОЙ ОБЛАСТИ»

ГИБРИДНЫЙ ПОДХОД ВЫДЕЛЕНИЯ СОБЫТИЙ ПРЕДМЕТНОЙ ОБЛАСТИ

К.П. Власов, магистрант А.В. Наривная, магистрант Г.О. Дзансолов, магистрант

Московский государственный технический университет имени Н.Э. Баумана (Россия, г. Москва)

DOI:10.24412/2500-1000-2022-4-2-50-55

Аннотация. Статья посвящена инструментам для разработки сложных программных систем. Рассмотрены подход Domain Driven Design, Event Driven Architecture и нотация IDEF0, приведены особенности данных технологий, выделены их плюсы и минусы. Предложен новый гибридный метод, объединяющий событийный штурм и описания бизнес-процессов в рамках нотации IDEF0 для повышения эффективности разработки программных систем. Приведены примеры применения предлагаемого метода, выделены его отличительные черты и преимущества перед классическими методами проектирования программных продуктов.

Ключевые слова: разработка программных систем, предметная область, микросервисная архитектура, подход Domain Driven Design, нотация IDEF0, событийный штурм.

В настоящее время, благодаря быстрому развитию технологий разработки программного обеспечения, в том числе инструментов командной разработки и методов развертывания приложений, сложные программные комплексы разрабатываются гораздо проще и быстрее, чем когда-либо раньше. Во многом, это стало возможным благодаря активному использованию микросервисной архитектуры.

Микросервисная архитектура позволяет разбить программу на блоки - микросервисы, каждый из которых способен работать автономно и связан с другими программными блоками посредством легковесных протоколов - REST, SOAP, gRPC или иными способами [1].

Растущая сложность программных продуктов, связанных в том числе с применением микросервисной архитектуры, с одной стороны упрощает как саму разработку, так и ее организацию, а с другой стороны повышает требования к системным архитекторам и системным аналитикам, которым необходимо проектировать системы все с большим и большим числом элементов и связей между ними [2].

Кроме того, что растет требовательность к специалистам, занимающимся проектированием, растет и требовательность к инструментам, которые такие спе-

циалисты могут использовать в работе. Одним из таких важных инструментов является Domain Driven Design (DDD).

DDD - это подход, который нацелен на изучение предметной области предприятия в целом или каких-то отдельных бизнес-процессов [3]. Этот подход применим для проектов, в которых сложность бизнес-логики достаточно велика. Его применение призвано снизить эту сложность, насколько возможно. Целью применения DDD является создание как можно более высококачественной модели предметной области с наилучшим возможным отображением бизнес-процессов этой предметной области.

В качестве инструментов описания бизнес-процессов в DDD используется ряд техник, основанных на подходах, связанных с событийно-ориентированной архитектурой Event Driven Architecture (EDA) [4]. При этом в данных техниках отброшены классические подходы описания бизнес-процессов предметной области, таких как, например, описание бизнес-процессов в нотации IDEF0. В то же время, классические подходы не утратили свою эффективность, их применение в процессах проектирования остается актуальным, например, для векторизации процесса описания пути пользователя при

проведении событийного штурма и увеличения количества контекста в рамках проектирования с использованием EDA.

Целью данной статьи является описание гибридного подхода на основе скрещивания событийного штурма и описания бизнес-процессов нотации IDEF0, позволяющего более эффективно разрабатывать сложные программные комплексы.

Event Driven Architecture

В классических трехуровневых системах (клиент-сервер-базы данных) ядром системы обычно считается база данных. Однако, в высоконагруженных и высокодоступных системах зачастую фокус смещается на события, происходящие в предметной области.

Событие - это действие, о котором получают уведомления слушатели - сервисы, для которых это событие является значимым. Они могут получать как уведомление о событии, так и какие-либо параметры конкретного события, после чего запускают функции обработки тех или иных событий. Такая схема позволяет сделать функционирование системы асинхронным по своей сути и не приостанавливать поток

выполнения программы в ожидании ответа от пользователя, а обращая внимания лишь на события, которые обрабатываются в случае их наступления.

Важно отметить, что в событийно-ориентированной архитектуре должны учитываться не все события, а лишь важные с точки зрения бизнес-логики. Способом определения важности события является подход, называемый событийным штурмом [5]. При использовании событийного штурма разработчики в произвольной форме определяют события, которые происходят в ходе выполнения программной системы, затем для каждого события обозначаются причины его возникновения и какой объект в системе событие создает.

Для демонстрации описываемых в рамках данной статьи методов разработки программных продуктов была выбрана случайная система по бронированию и покупке авиабилетов. Пример диаграммы, построенной в процессе событийного штурма для данной системы, показан на рисунке 1.

Рис. 1. Результаты событийного штурма для сервиса покупки авиабилетов

Этот подход очень напоминает построение диаграмм ЦМЬ, описывающих операционную деятельность предприятия, однако на деле не привержен каким-либо нотациям и оформляется в свободном виде путем прорабатывания возможных сценариев использования приложения. В этом заключается его сила и одновременно слабость, ведь он происходит в процессе обсуждения возможных событий путем сбора некоторых стейкхолдеров продукта и команды разработки. Неформальность данного процесса может привести к тому, что какие-либо варианты использования системы, и, соответственно, события, могут быть упущены и не описаны. Конечно, это проявится на этапе реализации, однако перепроектирование потребует дополнительного ресурса, что означает неэффективное его расходование.

IDEF0

IDEF0 - это методика функционального проектирования бизнес-процессов. Данная методология была создана для описания программных систем с помощью построения моделей. В IDEF0-модели есть только один субъект, единственная цель и одна точка зрения [6].

УПРАВЛЕНИЕ

1 г

ВХОД W ФУНКЦИОНАЛЬНЫЙ ВЫХОД

БЛОК IDEF0 w

* L МЕХАНИЗМ

Рис. 2. Общая схема вершины иерархии моделей программной системы по методу IDEF0

Построим для рассматриваемой программной системы для бронирования авиабилетов диаграмму по методу IDEF0. Результат показан на рисунке 3.

Цель - это набор вопросов, которые должна разрешить программная система. С точки зрения система описывается. На данный двух понятиях основывается вся методология IDEF0.

Построение модели организовано в виде иерархической структуре диаграмм. Вершина данной структуры - это наиболее обобщенное описание исходного программного продукта.

Основными правилами метода IDEF0 являются:

1) Функциональный блок имеет входы и выходы. В ходе работы блока входные данные обрабатываются, выходные данные являются результатом этой обработки.

2) Функциональный блок ограничен управляющими компонентами, которые задают условия работы блока.

3) Механизмы непосредственно осуществляют обработку данных функциональным блоком.

На рисунке 2 продемонстрирована общая схема построения вершины иерархии моделей программной системы в рамках методологии IDEF0.

Рис. 3. Пример диаграммы IDEF0 для процесса бронирования авиабилетов

Совмещение подходов

ГОЕБО - по сути способ описания бизнес-процессов в идеальном варианте, и это является его основным недостатком - конструкции ветвления плохо описываемы в нотации IDEF0. Однако, по сравнению с событийным штурмом IDEF0 предоставляет гораздо больше контекста, что позво-

ляет видеть неочевидные при событийном штурме события и сущности.

В случае, если для каждого блока IDEF0 указывать вариативность, присущую событийному штурму, можно получить описание, совмещающее достоинства двух подходов в себе. Пример такого описания для уже упомянутой системы покупки билетов показан на рисунке 4.

Рис. 4. Пример диаграммы для процесса бронирования авиабилетов гибридным методом

Важно при этом пользоваться декомпозицией блоков, ведь вариативность может скрываться внутри иных функциональных блоков. Например, на рисунке 5, представ-

лена декомпозиция блока оплаты билетов, которая учитывает возможность неверного ввода данных карты.

Рис. 5. Пример диаграммы для процесса оплаты авиабилетов гибридным методом

Architecture и нотация IDEF0. Отмечены сильные и слабые стороны перечисленных технологий. Предложен гибридный метод, объединяющий принципы построения модели программной системы IDEF0 и описание функционала системы методом событийного штурма. На примере системы по бронированию и покупки авиабилетов было продемонстрирована основная идея гибридного метода.

Предлагаемый гибридный подход позволяет моделировать работу системы, учитывая как контекст и порядок выполнения функциональных блоков, так и возможные варианты, добавляя вариативность и уточняя работу программной системы. Заключение

В рамках данной статьи был сделан обзор таких средств для разработки программного обеспечения, как подход Domain Driven Design, Event Driven

Библиографический список

1. Introduction into Microservices. - [Электронный ресурс]. - Режим доступа: https://specify.io/concepts/microservices.

2. Кадыров К. Микросервисная архитектура / К. Кадыров, А. Сафин // Фундаментальные и прикладные научные исследования: актуальные вопросы, достижения и инновации. -Сборник статей LII Международной научно-практической конференции: в 2 ч. - Пенза, 2022. - С. 97-99.

3. Domain Driven Design. Developing. - [Электронный ресурс]. - Режим доступа: https://www.domaindrivendesign.org/

4. MICROSOFT DOCUMENTATION. Event-driven architecture style. - [Электронный ресурс]. - Режим доступа: https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/event-driven

5. Scott Wlaschin. Domain Modeling Made Functional Tackle Software Complexity with Domain-Driven Design and F# / Scott Wlaschin. - The Pragmatic Programmers, LLC. - 2018.

6. Бахтизин В.В. Методология функционального проектирования IDEF0: Учеб. пособие по курсу «Технология разработки программного обеспечения» для студ. спец. 40 01 01 «Про-

граммное обеспечение информационных технологий дневной формы обучения» // В.В. Бахтизин, Л.А. Глухова. - Мн.: БГУИР, 2003. - 24 с.

HYBRID APPROACH TO SELECTING EVENTS OF DOMAIN AREA

K.P. Vlasov, Graduate Student A.V. Narivnaya, Graduate Student G.O. Dzansolov, Graduate Student

Bauman Moscow State Technical University (Russia, Moscow)

Abstract. The article is devoted to tools for developing complex software systems. The Domain Driven Design approach, Event Driven Architecture and IDEF0 notation are considered, the features of these technologies are given, their pros and cons are highlighted. A new hybrid method is proposed that combines event storming and descriptions of business processes in the framework of the IDEF0 notation to improve the efficiency of software systems development. Examples of the application of the proposed method are given, its distinctive features and advantages over classical methods of projecting software products are highlighted.

Keywords: software systems development, domain area, microservice architecture, Domain Driven Design approach, IDEF0 notation, event storming.

i Надоели баннеры? Вы всегда можете отключить рекламу.