20
Роль бизнес-аналитика в разработке собственной Business Rule Engine с нуля Антон Наумович DPI Solutions / LogicNow

Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

  • Upload
    sqalab

  • View
    136

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Роль бизнес-аналитика

в разработке собственной

Business Rule Engine

с нуля

Антон Наумович

DPI Solutions / LogicNow

Page 2: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Немного о себе

Антон НаумовичБолее 10 лет опыта в IT

● Тимлид/архитектор/BA в LogicNow

● Консультант в DPI Solutions

● В прошлом – разработчик в Microsoft,

команда Hyper-V (Windows Server 2008

R2/2012)

● Активист сообщества COMAQA.BY

Page 3: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Business Rule Engine (BRE)

Это организация системы таким образом, что...

● бизнес-правила выделяются в отдельную

независимо развиваемую от ядра часть

● эта часть обычно описывается и реализуется

через один или несколько Domain-Specific

Language (DSL)

Business Rule Engine – изменчивый, гибко

конфигурируемый “плагин” в стабильном ядре

системы

Page 4: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Когда такой подход применим

1. В системе есть достаточно крупные

подсистемы, описываемые через бизнес-

правила

2. Параметры бизнес-правил часто меняются в

течение жизни системы (=меняются

“подпрограммы” на DSL)

3. Принципиально меняется сама природа

бизнес-правил (=меняется грамматика

DSL)

Page 5: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Ubiquitous Language (UL)

Всепроникающий язык – глоссарий проекта,

общий как для технических, так и для бизнес-

специалистов

● Служит основой для выработки синтаксиса DSL

● Используется в коммуникации и документации

● Обеспечивает единственно верное толкование

требований

Page 6: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Domain-Specific Language (DSL)

● DSL – достаточно простой язык, предназначенный

для решения задач в конкретном узком домене

● DSL не должен быть универсальным

● Простота DSL обеспечивает возможность его

использования нетехническими специалистами

● Общеупотребимые DSL: HTML, XML, SQL, LaTex,

Excel, Regular Expressions

Page 7: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Типы DSL

● Внутренние

● Внешние

● Визуальные (“Language Workbench”)

● Гибридные (комбинированные)

Page 8: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Исполняемость DSL

Компилируемые

● внутренние DSL

● кодогенерация для

внешних DSL

Более

производительные

Интерпретируемые

● внешние DSL

Более гибкие

Page 9: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Техническое отступление

Microkernel Architecture

Основные свойства

● Разделение на минимальное стабильное “ядро” и

изменчивые “сервисы”

● Адаптация к меняющимся требованиям

● Встроенная поддержка расширений

На практике

● Windows NT

● Symbian

● Mach Operating System

● Amoeba Operating System

● Chorus

Page 10: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Microkernel Architecture

Плюсы

● Гибкость

● Расширяемость

● Масштабируемость

● Надежность

Минусы

● Производительность (на современном “железе”

разница почти незаметна)

● Сложность дизайна (в книге POSA1 есть четкий

алгоритм декомпозиции)

Pattern-Oriented Software Architecture: Volume 1: A System of Patterns.

Page 11: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Почему пример из архитектуры?

Архитектура – один из способов формализовать

внутреннее устройство реальной системы

Архитектура

⇕Организационная структура организации

⇕Методология разработки

⇕Бизнес-анализ

Выберем критерием декомпозиции системы паттерн

Microkernel

Page 12: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Способы формализации DSL

Таблица истинности Конечный автомат (стейт-машина)

Формальная грамматика

Page 13: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Выявление DSL

Выявление и формализация DSL проходит с

участием

● бизнес-аналитика и системного аналитика

● технических специалистов (архитектора)

● представителей бизнеса

Как правило, DSL обычно несколько, зачастую 3-5

на проекте

В бизнес-анализ DSL обязательно вовлекаются

технические спецы

Page 14: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Методология разработки

Формализованный домен

Компетентный заказчик

Компетентные технические

спецы

Неопределенный домен

“Некомпетентный” заказчик

Некомпетентные

технические спецы

Waterfall Agile

Page 15: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

DSL: стоимость разработки

Page 16: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Что дает DSL?

1. Разделение сложностей на:

○ машино-ориентированную часть кода (низкоуровневую

функциональность)

○ человеко-ориентированную часть кода (собственно

решение прикладной задачи)

2. DSL существенно повышает уровень абстрактности кода

3. DSL исключает экспоненциальный рост результирующей

сложности разработки всего проекта

4. DSL решает проблему сложности как фундаментальную

проблему программирования, описанную Фредериком

Бруксом

Page 17: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Пример 1. Биллинг

Ядро: бизнес-объекты “юр. лицо”, “физ лицо”, услуги за

которые происходит биллинг, налоги и их базовые

отношения. Сам “движок” вычисления итоговой суммы по

договору.

DSL:

● конфигурация правил начисления инвойса

● скидки в зависимости от возраста, стажа, объема услуг,

истории сотрудничества

bill = volume * price.PerVolume + instances * price.PerInstance

bill -= bill * price.AnnualDiscount

bill < price.MinimalBill => bill = price.MinimalBill

bill += bill * country.Tax

Page 18: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Пример 2. Распределение

данных в облаках

Ядро: “движок” отвечающий за выделение места для

хранения данных в различных датацентрах по миру

DSL:

конфигурация движка в зависимости от:

● купленных лицензий

● предпочтений пользователя

● законодательства стран в которых находятся

датацентры

country is Belarus => (Belarus:5, Russia:3, Kazakhstan:2)

country in EU => (Germany:7, France:2, Italy:1)

country in (Asia, Oceania) => (China:8, Indonesia:2)

fallback => (Germany)

Page 19: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Что мы имеем в итоге?

● Универсальный критерий декомпозиции

системы

● Участие технических спецов в бизнес-

анализе

● Гибкость системы и быстрая скорость

внедрения новых требований

● Контроль за сложностью системы

Page 20: Роль бизнес аналитика в разработке собственной Business Rule Engine с нуля как основной платформы проекта

Антон Наумович

[email protected]

DPI Solutions

www.dpi.solutions

Belarus QA Automation Community

www.comaqa.by

Спасибо! Вопросы?