XText - Business Rule Engine * ********* BA

advertisement
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
A (Поставщик)
B (Регион)
B1
C1
B2
B3
C4
C4
C (Торговая сеть)
C2
C3
D (Дилер)
C5
B4
Выплатить вознаграждение торговым сетям и дилерам, региона 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
User stories
Customer
Grammar
BA
Requirements
Варианты организации сбора и
формализации бизнес
требований при работе с XText
User stories
Grammar
Customer
BA
Requirements
User stories
Grammar
Customer
BA
1..n
Requirements
Grammar
Technical specialist
Эволюция процессов Бизнес
Анализа на разных этапах
жизненного цикла проекта
построенного на 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
☺
Download