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

More Related Content

What's hot

Аналитик на тёмной стороне
Аналитик на тёмной сторонеАналитик на тёмной стороне
Аналитик на тёмной сторонеSQALab
 
разработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиразработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиSQALab
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Dima Dzuba
 
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...SQALab
 
Сергі Поволяшко "Замовник Вас використовує. Що робити?"
Сергі Поволяшко "Замовник Вас використовує. Що робити?"Сергі Поволяшко "Замовник Вас використовує. Що робити?"
Сергі Поволяшко "Замовник Вас використовує. Що робити?"Lviv Startup Club
 
Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1Dima Dzuba
 

What's hot (7)

Аналитик на тёмной стороне
Аналитик на тёмной сторонеАналитик на тёмной стороне
Аналитик на тёмной стороне
 
разработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиразработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектами
 
Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12Объектно-ориентированное программирование. Лекции 11 и 12
Объектно-ориентированное программирование. Лекции 11 и 12
 
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
 
Сергі Поволяшко "Замовник Вас використовує. Що робити?"
Сергі Поволяшко "Замовник Вас використовує. Що робити?"Сергі Поволяшко "Замовник Вас використовує. Що робити?"
Сергі Поволяшко "Замовник Вас використовує. Що робити?"
 
Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1Проектирование программных систем. Занятие 1
Проектирование программных систем. Занятие 1
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 

Viewers also liked

Educational system for hearing-imapired children in the USA: Olga Peskova
Educational system for hearing-imapired children in the USA: Olga PeskovaEducational system for hearing-imapired children in the USA: Olga Peskova
Educational system for hearing-imapired children in the USA: Olga PeskovaMonika Lehnhardt PhD
 
Рамочные диаграммы процессов в арсенале аналитика
Рамочные диаграммы процессов в арсенале аналитикаРамочные диаграммы процессов в арсенале аналитика
Рамочные диаграммы процессов в арсенале аналитикаSQALab
 
ENGLAND PRESENTATION
ENGLAND PRESENTATIONENGLAND PRESENTATION
ENGLAND PRESENTATIONadamson1218
 
England Presentation
England PresentationEngland Presentation
England Presentationmohamedreda
 

Viewers also liked (7)

Educational system for hearing-imapired children in the USA: Olga Peskova
Educational system for hearing-imapired children in the USA: Olga PeskovaEducational system for hearing-imapired children in the USA: Olga Peskova
Educational system for hearing-imapired children in the USA: Olga Peskova
 
Рамочные диаграммы процессов в арсенале аналитика
Рамочные диаграммы процессов в арсенале аналитикаРамочные диаграммы процессов в арсенале аналитика
Рамочные диаграммы процессов в арсенале аналитика
 
London
LondonLondon
London
 
ENGLAND PRESENTATION
ENGLAND PRESENTATIONENGLAND PRESENTATION
ENGLAND PRESENTATION
 
England Presentation
England PresentationEngland Presentation
England Presentation
 
LONDON
LONDONLONDON
LONDON
 
Welcome to London
Welcome to LondonWelcome to London
Welcome to London
 

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

DDD: проблемы и решения при отражении модели предметной области в код
DDD: проблемы и решения при отражении модели предметной области в кодDDD: проблемы и решения при отражении модели предметной области в код
DDD: проблемы и решения при отражении модели предметной области в кодCUSTIS
 
DDD-secon-2014-tsepkov
DDD-secon-2014-tsepkovDDD-secon-2014-tsepkov
DDD-secon-2014-tsepkovMaxim Tsepkov
 
Ddd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovDdd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovMaxim Tsepkov
 
Пространство вариантов_final
Пространство вариантов_finalПространство вариантов_final
Пространство вариантов_finalVlad Berezin, PMP
 
BIT Как внедрить Blockchain в бизнес.pptx
BIT Как внедрить Blockchain в бизнес.pptxBIT Как внедрить Blockchain в бизнес.pptx
BIT Как внедрить Blockchain в бизнес.pptxssuser33cf201
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Lombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктовLombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктовКРОК
 
Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Sergey Orlik
 
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareBAKOTECH
 
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareMarina Gryshko
 
Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovMaxim Tsepkov
 
Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5rit2010
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINECleverics
 
Решения для оптимизации работы приложений
Решения для оптимизации работы приложенийРешения для оптимизации работы приложений
Решения для оптимизации работы приложенийКРОК
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลาtoomtam
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
 
Анонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производстваАнонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производстваDEPO Computers
 

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

DDD: проблемы и решения при отражении модели предметной области в код
DDD: проблемы и решения при отражении модели предметной области в кодDDD: проблемы и решения при отражении модели предметной области в код
DDD: проблемы и решения при отражении модели предметной области в код
 
Constructor
ConstructorConstructor
Constructor
 
DDD-secon-2014-tsepkov
DDD-secon-2014-tsepkovDDD-secon-2014-tsepkov
DDD-secon-2014-tsepkov
 
Ddd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkovDdd softwarepeople-2013-tsepkov
Ddd softwarepeople-2013-tsepkov
 
Пространство вариантов_final
Пространство вариантов_finalПространство вариантов_final
Пространство вариантов_final
 
BIT Как внедрить Blockchain в бизнес.pptx
BIT Как внедрить Blockchain в бизнес.pptxBIT Как внедрить Blockchain в бизнес.pptx
BIT Как внедрить Blockchain в бизнес.pptx
 
Управление ИТ в распределенных компаниях в 2011 году
Управление ИТ в распределенных компаниях в 2011 годуУправление ИТ в распределенных компаниях в 2011 году
Управление ИТ в распределенных компаниях в 2011 году
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Lombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктовLombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктов
 
Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010Клуб Архитекторов 22.04.2010
Клуб Архитекторов 22.04.2010
 
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
 
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell SoftwareМониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
Мониторинг, тюнинг и оптимизация баз данных, используя продукты Dell Software
 
Ddd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkovDdd happy dev-2013-tsepkov
Ddd happy dev-2013-tsepkov
 
Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5Anatol Filin Pragmatic Documentation 0 5
Anatol Filin Pragmatic Documentation 0 5
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINE
 
Решения для оптимизации работы приложений
Решения для оптимизации работы приложенийРешения для оптимизации работы приложений
Решения для оптимизации работы приложений
 
บริหารเวลา
บริหารเวลาบริหารเวลา
บริหารเวลา
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Анонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производстваАнонс новых моделей серверов ДЕПО Шторм российского производства
Анонс новых моделей серверов ДЕПО Шторм российского производства
 
Киев, BA Con 2017
Киев, BA Con 2017Киев, BA Con 2017
Киев, BA Con 2017
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

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

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

Editor's Notes

  1. Я отвечаю за разработку серверной части бэкап-системы в компании IASO Backup Работаю консультантом в DPI.Solutions 2 года проработал в компании Microsoft, в команде Hyper-V, которая является частью подразделения Windows Раньше было модно язвительно отзывать о Windows в плане качества, однако неудача с Windows Vista, года пришлось просто “потерять” результаты годовой работу тысяч человек, многому научила руководство. Сейчас там очень серьезные подходы к качеству, в том числе благодаря развитию автоматизированного тестирования - соотношение разработчиков и автоматизаторов в Windows - примерно 1:1 В мире совсем немного софта, который успешно работает на сотнях миллионов различных компьютеров, и стоит присмотреться к подходам к качеству, которые используются в его разработке.
  2. ,