SlideShare a Scribd company logo
1 of 20
Download to read offline
1
Juha-Pekka Tolvanen, Steven Kelly
jpt@metacase.com
Effort Used to Create Domain-
Specific Modeling Languages
2
Agenda
 Introduction and motivation
 Research method
– Conduct case studies
– Review industry reports
 Results
 Reflection and other work done
 Conclusions and discussion
3
Real world example: Fish farm
 hardware: sensors, actuators, cabling
 functionality: lights, feeding, monitoring, etc.
 Persistent data
 UI
 Communication
 Deployment and operations: install, maintain
4
DSM solution for developing fish farm
automation systems
5
Industry experiences on
productivity increase with DSM
"5-fold productivity increase
when compared to standard
development methods"
"The quality is clearly better,
simply because the modeling
language rules out errors"
"makes development
significantly faster and easier
than the old manual coding practices"
6
Effort to create a DSM solution?
 DSM brings significant improvements to:
– Development speed
– Product quality
– Participation of subject
matter experts
– Code quality
– Ease of introducing
new personnel, etc.
 But require an investment
– How big this is?
0
10
20
30
40
50
60
70
80
90
100
0 1 2 3 4 5 6
Cost
Repetition
Current DSM
{
7
Research question:
How big is the effort to
create a Domain-Specific
Modeling language?
8
DSM solution consist of:
 Metamodel
 Constraints
 Notation
 Generators
 Tooling and tool-chain
 + Training material, guides, tutorials etc.
9
Two research methods applied:
1. Case study
– Create complete modeling solutions for two domains
– To collect data on the effort in detail
– Implementation by authors
2. Analyze industry cases
– Reports on creating DSM solutions by and for industry
• Not done by authors
– To get "real-world" view, having at least one generator
• If several generators only those providing data per generator
included
 All cases done with MetaEdit+: No difference from tools
10
On case studies
 Recorded data on the effort:
– Timestamps from metamodel
– Generator changes
– Version history
– Diary on the effort
 Case selection:
– Can be shared
– Can be repeated by others
– Target different domains, have different purpose
 Resulting modeling solutions tested with reference
examples
11
Case1: DSM solution for IoT device
12
Sample app2: Boat monitor
13
Effort to create DSM for IoT*
 Solution:
– 74 elements in metamodel
– 39 constraints
– 54 notational symbols
– 9 icons
– 1 model checker
(21 LOC)
– 1 code generator
(556 LOC)
 Effort:
– 3.8 man-days
*Implementation available: www.metacase.com/download, ’IoT’ example project
0,0 1,0 2,0
Tooling
Generators
Notation
Constraints
Plain metamodel
Days
14
Case2: Modeling support for Archimate
15
Effort to implement Archimate
support*
* Implementation of the ArchiMate is available from https://github.com/mccjpt/ArchiMate
 Solution:
– 125 elements in metamodel, incl. 24 abstract ones
– 10 000+ constraints, 10760 alone for legal relationships
– 89 notational symbols
– 77 icons
– 3 model checkers
(42 LOC)
 Effort:
– 3.5 man-days
0 0,5 1 1,5
Tooling
Generators
Notation
Constraints
Plain metamodel
Days
16
Cost of DSL creation: industry cases
 Very few companies (and academic papers) report
figures on the creation effort
0 5 10 15
Blood separators
Military radio system
High level synthesis, ESL
Heating remote control
Voice control
Car infotainment
Sport watches
Touch screen controller
Days
17
Results
 Effort to create DSM solution is modest (in all cases)
– 1-2 language engineers
– 3-15 man-days, average 10 man-days in industry cases
 Data indicates that
– Generator development takes 40-60%
– The size of the resulting language had a surprisingly small
effect on the effort required
• We have detailed data from three industry cases (under NDA):
effort increases less than linearly with size
18
What influences to the effort?
 Size of the domain?
 Experience of language engineer(s)?
 Tooling?
 Tools seem to have the biggest influence to effort
– Different languages, same tool: 1-5x differences
• Among the 10 cases presented
– Same language, different tools: 10-50x differences
• El Kouhen et al. implementing BPMN in 5 different tools
19
Conclusions
 We are not aware of many systematic studies
comparing the development effort across several DSM
solutions
 Effort to create Domain-Specific Modeling support is
modest with MetaEdit+
– 10 man-days in average in industry cases
 Tools seem to have a big influence to the effort needed
 Future research
– Repeat the study with other languages and tools
– Address also maintenance, and not only DSM solution but
also models made
20
Thank you!
Questions?
Experiences?
Counter arguments?
Future research topics?
jpt@metacase.com
Juha-Pekka Tolvanen

More Related Content

What's hot

Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...
'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...
'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...TEST Huddle
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsRadu_Negulescu
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-softwareAlenaDion
 
Tim Gentry Final Resume
Tim Gentry Final ResumeTim Gentry Final Resume
Tim Gentry Final ResumeTimothy Gentry
 
The Role of Testing in DevOps
The Role of Testing in DevOpsThe Role of Testing in DevOps
The Role of Testing in DevOpsUberto Barbini
 
SE18_Lec 00_Course Outline
SE18_Lec 00_Course OutlineSE18_Lec 00_Course Outline
SE18_Lec 00_Course OutlineAmr E. Mohamed
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introductionDr. Loganathan R
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro pptNancyBeaulah_R
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software EngineeringAlaa Hamouda
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesNesrine Shokry
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsNishu Rastogi
 
Py data scikit-production
Py data scikit-productionPy data scikit-production
Py data scikit-productionTuri, Inc.
 
CSC426 - Software Engineering Lecture Note Cont'd
CSC426   - Software Engineering Lecture Note Cont'dCSC426   - Software Engineering Lecture Note Cont'd
CSC426 - Software Engineering Lecture Note Cont'dBro Shola Ajayi
 

What's hot (20)

Sdlc
SdlcSdlc
Sdlc
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...
'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...
'Acceptance Test Driven Development Using Robot Framework' by Pekka Klarch & ...
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Tim Gentry Final Resume
Tim Gentry Final ResumeTim Gentry Final Resume
Tim Gentry Final Resume
 
Unit 6
Unit 6Unit 6
Unit 6
 
The Role of Testing in DevOps
The Role of Testing in DevOpsThe Role of Testing in DevOps
The Role of Testing in DevOps
 
SE18_Lec 00_Course Outline
SE18_Lec 00_Course OutlineSE18_Lec 00_Course Outline
SE18_Lec 00_Course Outline
 
Software engineering introduction
Software engineering   introductionSoftware engineering   introduction
Software engineering introduction
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software Engineering
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Notes on teaching software testing
Notes on teaching software testingNotes on teaching software testing
Notes on teaching software testing
 
SDLC
SDLCSDLC
SDLC
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
Py data scikit-production
Py data scikit-productionPy data scikit-production
Py data scikit-production
 
CSC426 - Software Engineering Lecture Note Cont'd
CSC426   - Software Engineering Lecture Note Cont'dCSC426   - Software Engineering Lecture Note Cont'd
CSC426 - Software Engineering Lecture Note Cont'd
 

Similar to Effort Used to Create Domain-Specific Modeling Languages

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
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsultingtalkwiseone
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsultingtalkwiseone
 
SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemCompuware
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
itec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptitec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptinaamulh77
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Ori Bendet
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)Peter Presnell
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniqueskamal
 
