XText - Business Rule Engine в контексте BA

Post on 15-Jul-2015

201 views 1 download

Transcript of XText - Business Rule Engine в контексте BA

XText - Business Rule Engine

в контексте BA

Александр Василёнок

DPI Solutions

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

Александр ВасилёнокБолее 12 лет опыта в разработке:

● CEO, cofounder в DPI Solutions

● Проекты в прошлом:

Backend (JavaEE) – ПО для документооборота и

бюджетирования

Frontend (Swing, ActionScript) –

Системы онлайн консультаций

ПО для медицины(протезирования)

DSL, XText – основные понятия

DSL – язык программирования специфичный для конкретной

предметной области.

Xtext - инфраструктура для разработки внешнего текстового DSL.

Реализация DSL – разработка программы выполняющей:

o разбор

o обработку

o интерпретацию*

Api и …

API

Методы состояния:

Методы изменяющие состояния:

Api и DSL

API DSL

Методы состояния:

Методы изменяющие состояния:DSL

«Факультет нетрадиционного использования

Логарифмической линейки». Как стоит а как не стоит

использовать Xtext

Когда стоит:

• Почти всегда*

Когда не стоит:

• Не понятна доменная область

• Надо получить результат “здесь и сейчас”

• Выгоды несоизмеримо малы с вложенными ресурсами

* The Pragmatic Programmer: From Journeyman to Master. Andrew

Hunt, David Thomas

Пример. Выплата

вознагражденийA

B1 B2 B3 B4

C1

C2

C3

C4

C5

A (Поставщик)

B (Регион)

C (Торговая сеть)

D (Дилер)

C4

Выплатить вознаграждение торговым сетям и дилерам, региона B2

и B1, в размере 3 и 1 процента от выручки дилеров соответственно,

при условии наличия 2 и более дилеров, выручка которых

превысила 100K за квартал.

{var1}=‘100K’

Pay 3 Percent of {var3}.revenue to {var2} and 1 Percent of

{var3}.revenue to {var3}

Context:

search MainStore.

Region[name = B1|B2; children.count >= 2].

{var2} = Network[child.revenue > {var1} During last ‘4 months’].

{var3} = Dealer*

Как BA специалисту работать с

XText

• Определение грамматики

• Анализ корректности модели

• Выявление противоречий модели

• Тестирование модели:

1) Оптимизация вызовов

2) Все ли события используются

3) Все ли состояния достижимы

4) Все ли команды используются

Возможности XText

Agile и Waterfall – особенности

работы BA специалиста в

зависимости от методологии

Agile:

• Тесная работа с разработчиками

• Небольшая грамматика

• Быстрый цикл обратной связи

Waterfall:

• Большие итерации

• Технически грамотный BA

• Семейство DSL

Варианты организации сбора и

формализации бизнес

требований при работе с XText

Customer BA

User stories

Requirements

Grammar

Варианты организации сбора и

формализации бизнес

требований при работе с XText

Customer BA

Technical specialist

User stories

Grammar

Requirements

Grammar

1..n

Customer BA

User stories

Requirements

Grammar

Эволюция процессов Бизнес

Анализа на разных этапах

жизненного цикла проекта

построенного на Xtext

Определение грамматики DSL

Эволюция процессов Бизнес

Анализа на разных этапах

жизненного цикла проекта

построенного на Xtext

Определение грамматики DSL

Разработка минимального количества

бизнес правил на DSLТестирование

Внесение изменений в

грамматику DSL

Эволюция процессов Бизнес

Анализа на разных этапах

жизненного цикла проекта

построенного на Xtext

Определение грамматики DSL

Разработка минимального колличесва

бизнес правил на DSL

Программирование на DSL

ТестированиеВнесение изменений в

грамматику DSL

Использование DSLs в ПО на

предприятии

металлообработки .

• Увеличение производительности отдела маркетинга

• Оптимизация процессов сбора данных

• Оптимизация использования станков

В итоге

• Затраты на обучение DSL несоизмеримо малы по отношению к

пониманию модели

• DSL упрощает понимание модели и управление ею

• Повышается производительности BA

• Сокращение объема работ узкоспециализированных сотрудников

• Повышается скорость внедрения новых требований в контексте

предметной области

Литература

• The Pragmatic Programmer: From Journeyman to Master. Andrew

Hunt, David Thomas

• Domain Specific Languages. Martin Fowler

• Domain-Driven Design: Tackling Complexity in the Heart of

Software. Eric Evans

Александр Василёнок

vasilenok@dpi.solutions

DPI Solutions

www.dpi.solutions

Belarus QA Automation Community

www.comaqa.by

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