SlideShare a Scribd company logo
1 of 20
Download to read offline
www.metacase.com
Choosing the Best Level of
Abstraction for Your
Domain-Specific Language
1 July 2013
Juha-Pekka Tolvanen, PhD
jpt@metacase.com
www.metacase.com
Some (repeated) definitions
 General-Purpose / Domain-Specific
 External / Embedded / Internal Languages
 Problem Domain / Solution Domain
 Graphical / text / matrix / table / maps etc. as concrete syntax
 Static / behavior
 Turing complete / in-complete
 Domain knowledge as first class citizen / naming convention
www.metacase.com
(Your) area of interest = domain
Problem
domain
Solution
domain
Banking Mobile Automotive etc.
DSL needs
to be
narrow,
e.g. Mobile
DSL is too
wide
Android
DSL
Installer
DSL
Conf app
DSL
Loan app
DSL
www.metacase.com
Where at the main benefits?
 More empirical research is needed, but studies show
improvements in:
– Productivity
– Quality
– Process
– Maintenance tasks
– Understanding and communication
– Easier introduction of new developers etc.
 While time-to-market is often the most significant
improvement, many industry cases shows 5-10x
(500-1000%) productivity improvements (see references)
www.metacase.com
Industry experiences
"The setup effort to create the languages
was a couple of weeks and provided
more than ten times faster speed"
"The quality of the generated code is
clearly better, simply because the
modeling language rules out errors"
"The DSML solution makes development
significantly faster and easier than the
old manual coding practices"
Elektrobit
www.metacase.com
Controlled empirical studies
– Built the same system twice: 425% faster
– Built code generator for a second platform: a fraction of time
– Lab study: 6 engineers develop typical features: > 750% faster
– Built the same system twice: 900% faster
– Built the same production system in parallel
– Built several similar systems: Break Even Point = 3,14
www.metacase.com
www.metacase.com
www.metacase.com
www.metacase.com
Telecom services
www.metacase.com
Railway interlocking
www.metacase.com
Radio network testing
 Modeling test cases/test logic and generating test data
www.metacase.com
Voice control
www.metacase.com
Web app testing
www.metacase.com
500 %
1000 %
750 %
600 %
900 %
500 %
600 %
0 %
100 %
200 %
300 %
400 %
500 %
600 %
700 %
800 %
900 %
1000 %
Embedded UI
applications
Mobile phone
software
Phone switch
features
Call
processing
services
Heart rate
monitor
J2EE web
application
Home
automation
Domains
Percent Increase
Productivity increase measured
Comparing to
earlier practice
(typically compared
to coding)
www.metacase.com
Analysis of the cases indicates
 DSL should raise the level of abstraction above the code
 DSL is not using necessarily linear text representation
– Domain and problem solving dictates
– Maps, diagrams, matrixes, tables etc.
 DSL focus on narrow domain
– Exclude outside as much as possible
 DSL for other than producing the code
– Higher abstraction is not applicable only for producing the code
but can also be used for testing, deployment, interaction
design, localization etc.
www.metacase.com
Tooling
 Some sort of tooling is always used, but big differences on
tools, see
– series of Language Workbench Comparison, LWC 2011-2013
– Comparison reports, e.g. tinyurl.com/gerard12: Language
implementation (Eclipse GMF 25 days vs. MetaEdit+ 0.5 days)
 Language creation is the first task but also other issues
need to be handled, like
– integrating multiple languages
– sharing languages
– maintaining languages
– updating specifications made with earlier version of language
– collaboration, like multiple language engineers
www.metacase.com
Summary
 Raise the abstraction as high as possible:
ideally 1:1 to problem domain
 Exclude outside as much as you can
 Refine languages as needed (keep it flexible)
 Use tools that support “agile” language definition
– And allow also models to automatically update to new language
version
www.metacase.com
Thank You!
Questions?
To see various cases, examples, and download
MetaEdit+ tool, visit http://www.metacase.com
www.metacase.com
References
 Kelly, S., Tolvanen, J.-P., Domain-Specific Modeling:
Enabling Full Code Generation, Wiley, 2008. DSMbook.com
 El Kouhen, A., Dumoulin, C., Gérard, S., Boulet, P., Evaluation of Modeling
Tools Adaptation, tinyurl.com/gerard12
 Kärnä, J., et al. Evaluating the Use of Domain-Specific Modeling in Practice,
9th DSM Workshop (2009)
 Puolitaival, et al. Utilizing Domain-Specific Modeling for Software Testing,
Proceedings of VALID, (2011)
 Preschern et al. Domain Specific Language Architecture for Automation
Systems: An Industrial Case Study, Procs of Graphical Modeling Language
Development, DTU (2012)
 Safa, L., The Making Of User-Interface Designer, A Proprietary DSM Tool,
Procs of 7th DSM Workshop (2007)
 Sprinkle et al. (eds) IEEE Software, DSL&M special issue, July/Aug, 2009,
including: Kelly & Pohjonen,
Worst Practices for DSM, tinyurl.com/worstDSM

More Related Content

More from Juha-Pekka Tolvanen

Collaborative modeling and metamodeling
Collaborative modeling and metamodelingCollaborative modeling and metamodeling
Collaborative modeling and metamodelingJuha-Pekka Tolvanen
 
Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+Juha-Pekka Tolvanen
 
20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling Languages20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling LanguagesJuha-Pekka Tolvanen
 
Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Juha-Pekka Tolvanen
 
