SlideShare a Scribd company logo
BDD  DSL
как формализованный способ
построения эффективной коммуникации
между всеми участниками Delivery and
Value Team
Anton Semenchenko
ISSoft
BDD
Behavior-Driven Development
• Behavioral specifications
• Backlog Items
• Acceptance test as a part of Definition of Done
• Specification as a ubiquitous language
• TDD Test-Driven Development
• Tooling principles
• DSL
• User stories
• Story versus specification
DSL
Domain Specific Language
A computer programming language of limited
expressiveness focused on a particular domain.
• Computer programming language
• Language nature – sense of fluency, structure
• Limited expressiveness - a bare minimum of
features to support its domain. It’s impossible
to build entire system in a DSL; you use a DSL
for one particular aspect of the system.
• Domain focus – clear focus on a small
domain.
DLS – 3 main categories
• External DSL- SQL, Regular Expressions,
AWK, XML (for configuration BI and
Mockup frameworks)
• Internal DSL – Lisp, Ruby … Flow DP
• A Language workbench
• Fragmentary (external – regular
expressions; internal – Mock frameworks)
• Stand-alone DSL’s
Boundaries of DSLs
•Language nature
•Domain focus
•Limited expressiveness
• The domain focus isn’t a good boundary condition – the
boundaries more commonly resolve around limited
expressiveness and language nature.
Architecture of DSL processing
•DSL script
•Parse
•Semantic model
•Generate
•Target code
“Low” level details
• In thisour point of view a DSL is a front-end to a
library providing a different style of manipulation
to the “std” command-query interface.
• In this context, the library is a Semantic Model of
the DSL.
• Without code generation- “interpretation
language”
• With code generation – “compilation language”
• Efforts to build DSL is usually much smaller than
for building the underling model.
DSL – Why?
•Improving development productivity
1. The easier it is to read a lump of code, the easier it is to
find mistakes, and the easier it is to modify the system.
2. The limited expressiveness of DSL’s makes it harder to
say wrong things and easier to see when you’ve made
an error.
3. Avoids duplication by gathering together common
code.
4. Provides an abstraction
5. DSl can help learn how to use API – how to combine
“call’s” together.
DSL – Why?
•Communication with Domain experts
1. Provides language for communication with Domain
experts
Notes: Only subset of DSL’s could be used for this
purpose (for example regular expressions can’t)
2. Write and READ DSL code
3. Involve Domain experts on building a model
4. Involve Domain experts on building a ubiquitous
language
5. Note: Trying to describe a domain using a DSL is useful
even if DSL is never implemented. It can be beneficial
just as a platform for communication
Problems with DSL’s
•There is no experience in DSL
usage
•There is no experience in DSL
development
•There is no resources for “time
consuming” DSL development
Problems with DSL’s
• A huge set of DSL’s inside one project
Incremental costs of learning the DSL is quite small compared to
the cost of understanding model.
• Cost of Building (another point of view)
A DSL may be a small incremental cost over its underling library,
but it’s still a cost.
The cost of DSL is the cost over the cost of building the model.
A DSL may help think about the model and reduce cost of
building it.
• Too specific Language
Make sure you have a clear sense of what narrow problem the
DSL is focused on.
Real life example
•2 independent phases
•2 independent contracts
•2 absolutely different solutions
Real life example
• General “business” context
• Current “business” context
• General “technical” context
• Phase 1
• Solution 1 – “classical”
• Pros and Cons
• Phase 2
• Solution 2
1. Ubiquitous language
2. BDD
3. 3 Models (State Machines)
4. 3 DSL
• Pros and Cons (almost for free)
Anton Semenchenko
Skype: csi.AntonSemenchenko
Cell: +375 44 74 00 385
+375 33 33 46 120
ISSoft
AntonSemenchenko@coherentsolutions.com
Thanks 

More Related Content

PPTX
What's DSL and what isn't
PDF
Domain Specific Languages
PDF
Defining DSL (Domain Specific Language) using Ruby
PPT
DSL explained _
PPTX
DDD - What, why, how?
PDF
Domain Specific Languages - A superficial approach
PDF
Php melb cqrs-ddd-predaddy
PPTX
Using PowerShell as DSL in .Net applications
What's DSL and what isn't
Domain Specific Languages
Defining DSL (Domain Specific Language) using Ruby
DSL explained _
DDD - What, why, how?
Domain Specific Languages - A superficial approach
Php melb cqrs-ddd-predaddy
Using PowerShell as DSL in .Net applications

Viewers also liked (20)

