xtext - business rule engine в контексте ba

20
XText - Business Rule Engine в контексте BA Александр Василёнок DPI Solutions

Upload: sqalab

Post on 15-Jul-2015

200 views

Category:

Education


1 download

TRANSCRIPT

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

XText - Business Rule Engine

в контексте BA

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

DPI Solutions

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

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

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

● CEO, cofounder в DPI Solutions

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

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

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

Frontend (Swing, ActionScript) –

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

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

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

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

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

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

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

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

o разбор

o обработку

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

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

Api и …

API

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

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

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

Api и DSL

API DSL

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

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

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

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

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

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

Когда стоит:

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

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

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

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

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

* The Pragmatic Programmer: From Journeyman to Master. Andrew

Hunt, David Thomas

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

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

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

B1 B2 B3 B4

C1

C2

C3

C4

C5

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

B (Регион)

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

D (Дилер)

C4

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

Выплатить вознаграждение торговым сетям и дилерам, региона 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*

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

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

XText

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Agile:

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

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

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

Waterfall:

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

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

• Семейство DSL

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

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

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

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

Customer BA

User stories

Requirements

Grammar

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

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

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

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

Customer BA

Technical specialist

User stories

Grammar

Requirements

Grammar

1..n

Customer BA

User stories

Requirements

Grammar

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

грамматику DSL

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

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

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

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

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

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

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

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

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

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

грамматику DSL

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

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

предприятии

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

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

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

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

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

В итоге

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

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

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

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

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

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

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

Page 19: XText - Business Rule Engine в контексте 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

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

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

[email protected]

DPI Solutions

www.dpi.solutions

Belarus QA Automation Community

www.comaqa.by

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