Il product development - 20 01 2011
Il  product development - 20 01 2011Il  product development - 20 01 2011
Il product development - 20 01 2011nakham
 
Keynote at-icpc-2020
Keynote at-icpc-2020Keynote at-icpc-2020
Keynote at-icpc-2020Ralf Laemmel
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710Nikhil Todkar
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionFlorian Wilhelm
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALAlex Tarra
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptnRob Jahn
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sampleNorman K Ma
 

Similar to Effort Used to Create Domain-Specific Modeling Languages (20)

Industrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific ModelingIndustrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific Modeling
 
SE.pdf
SE.pdfSE.pdf
SE.pdf
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
SCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome ThemSCM Transformation Challenges and How to Overcome Them
SCM Transformation Challenges and How to Overcome Them
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
itec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.pptitec513 fall20172018 COCOMO model estimation.ppt
itec513 fall20172018 COCOMO model estimation.ppt
 
Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...Solving the Automation Puzzle - how to select the right automation framework ...
Solving the Automation Puzzle - how to select the right automation framework ...
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniques
 
Il product development - 20 01 2011
Il  product development - 20 01 2011Il  product development - 20 01 2011
Il product development - 20 01 2011
 
Keynote at-icpc-2020
Keynote at-icpc-2020Keynote at-icpc-2020
Keynote at-icpc-2020
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710
 
Bridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to ProductionBridging the Gap: from Data Science to Production
Bridging the Gap: from Data Science to Production
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sample
 

More from Juha-Pekka Tolvanen

How to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdfHow to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdfJuha-Pekka Tolvanen
 
Measuring Productivity from Model-Based Development
Measuring Productivity from Model-Based DevelopmentMeasuring Productivity from Model-Based Development
Measuring Productivity from Model-Based DevelopmentJuha-Pekka Tolvanen
 
How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...Juha-Pekka Tolvanen
 
Automating safety engineering with model based techniques
Automating safety engineering with model based techniquesAutomating safety engineering with model based techniques
Automating safety engineering with model based techniquesJuha-Pekka Tolvanen
 
Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+Juha-Pekka Tolvanen
 
Automotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL modelsAutomotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL modelsJuha-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
 

More from Juha-Pekka Tolvanen (11)

How to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdfHow to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdf
 
Measuring Productivity from Model-Based Development
Measuring Productivity from Model-Based DevelopmentMeasuring Productivity from Model-Based Development
Measuring Productivity from Model-Based Development
 