PDF
Organisation and navigation
PPT
Joomla Request To Response
PPT
Box Model
PPTX
Images and Tables in HTML
PPT
Введение в веб-проектирование
PPTX
WordPress as Rapid Prototyping Tool
PDF
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
PDF
Custom Post Type and Taxonomies in WordPress 3.x
PDF
CSS Lessons Learned the Hard Way (Generate Conf)
PPTX
решение основной проблемы Agile (scrum) проектов в контексте ba
PDF
How Joomla Works
PDF
Show vs. Tell in UX Design (Front in Amsterdam)
PDF
Uwe usability evaluation
PPT
Css part2
PPT
Getting Started With Php Frameworks @BCP5
PPT
Верстка_Лекция1
PDF
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
PDF
Using Flexbox Today (Generate Sydney 2016)
PPT
Php Security
PDF
Пингвины из калининграда
Organisation and navigation
Joomla Request To Response
Box Model
Images and Tables in HTML
Введение в веб-проектирование
WordPress as Rapid Prototyping Tool
FL Blog Con 2015: How To Find The Best WordPress Plugins For You
Custom Post Type and Taxonomies in WordPress 3.x
CSS Lessons Learned the Hard Way (Generate Conf)
решение основной проблемы Agile (scrum) проектов в контексте ba
How Joomla Works
Show vs. Tell in UX Design (Front in Amsterdam)
Uwe usability evaluation
Css part2
Getting Started With Php Frameworks @BCP5
Верстка_Лекция1
Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в частности"
Using Flexbox Today (Generate Sydney 2016)
Php Security
Пингвины из калининграда
Ad

Similar to Bdd and dsl как способ построения коммуникации на проекте (20)

PDF
Agile DSL Development in Ruby
PDF
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
PDF
Domain Driven Design - Distillation - Chapter 15
PDF
GroovyDSLs
PDF
Domain Specific Languages
PPTX
Domain Specific Language Design
DOCX
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
PDF
Metamorphic Domain-Specific Languages
PPTX
Is SQL a Programming Language.pptx
PDF
Os Alrubaie Ruby
PPTX
difference between c c++ c#
PPTX
PDF
DSL Construction rith Ruby
PPTX
Domain specific modelling (DSM)
PDF
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
PDF
NetWork - 15.10.2011 - Applied code generation in .NET
KEY
Challenges In Dsl Design
PPT
Domain Driven Design (DDD)
PDF
DSL development
PDF
Domain Driven Design and Model Driven Software Development
Agile DSL Development in Ruby
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
Domain Driven Design - Distillation - Chapter 15
GroovyDSLs
Domain Specific Languages
Domain Specific Language Design
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
Metamorphic Domain-Specific Languages
Is SQL a Programming Language.pptx
Os Alrubaie Ruby
difference between c c++ c#
DSL Construction rith Ruby
Domain specific modelling (DSM)
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
NetWork - 15.10.2011 - Applied code generation in .NET
Challenges In Dsl Design
Domain Driven Design (DDD)
DSL development
Domain Driven Design and Model Driven Software Development
Ad

More from ISsoft (20)

PPTX
Sql инъекции в тестировании
PPTX
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
PPTX
Testing of mobile apps
PPTX
Testing, qa, qc. what the difference
PPTX
Ranorex presentation
ODP
Bugs
PPT
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
PPTX
Тестирование требований
PPTX
Тестирование требований
PPTX
Sql practise for beginners
PPT
Отдел юзабилити
PPT
ToDoList
PPTX
ISTQB
PPTX
Prototype presentation
PPTX
решение одной из ключевых проблем компетенции Ba специалистов
PPTX
Development of automated tests for ext js based web sites
PPTX
Bdd or dsl как способ построения коммуникации на проекте
PPTX
инфотекс автоматизация тестирования
PPT
Sikuli script
PPTX
Планирование тестирования - релизные планы
Sql инъекции в тестировании
введение в практическую разработку по в Is soft 4-1 and 4-2 clients and commu...
Testing of mobile apps
Testing, qa, qc. what the difference
Ranorex presentation
Bugs
Bdd j behave or cucumber jvm plus appium for efficient cross platform mobile ...
Тестирование требований
Тестирование требований
Sql practise for beginners
Отдел юзабилити
ToDoList
ISTQB
Prototype presentation
решение одной из ключевых проблем компетенции Ba специалистов
Development of automated tests for ext js based web sites
Bdd or dsl как способ построения коммуникации на проекте
инфотекс автоматизация тестирования
Sikuli script
Планирование тестирования - релизные планы

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Tartificialntelligence_presentation.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
A Presentation on Artificial Intelligence
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
1. Introduction to Computer Programming.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
OMC Textile Division Presentation 2021.pptx
Spectroscopy.pptx food analysis technology
Building Integrated photovoltaic BIPV_UPV.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
A comparative study of natural language inference in Swahili using monolingua...
Per capita expenditure prediction using model stacking based on satellite ima...
Machine learning based COVID-19 study performance prediction
Programs and apps: productivity, graphics, security and other tools
Tartificialntelligence_presentation.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Group 1 Presentation -Planning and Decision Making .pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
A Presentation on Artificial Intelligence
Heart disease approach using modified random forest and particle swarm optimi...
Digital-Transformation-Roadmap-for-Companies.pptx
1. Introduction to Computer Programming.pptx

