1. XText - Business Rule Engine
в контексте BA
Александр Василёнок
DPI Solutions
2. Немного о себе
Александр Василёнок
Более 12 лет опыта в разработке:
● CEO, cofounder в DPI Solutions
● Проекты в прошлом:
Backend (JavaEE) – ПО для документооборота и
бюджетирования
Frontend (Swing, ActionScript) –
Системы онлайн консультаций
ПО для медицины(протезирования)
3. DSL, XText – основные понятия
DSL – язык программирования специфичный для конкретной
предметной области.
Xtext - инфраструктура для разработки внешнего текстового DSL.
Реализация DSL – разработка программы выполняющей:
o разбор
o обработку
o интерпретацию*
5. Api и DSL
API DSL
Методы состояния:
Методы изменяющие состояния:
DSL
6. «Факультет нетрадиционного использования
Логарифмической линейки». Как стоит а как не стоит
использовать Xtext
Когда стоит:
• Почти всегда*
Когда не стоит:
• Не понятна доменная область
• Надо получить результат “здесь и сейчас”
• Выгоды несоизмеримо малы с вложенными ресурсами
* The Pragmatic Programmer: From Journeyman to Master. Andrew
Hunt, David Thomas
8. Выплатить вознаграждение торговым сетям и дилерам, региона 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*
9. Как BA специалисту работать с
XText
• Определение грамматики
• Анализ корректности модели
• Выявление противоречий модели
• Тестирование модели:
1) Оптимизация вызовов
2) Все ли события используются
3) Все ли состояния достижимы
4) Все ли команды используются
11. Agile и Waterfall – особенности
работы BA специалиста в
зависимости от методологии
Agile:
• Тесная работа с разработчиками
• Небольшая грамматика
• Быстрый цикл обратной связи
Waterfall:
• Большие итерации
• Технически грамотный BA
• Семейство DSL
12. Варианты организации сбора и
формализации бизнес
требований при работе с XText
Customer BA
User stories
Requirements
Grammar
13. Варианты организации сбора и
формализации бизнес
требований при работе с XText
Customer BA
Technical specialist
User stories
Grammar
Requirements
Grammar
1..n
Customer BA
User stories
Requirements
Grammar
15. Эволюция процессов Бизнес
Анализа на разных этапах
жизненного цикла проекта
построенного на Xtext
Определение грамматики DSL
Разработка минимального количества
бизнес правил на DSL
Тестирование
Внесение изменений в
грамматику DSL
16. Эволюция процессов Бизнес
Анализа на разных этапах
жизненного цикла проекта
построенного на Xtext
Определение грамматики DSL
Разработка минимального колличесва
бизнес правил на DSL
Программирование на DSL
Тестирование
Внесение изменений в
грамматику DSL
17. Использование DSLs в ПО на
предприятии
металлообработки .
• Увеличение производительности отдела маркетинга
• Оптимизация процессов сбора данных
• Оптимизация использования станков
18. В итоге
• Затраты на обучение DSL несоизмеримо малы по отношению к
пониманию модели
• DSL упрощает понимание модели и управление ею
• Повышается производительности BA
• Сокращение объема работ узкоспециализированных сотрудников
• Повышается скорость внедрения новых требований в контексте
предметной области
19. Литература
• 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