Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Роль бизнес-аналитика
в разработке собственной
Business Rule Engine
с нуля
Антон Наумович
DPI Solutions / LogicNow
Немного о себе
Антон Наумович
Более 10 лет опыта в IT
● Тимлид/архитектор/BA в LogicNow
● Консультант в DPI Solutions
● В ...
Business Rule Engine (BRE)
Это организация системы таким образом, что...
● бизнес-правила выделяются в отдельную
независим...
Когда такой подход применим
1. В системе есть достаточно крупные
подсистемы, описываемые через бизнес-
правила
2. Параметр...
Ubiquitous Language (UL)
Всепроникающий язык – глоссарий проекта,
общий как для технических, так и для бизнес-
специалисто...
Domain-Specific Language (DSL)
● DSL – достаточно простой язык, предназначенный
для решения задач в конкретном узком домен...
Типы DSL
● Внутренние
● Внешние
● Визуальные (“Language Workbench”)
● Гибридные (комбинированные)
Исполняемость DSL
Компилируемые
● внутренние DSL
● кодогенерация для
внешних DSL
Более
производительные
Интерпретируемые
●...
Техническое отступление
Microkernel Architecture
Основные свойства
● Разделение на минимальное стабильное “ядро” и
изменчи...
Microkernel Architecture
Плюсы
● Гибкость
● Расширяемость
● Масштабируемость
● Надежность
Минусы
● Производительность (на ...
Почему пример из архитектуры?
Архитектура – один из способов формализовать
внутреннее устройство реальной системы
Архитект...
Способы формализации DSL
Таблица истинности Конечный автомат (стейт-машина)
Формальная грамматика
Выявление DSL
Выявление и формализация DSL проходит с
участием
● бизнес-аналитика и системного аналитика
● технических спе...
Методология разработки
Формализованный домен
Компетентный заказчик
Компетентные технические
спецы
Неопределенный домен
“Не...
DSL: стоимость разработки
Что дает DSL?
1. Разделение сложностей на:
○ машино-ориентированную часть кода (низкоуровневую
функциональность)
○ человек...
Пример 1. Биллинг
Ядро: бизнес-объекты “юр. лицо”, “физ лицо”, услуги за
которые происходит биллинг, налоги и их базовые
о...
Пример 2. Распределение
данных в облаках
Ядро: “движок” отвечающий за выделение места для
хранения данных в различных дата...
Что мы имеем в итоге?
● Универсальный критерий декомпозиции
системы
● Участие технических спецов в бизнес-
анализе
● Гибко...
Антон Наумович
naumovich@dpi.solutions
DPI Solutions
www.dpi.solutions
Belarus QA Automation Community
www.comaqa.by
☺
Спа...
Upcoming SlideShare
Loading in …5
×

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

587 views

Published on

Доклад Антона Наумовича на конференции Analyst Days-4,
17-18 апреля 2015 г., Минск
www.analystdays.com

Published in: Education
  • Be the first to comment

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

  1. 1. Роль бизнес-аналитика в разработке собственной Business Rule Engine с нуля Антон Наумович DPI Solutions / LogicNow
  2. 2. Немного о себе Антон Наумович Более 10 лет опыта в IT ● Тимлид/архитектор/BA в LogicNow ● Консультант в DPI Solutions ● В прошлом – разработчик в Microsoft, команда Hyper-V (Windows Server 2008 R2/2012) ● Активист сообщества COMAQA.BY
  3. 3. Business Rule Engine (BRE) Это организация системы таким образом, что... ● бизнес-правила выделяются в отдельную независимо развиваемую от ядра часть ● эта часть обычно описывается и реализуется через один или несколько Domain-Specific Language (DSL) Business Rule Engine – изменчивый, гибко конфигурируемый “плагин” в стабильном ядре системы
  4. 4. Когда такой подход применим 1. В системе есть достаточно крупные подсистемы, описываемые через бизнес- правила 2. Параметры бизнес-правил часто меняются в течение жизни системы (=меняются “подпрограммы” на DSL) 3. Принципиально меняется сама природа бизнес-правил (=меняется грамматика DSL)
  5. 5. Ubiquitous Language (UL) Всепроникающий язык – глоссарий проекта, общий как для технических, так и для бизнес- специалистов ● Служит основой для выработки синтаксиса DSL ● Используется в коммуникации и документации ● Обеспечивает единственно верное толкование требований
  6. 6. Domain-Specific Language (DSL) ● DSL – достаточно простой язык, предназначенный для решения задач в конкретном узком домене ● DSL не должен быть универсальным ● Простота DSL обеспечивает возможность его использования нетехническими специалистами ● Общеупотребимые DSL: HTML, XML, SQL, LaTex, Excel, Regular Expressions
  7. 7. Типы DSL ● Внутренние ● Внешние ● Визуальные (“Language Workbench”) ● Гибридные (комбинированные)
  8. 8. Исполняемость DSL Компилируемые ● внутренние DSL ● кодогенерация для внешних DSL Более производительные Интерпретируемые ● внешние DSL Более гибкие
  9. 9. Техническое отступление Microkernel Architecture Основные свойства ● Разделение на минимальное стабильное “ядро” и изменчивые “сервисы” ● Адаптация к меняющимся требованиям ● Встроенная поддержка расширений На практике ● Windows NT ● Symbian ● Mach Operating System ● Amoeba Operating System ● Chorus
  10. 10. Microkernel Architecture Плюсы ● Гибкость ● Расширяемость ● Масштабируемость ● Надежность Минусы ● Производительность (на современном “железе” разница почти незаметна) ● Сложность дизайна (в книге POSA1 есть четкий алгоритм декомпозиции) Pattern-Oriented Software Architecture: Volume 1: A System of Patterns.
  11. 11. Почему пример из архитектуры? Архитектура – один из способов формализовать внутреннее устройство реальной системы Архитектура ⇕ Организационная структура организации ⇕ Методология разработки ⇕ Бизнес-анализ Выберем критерием декомпозиции системы паттерн Microkernel
  12. 12. Способы формализации DSL Таблица истинности Конечный автомат (стейт-машина) Формальная грамматика
  13. 13. Выявление DSL Выявление и формализация DSL проходит с участием ● бизнес-аналитика и системного аналитика ● технических специалистов (архитектора) ● представителей бизнеса Как правило, DSL обычно несколько, зачастую 3-5 на проекте В бизнес-анализ DSL обязательно вовлекаются технические спецы
  14. 14. Методология разработки Формализованный домен Компетентный заказчик Компетентные технические спецы Неопределенный домен “Некомпетентный” заказчик Некомпетентные технические спецы Waterfall Agile
  15. 15. DSL: стоимость разработки
  16. 16. Что дает DSL? 1. Разделение сложностей на: ○ машино-ориентированную часть кода (низкоуровневую функциональность) ○ человеко-ориентированную часть кода (собственно решение прикладной задачи) 2. DSL существенно повышает уровень абстрактности кода 3. DSL исключает экспоненциальный рост результирующей сложности разработки всего проекта 4. DSL решает проблему сложности как фундаментальную проблему программирования, описанную Фредериком Бруксом
  17. 17. Пример 1. Биллинг Ядро: бизнес-объекты “юр. лицо”, “физ лицо”, услуги за которые происходит биллинг, налоги и их базовые отношения. Сам “движок” вычисления итоговой суммы по договору. DSL: ● конфигурация правил начисления инвойса ● скидки в зависимости от возраста, стажа, объема услуг, истории сотрудничества bill = volume * price.PerVolume + instances * price.PerInstance bill -= bill * price.AnnualDiscount bill < price.MinimalBill => bill = price.MinimalBill bill += bill * country.Tax
  18. 18. Пример 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)
  19. 19. Что мы имеем в итоге? ● Универсальный критерий декомпозиции системы ● Участие технических спецов в бизнес- анализе ● Гибкость системы и быстрая скорость внедрения новых требований ● Контроль за сложностью системы
  20. 20. Антон Наумович naumovich@dpi.solutions DPI Solutions www.dpi.solutions Belarus QA Automation Community www.comaqa.by ☺ Спасибо! Вопросы?

×