Bdd and dsl как способ построения коммуникации на проекте

  • 1. BDD DSL как формализованный способ построения эффективной коммуникации между всеми участниками Delivery and Value Team Anton Semenchenko ISSoft
  • 2. BDD Behavior-Driven Development • Behavioral specifications • Backlog Items • Acceptance test as a part of Definition of Done • Specification as a ubiquitous language • TDD Test-Driven Development • Tooling principles • DSL • User stories • Story versus specification
  • 3. DSL Domain Specific Language A computer programming language of limited expressiveness focused on a particular domain. • Computer programming language • Language nature – sense of fluency, structure • Limited expressiveness - a bare minimum of features to support its domain. It’s impossible to build entire system in a DSL; you use a DSL for one particular aspect of the system. • Domain focus – clear focus on a small domain.
  • 4. DLS – 3 main categories • External DSL- SQL, Regular Expressions, AWK, XML (for configuration BI and Mockup frameworks) • Internal DSL – Lisp, Ruby … Flow DP • A Language workbench • Fragmentary (external – regular expressions; internal – Mock frameworks) • Stand-alone DSL’s
  • 5. Boundaries of DSLs •Language nature •Domain focus •Limited expressiveness • The domain focus isn’t a good boundary condition – the boundaries more commonly resolve around limited expressiveness and language nature.
  • 6. Architecture of DSL processing •DSL script •Parse •Semantic model •Generate •Target code
  • 7. “Low” level details • In thisour point of view a DSL is a front-end to a library providing a different style of manipulation to the “std” command-query interface. • In this context, the library is a Semantic Model of the DSL. • Without code generation- “interpretation language” • With code generation – “compilation language” • Efforts to build DSL is usually much smaller than for building the underling model.
  • 8. DSL – Why? •Improving development productivity 1. The easier it is to read a lump of code, the easier it is to find mistakes, and the easier it is to modify the system. 2. The limited expressiveness of DSL’s makes it harder to say wrong things and easier to see when you’ve made an error. 3. Avoids duplication by gathering together common code. 4. Provides an abstraction 5. DSl can help learn how to use API – how to combine “call’s” together.
  • 9. DSL – Why? •Communication with Domain experts 1. Provides language for communication with Domain experts Notes: Only subset of DSL’s could be used for this purpose (for example regular expressions can’t) 2. Write and READ DSL code 3. Involve Domain experts on building a model 4. Involve Domain experts on building a ubiquitous language 5. Note: Trying to describe a domain using a DSL is useful even if DSL is never implemented. It can be beneficial just as a platform for communication
  • 10. Problems with DSL’s •There is no experience in DSL usage •There is no experience in DSL development •There is no resources for “time consuming” DSL development
  • 11. Problems with DSL’s • A huge set of DSL’s inside one project Incremental costs of learning the DSL is quite small compared to the cost of understanding model. • Cost of Building (another point of view) A DSL may be a small incremental cost over its underling library, but it’s still a cost. The cost of DSL is the cost over the cost of building the model. A DSL may help think about the model and reduce cost of building it. • Too specific Language Make sure you have a clear sense of what narrow problem the DSL is focused on.
  • 12. Real life example •2 independent phases •2 independent contracts •2 absolutely different solutions
  • 13. Real life example • General “business” context • Current “business” context • General “technical” context • Phase 1 • Solution 1 – “classical” • Pros and Cons • Phase 2 • Solution 2 1. Ubiquitous language 2. BDD 3. 3 Models (State Machines) 4. 3 DSL • Pros and Cons (almost for free)
  • 14. Anton Semenchenko Skype: csi.AntonSemenchenko Cell: +375 44 74 00 385 +375 33 33 46 120 ISSoft [email protected] Thanks 