Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

669 views

Published on

Доклад Дмитрия Безуглого на конференции Analyst Days-4,
17-18 апреля 2015 г., Минск
www.analystdays.com

Published in: Education
  • Be the first to comment

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

  1. 1. XText - Business Rule Engine в контексте BA Александр Василёнок DPI Solutions
  2. 2. Немного о себе Александр Василёнок Более 12 лет опыта в разработке: ● CEO, cofounder в DPI Solutions ● Проекты в прошлом:  Backend (JavaEE) – ПО для документооборота и бюджетирования  Frontend (Swing, ActionScript) – Системы онлайн консультаций ПО для медицины(протезирования)
  3. 3. DSL, XText – основные понятия DSL – язык программирования специфичный для конкретной предметной области. Xtext - инфраструктура для разработки внешнего текстового DSL. Реализация DSL – разработка программы выполняющей: o разбор o обработку o интерпретацию*
  4. 4. Api и … API Методы состояния: Методы изменяющие состояния:
  5. 5. Api и DSL API DSL Методы состояния: Методы изменяющие состояния: DSL
  6. 6. «Факультет нетрадиционного использования Логарифмической линейки». Как стоит а как не стоит использовать Xtext Когда стоит: • Почти всегда* Когда не стоит: • Не понятна доменная область • Надо получить результат “здесь и сейчас” • Выгоды несоизмеримо малы с вложенными ресурсами * The Pragmatic Programmer: From Journeyman to Master. Andrew Hunt, David Thomas
  7. 7. Пример. Выплата вознаграждений A B1 B2 B3 B4 C1 C2 C3 C4 C5 A (Поставщик) B (Регион) C (Торговая сеть) D (Дилер) C4
  8. 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. 9. Как BA специалисту работать с XText • Определение грамматики • Анализ корректности модели • Выявление противоречий модели • Тестирование модели: 1) Оптимизация вызовов 2) Все ли события используются 3) Все ли состояния достижимы 4) Все ли команды используются
  10. 10. Возможности XText
  11. 11. Agile и Waterfall – особенности работы BA специалиста в зависимости от методологии Agile: • Тесная работа с разработчиками • Небольшая грамматика • Быстрый цикл обратной связи Waterfall: • Большие итерации • Технически грамотный BA • Семейство DSL
  12. 12. Варианты организации сбора и формализации бизнес требований при работе с XText Customer BA User stories Requirements Grammar
  13. 13. Варианты организации сбора и формализации бизнес требований при работе с XText Customer BA Technical specialist User stories Grammar Requirements Grammar 1..n Customer BA User stories Requirements Grammar
  14. 14. Эволюция процессов Бизнес Анализа на разных этапах жизненного цикла проекта построенного на Xtext Определение грамматики DSL
  15. 15. Эволюция процессов Бизнес Анализа на разных этапах жизненного цикла проекта построенного на Xtext Определение грамматики DSL Разработка минимального количества бизнес правил на DSL Тестирование Внесение изменений в грамматику DSL
  16. 16. Эволюция процессов Бизнес Анализа на разных этапах жизненного цикла проекта построенного на Xtext Определение грамматики DSL Разработка минимального колличесва бизнес правил на DSL Программирование на DSL Тестирование Внесение изменений в грамматику DSL
  17. 17. Использование DSLs в ПО на предприятии металлообработки . • Увеличение производительности отдела маркетинга • Оптимизация процессов сбора данных • Оптимизация использования станков
  18. 18. В итоге • Затраты на обучение DSL несоизмеримо малы по отношению к пониманию модели • DSL упрощает понимание модели и управление ею • Повышается производительности BA • Сокращение объема работ узкоспециализированных сотрудников • Повышается скорость внедрения новых требований в контексте предметной области
  19. 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
  20. 20. Александр Василёнок vasilenok@dpi.solutions DPI Solutions www.dpi.solutions Belarus QA Automation Community www.comaqa.by ☺ Спасибо! Вопросы?

×