Keynote at Code Generation 2014: The business cases of modeling and generators
Keynote at Code Generation 2014: The business cases of modeling and generatorsKeynote at Code Generation 2014: The business cases of modeling and generators
Keynote at Code Generation 2014: The business cases of modeling and generatorsJuha-Pekka Tolvanen
 
Industrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific ModelingIndustrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific ModelingJuha-Pekka Tolvanen
 

More from Juha-Pekka Tolvanen (6)

Collaborative modeling and metamodeling
Collaborative modeling and metamodelingCollaborative modeling and metamodeling
Collaborative modeling and metamodeling
 
Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+
 
20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling Languages20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling Languages
 
Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014
 
Keynote at Code Generation 2014: The business cases of modeling and generators
Keynote at Code Generation 2014: The business cases of modeling and generatorsKeynote at Code Generation 2014: The business cases of modeling and generators
Keynote at Code Generation 2014: The business cases of modeling and generators
 
Industrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific ModelingIndustrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific Modeling
 

Recently uploaded

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainAbdul Ahad
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 

Recently uploaded (20)

Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 

Choosing the Best Level of Abstraction for Your Domain-Specific Language

  • 1. www.metacase.com Choosing the Best Level of Abstraction for Your Domain-Specific Language 1 July 2013 Juha-Pekka Tolvanen, PhD jpt@metacase.com
  • 2. www.metacase.com Some (repeated) definitions  General-Purpose / Domain-Specific  External / Embedded / Internal Languages  Problem Domain / Solution Domain  Graphical / text / matrix / table / maps etc. as concrete syntax  Static / behavior  Turing complete / in-complete  Domain knowledge as first class citizen / naming convention
  • 3. www.metacase.com (Your) area of interest = domain Problem domain Solution domain Banking Mobile Automotive etc. DSL needs to be narrow, e.g. Mobile DSL is too wide Android DSL Installer DSL Conf app DSL Loan app DSL
  • 4. www.metacase.com Where at the main benefits?  More empirical research is needed, but studies show improvements in: – Productivity – Quality – Process – Maintenance tasks – Understanding and communication – Easier introduction of new developers etc.  While time-to-market is often the most significant improvement, many industry cases shows 5-10x (500-1000%) productivity improvements (see references)
  • 5. www.metacase.com Industry experiences "The setup effort to create the languages was a couple of weeks and provided more than ten times faster speed" "The quality of the generated code is clearly better, simply because the modeling language rules out errors" "The DSML solution makes development significantly faster and easier than the old manual coding practices" Elektrobit
  • 6. www.metacase.com Controlled empirical studies – Built the same system twice: 425% faster – Built code generator for a second platform: a fraction of time – Lab study: 6 engineers develop typical features: > 750% faster – Built the same system twice: 900% faster – Built the same production system in parallel – Built several similar systems: Break Even Point = 3,14
  • 12. www.metacase.com Radio network testing  Modeling test cases/test logic and generating test data
  • 15. www.metacase.com 500 % 1000 % 750 % 600 % 900 % 500 % 600 % 0 % 100 % 200 % 300 % 400 % 500 % 600 % 700 % 800 % 900 % 1000 % Embedded UI applications Mobile phone software Phone switch features Call processing services Heart rate monitor J2EE web application Home automation Domains Percent Increase Productivity increase measured Comparing to earlier practice (typically compared to coding)
  • 16. www.metacase.com Analysis of the cases indicates  DSL should raise the level of abstraction above the code  DSL is not using necessarily linear text representation – Domain and problem solving dictates – Maps, diagrams, matrixes, tables etc.  DSL focus on narrow domain – Exclude outside as much as possible  DSL for other than producing the code – Higher abstraction is not applicable only for producing the code but can also be used for testing, deployment, interaction design, localization etc.
  • 17. www.metacase.com Tooling  Some sort of tooling is always used, but big differences on tools, see – series of Language Workbench Comparison, LWC 2011-2013 – Comparison reports, e.g. tinyurl.com/gerard12: Language implementation (Eclipse GMF 25 days vs. MetaEdit+ 0.5 days)  Language creation is the first task but also other issues need to be handled, like – integrating multiple languages – sharing languages – maintaining languages – updating specifications made with earlier version of language – collaboration, like multiple language engineers
  • 18. www.metacase.com Summary  Raise the abstraction as high as possible: ideally 1:1 to problem domain  Exclude outside as much as you can  Refine languages as needed (keep it flexible)  Use tools that support “agile” language definition – And allow also models to automatically update to new language version
  • 19. www.metacase.com Thank You! Questions? To see various cases, examples, and download MetaEdit+ tool, visit http://www.metacase.com
  • 20. www.metacase.com References  Kelly, S., Tolvanen, J.-P., Domain-Specific Modeling: Enabling Full Code Generation, Wiley, 2008. DSMbook.com  El Kouhen, A., Dumoulin, C., Gérard, S., Boulet, P., Evaluation of Modeling Tools Adaptation, tinyurl.com/gerard12  Kärnä, J., et al. Evaluating the Use of Domain-Specific Modeling in Practice, 9th DSM Workshop (2009)  Puolitaival, et al. Utilizing Domain-Specific Modeling for Software Testing, Proceedings of VALID, (2011)  Preschern et al. Domain Specific Language Architecture for Automation Systems: An Industrial Case Study, Procs of Graphical Modeling Language Development, DTU (2012)  Safa, L., The Making Of User-Interface Designer, A Proprietary DSM Tool, Procs of 7th DSM Workshop (2007)  Sprinkle et al. (eds) IEEE Software, DSL&M special issue, July/Aug, 2009, including: Kelly & Pohjonen, Worst Practices for DSM, tinyurl.com/worstDSM