How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...
 
Automating safety engineering with model based techniques
Automating safety engineering with model based techniquesAutomating safety engineering with model based techniques
Automating safety engineering with model based techniques
 
Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+
 
Automotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL modelsAutomotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL models
 
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
 

Recently uploaded

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 

Recently uploaded (20)

ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 

Effort Used to Create Domain-Specific Modeling Languages

  • 1. 1 Juha-Pekka Tolvanen, Steven Kelly jpt@metacase.com Effort Used to Create Domain- Specific Modeling Languages
  • 2. 2 Agenda  Introduction and motivation  Research method – Conduct case studies – Review industry reports  Results  Reflection and other work done  Conclusions and discussion
  • 3. 3 Real world example: Fish farm  hardware: sensors, actuators, cabling  functionality: lights, feeding, monitoring, etc.  Persistent data  UI  Communication  Deployment and operations: install, maintain
  • 4. 4 DSM solution for developing fish farm automation systems
  • 5. 5 Industry experiences on productivity increase with DSM "5-fold productivity increase when compared to standard development methods" "The quality is clearly better, simply because the modeling language rules out errors" "makes development significantly faster and easier than the old manual coding practices"
  • 6. 6 Effort to create a DSM solution?  DSM brings significant improvements to: – Development speed – Product quality – Participation of subject matter experts – Code quality – Ease of introducing new personnel, etc.  But require an investment – How big this is? 0 10 20 30 40 50 60 70 80 90 100 0 1 2 3 4 5 6 Cost Repetition Current DSM {
  • 7. 7 Research question: How big is the effort to create a Domain-Specific Modeling language?
  • 8. 8 DSM solution consist of:  Metamodel  Constraints  Notation  Generators  Tooling and tool-chain  + Training material, guides, tutorials etc.
  • 9. 9 Two research methods applied: 1. Case study – Create complete modeling solutions for two domains – To collect data on the effort in detail – Implementation by authors 2. Analyze industry cases – Reports on creating DSM solutions by and for industry • Not done by authors – To get "real-world" view, having at least one generator • If several generators only those providing data per generator included  All cases done with MetaEdit+: No difference from tools
  • 10. 10 On case studies  Recorded data on the effort: – Timestamps from metamodel – Generator changes – Version history – Diary on the effort  Case selection: – Can be shared – Can be repeated by others – Target different domains, have different purpose  Resulting modeling solutions tested with reference examples
  • 11. 11 Case1: DSM solution for IoT device
  • 13. 13 Effort to create DSM for IoT*  Solution: – 74 elements in metamodel – 39 constraints – 54 notational symbols – 9 icons – 1 model checker (21 LOC) – 1 code generator (556 LOC)  Effort: – 3.8 man-days *Implementation available: www.metacase.com/download, ’IoT’ example project 0,0 1,0 2,0 Tooling Generators Notation Constraints Plain metamodel Days
  • 14. 14 Case2: Modeling support for Archimate
  • 15. 15 Effort to implement Archimate support* * Implementation of the ArchiMate is available from https://github.com/mccjpt/ArchiMate  Solution: – 125 elements in metamodel, incl. 24 abstract ones – 10 000+ constraints, 10760 alone for legal relationships – 89 notational symbols – 77 icons – 3 model checkers (42 LOC)  Effort: – 3.5 man-days 0 0,5 1 1,5 Tooling Generators Notation Constraints Plain metamodel Days
  • 16. 16 Cost of DSL creation: industry cases  Very few companies (and academic papers) report figures on the creation effort 0 5 10 15 Blood separators Military radio system High level synthesis, ESL Heating remote control Voice control Car infotainment Sport watches Touch screen controller Days
  • 17. 17 Results  Effort to create DSM solution is modest (in all cases) – 1-2 language engineers – 3-15 man-days, average 10 man-days in industry cases  Data indicates that – Generator development takes 40-60% – The size of the resulting language had a surprisingly small effect on the effort required • We have detailed data from three industry cases (under NDA): effort increases less than linearly with size
  • 18. 18 What influences to the effort?  Size of the domain?  Experience of language engineer(s)?  Tooling?  Tools seem to have the biggest influence to effort – Different languages, same tool: 1-5x differences • Among the 10 cases presented – Same language, different tools: 10-50x differences • El Kouhen et al. implementing BPMN in 5 different tools
  • 19. 19 Conclusions  We are not aware of many systematic studies comparing the development effort across several DSM solutions  Effort to create Domain-Specific Modeling support is modest with MetaEdit+ – 10 man-days in average in industry cases  Tools seem to have a big influence to the effort needed  Future research – Repeat the study with other languages and tools – Address also maintenance, and not only DSM solution but also models made
  • 20. 20 Thank you! Questions? Experiences? Counter arguments? Future research topics? jpt@metacase.com Juha-Pekka Tolvanen