SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
© 2023 MetaCase 1
What Goes Wrong with
Language Definitions
and
How to Improve the Situation
Juha-Pekka Tolvanen
jpt@metacase.com
© 2023 MetaCase 2
Language definition
Modeling
abstract syntax
concrete syntax semantics
© 2023 MetaCase 3
About me: Juha-Pekka Tolvanen
◼ Works for MetaCase
– Provider of modeling and code generation tool MetaEdit+
◼ Acts as a consultant for creating DSLs
– 100+ DSL solutions
◼ Co-author of a book on
Domain-Specific Modeling, IEEE-Wiley
◼ PhD in computer science,
adjunct professor
◼ Enjoys sailing and skiing
© 2023 MetaCase 4
What goes wrong?
1. Language definitions fragmented, inconsistent, partial
2. Metamodel express something other than a language
3. Exchange does not work completely
4. Certificates sold, no actual learning
5. Language definitions are not tested
6. Human aspects are not recognized
7. Tools leave room for improvements
8. …
Due to NDA, public examples to follow…
© 2023 MetaCase 5
Language definition…
◼ …fragmented into different formats, hard to define
– UML standard(s) contain hundreds of errors between
metamodel and related OCL constraints [1, 2]
– Situation not improved over the years/versions
◼ …internally inconsistent
– EAST-ADL 2.1 error model hierarchy expects that each
level has behavior – but it’s only mandatory for leaves
◼ …partial
– ArchiMate 3.0 followed with error corrections like 3.0.1
1. Bauerdick et al., Detecting OCL Traps in the UML 2.0 Superstructure: Experience Report. Procs of Unified
Modeling Language - Modeling Languages and Applications, Springer, 2004
2. Wilke, C., Demuth, B., UML is still inconsistent! How to improve OCL Constraints in the UML 2.3
Superstructure, Procs of OCL and Textual Modelling workshop, 2011
© 2023 MetaCase 6
Metamodels express something
other than a language
Examples:
◼ AUTOSAR/EAST-ADL/etc: modeler is expected to follow
a naming policy for the sake of XML exchange
– Start with alphabet, certain length, no special characters
◼ Feature model owns subfeatures
➢ Deleting a feature removes all subfeatures
◼ Language forces a mandatory value for an element
because it is marked mandatory in XSD schema
◼ Usability issues, like when selecting among alternatives:
– what is default value?
– in which order they are provided, etc.
© 2023 MetaCase 7
Exchange does not work completely
◼ XMI
– VP of OMG said it would work by the end of 2005…
◼ ArchiMate exchange format 2023:
– Allows sharing illegal models
– ArchiMate supports language extensions, yet the exchange
format does not cover them
◼ Note: Exchange between tools is important, but not
really an issue if tooling is not closed
– Today metamodel-based tools (also known as Language
Workbenches) by nature are never closed: you can always
export your data to any format!
© 2023 MetaCase 8
Certificates sold but their coverage…
◼ Certificates for modelers do not cover
(fully) the language
◼ Tool certificates do not check details
– E.g. ArchiMate certification by Open
Group expects that relationship types are
available in the tool but not that they
are applied legally
© 2023 MetaCase 9
Language definitions are not tested
e.g. ArchiMate spec states
◼ Legend:
?
© 2023 MetaCase 10
Still repeated today*
◼ SysML v2 2023
* https://www.opencaesar.io/blog/2023/08/27/When-Literal-Boolean-Is-
Unsatisfiable.html
© 2023 MetaCase 11
Human aspects are not recognized
(some work, but much to do)
◼ Cognitive dimensions?
◼ Physics of notation guidelines by Moody?
◼ Modularity, 7+2 rules etc.
◼ Models show entered data only, like pen & paper style
– Errors and warnings?
– Guidance?
– Simulation?
– Debugging?
– Views/skins for different
usage/stakeholders?
© 2023 MetaCase 12
Tools leave room for improvements
◼ Tools are limited, not easily customizable
– Tool dictates, not its user
◼ Modeling functionality is added to a non-modeling tool
– IDE tool with modeling
– Usability based on text editing
◼ Collaboration support missing or limited
◼ Diff and merge based on text
◼ Diversity is not supported
– One prefers local, other virtual and third browser-based
© 2023 MetaCase 13
Result: All suffer
◼ Users suffer when trying to learn and
apply languages
◼ Tool developers suffer when trying to
implement modeling support, or tools
that use the models
◼ Language developers suffer when
defining languages
© 2023 MetaCase 14
What we can do, how to improve?
1. Treat language definition as a whole
– do not separate grammar, rules, symbols, transformations
2. Use proper metalanguages
≠ MOF (made originally to define CORBA data structures)
꞊ Language that is built to define languages (not just the
basic minimum but manuals, guidelines, transformations)
3. Get users involved: collaborative language definition
– Create, test and improve together
© 2023 MetaCase 15
Experts define
languages & generators
Team models with domain
concepts & generate code
improve
co-evolve
continuously
© 2023 MetaCase 16
What can we do, how to improve?
1. Treat language definition as a whole
– do not separate grammar, rules, symbols, transformations
2. Use proper metalanguages
≠ MOF (made to define CORBA data structures)
꞊ Language that is built to define languages (not just the
basic minimum but manuals, guidelines, transformations)
3. Get users involved: collaborative language definition
– Create, test and improve together
4. Apply proper tools: many language workbenches exist
– If difficult or time-consuming, stop using that tool
– e.g. tools that require coding do not believe in modeling
and abstractions, skip them
© 2023 MetaCase 17
Better results, satisfied users
◼ E.g study from language users
– Usability
– Easy of learning
– Code quality
– Error prevention
– Productivity
◼ Grading from 6 developers:
– results (scale 1-5, 5 best):
© 2023 MetaCase 18
What do companies say?
"5-fold productivity increase
when compared to standard
development methods"
"The quality is clearly better,
simply because the modeling
language rules out errors"
"750% increase in productivity,
and greatly improved quality in
the code and development"
© 2023 MetaCase 19
Thank you
Questions?
Comments?
Counter-arguments?
Experiences?
Contact: jpt@metacase.com

Mais conteúdo relacionado

Semelhante a What Goes Wrong with Language Definitions and How to Improve the Situation

STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages ijseajournal
 
GTU PHP Project Training Guidelines
GTU PHP Project Training GuidelinesGTU PHP Project Training Guidelines
GTU PHP Project Training GuidelinesTOPS Technologies
 
Slides from the NASIG 2018 Preconference
Slides from the NASIG 2018 PreconferenceSlides from the NASIG 2018 Preconference
Slides from the NASIG 2018 PreconferenceTerry Reese
 
programacion orientado a abjetos poo
programacion orientado a abjetos pooprogramacion orientado a abjetos poo
programacion orientado a abjetos pooRasec De La Cruz
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word documentSIVAJISADHANA
 
Intake 38 data access 4
Intake 38 data access 4Intake 38 data access 4
Intake 38 data access 4Mahmoud Ouf
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportKhushboo Wadhwani
 
Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014Marco Parenzan
 
Doppl Development Introduction
Doppl Development IntroductionDoppl Development Introduction
Doppl Development IntroductionDiego Perini
 
E-Comura Documentation
E-Comura DocumentationE-Comura Documentation
E-Comura Documentationanuj_rakheja
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 
IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...
IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...
IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...IEEEMEMTECHSTUDENTPROJECTS
 

Semelhante a What Goes Wrong with Language Definitions and How to Improve the Situation (20)

I18n
I18nI18n
I18n
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages
 
GTU PHP Project Training Guidelines
GTU PHP Project Training GuidelinesGTU PHP Project Training Guidelines
GTU PHP Project Training Guidelines
 
Slides from the NASIG 2018 Preconference
Slides from the NASIG 2018 PreconferenceSlides from the NASIG 2018 Preconference
Slides from the NASIG 2018 Preconference
 
SeniorProject_Jurgun
SeniorProject_JurgunSeniorProject_Jurgun
SeniorProject_Jurgun
 
Intake 37 ef1
Intake 37 ef1Intake 37 ef1
Intake 37 ef1
 
programacion orientado a abjetos poo
programacion orientado a abjetos pooprogramacion orientado a abjetos poo
programacion orientado a abjetos poo
 
Dtacs
DtacsDtacs
Dtacs
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
Intake 38 data access 4
Intake 38 data access 4Intake 38 data access 4
Intake 38 data access 4
 
Cs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ report
 
Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014
 
Impedance Mismatch 2.0
Impedance Mismatch 2.0Impedance Mismatch 2.0
Impedance Mismatch 2.0
 
Doppl Development Introduction
Doppl Development IntroductionDoppl Development Introduction
Doppl Development Introduction
 
E-Comura Documentation
E-Comura DocumentationE-Comura Documentation
E-Comura Documentation
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...
IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...
IEEE 2014 DOTNET DATA MINING PROJECTS A novel model for mining association ru...
 

Mais de 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
 
Effort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling LanguagesEffort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling LanguagesJuha-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
 
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
 
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
 

Mais de Juha-Pekka Tolvanen (10)

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 ...
 
Effort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling LanguagesEffort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling Languages
 
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
 
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
 
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
 

Último

Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfVictor Lopez
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityamy56318795
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfQ-Advise
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionWave PLM
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfDeskTrack
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Andrea Goulet
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesNeo4j
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)Max Lee
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAlluxio, Inc.
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionMohammed Fazuluddin
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfTestgrid.io
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfMehmet Akar
 

Último (20)

Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdf
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 

What Goes Wrong with Language Definitions and How to Improve the Situation

  • 1. © 2023 MetaCase 1 What Goes Wrong with Language Definitions and How to Improve the Situation Juha-Pekka Tolvanen jpt@metacase.com
  • 2. © 2023 MetaCase 2 Language definition Modeling abstract syntax concrete syntax semantics
  • 3. © 2023 MetaCase 3 About me: Juha-Pekka Tolvanen ◼ Works for MetaCase – Provider of modeling and code generation tool MetaEdit+ ◼ Acts as a consultant for creating DSLs – 100+ DSL solutions ◼ Co-author of a book on Domain-Specific Modeling, IEEE-Wiley ◼ PhD in computer science, adjunct professor ◼ Enjoys sailing and skiing
  • 4. © 2023 MetaCase 4 What goes wrong? 1. Language definitions fragmented, inconsistent, partial 2. Metamodel express something other than a language 3. Exchange does not work completely 4. Certificates sold, no actual learning 5. Language definitions are not tested 6. Human aspects are not recognized 7. Tools leave room for improvements 8. … Due to NDA, public examples to follow…
  • 5. © 2023 MetaCase 5 Language definition… ◼ …fragmented into different formats, hard to define – UML standard(s) contain hundreds of errors between metamodel and related OCL constraints [1, 2] – Situation not improved over the years/versions ◼ …internally inconsistent – EAST-ADL 2.1 error model hierarchy expects that each level has behavior – but it’s only mandatory for leaves ◼ …partial – ArchiMate 3.0 followed with error corrections like 3.0.1 1. Bauerdick et al., Detecting OCL Traps in the UML 2.0 Superstructure: Experience Report. Procs of Unified Modeling Language - Modeling Languages and Applications, Springer, 2004 2. Wilke, C., Demuth, B., UML is still inconsistent! How to improve OCL Constraints in the UML 2.3 Superstructure, Procs of OCL and Textual Modelling workshop, 2011
  • 6. © 2023 MetaCase 6 Metamodels express something other than a language Examples: ◼ AUTOSAR/EAST-ADL/etc: modeler is expected to follow a naming policy for the sake of XML exchange – Start with alphabet, certain length, no special characters ◼ Feature model owns subfeatures ➢ Deleting a feature removes all subfeatures ◼ Language forces a mandatory value for an element because it is marked mandatory in XSD schema ◼ Usability issues, like when selecting among alternatives: – what is default value? – in which order they are provided, etc.
  • 7. © 2023 MetaCase 7 Exchange does not work completely ◼ XMI – VP of OMG said it would work by the end of 2005… ◼ ArchiMate exchange format 2023: – Allows sharing illegal models – ArchiMate supports language extensions, yet the exchange format does not cover them ◼ Note: Exchange between tools is important, but not really an issue if tooling is not closed – Today metamodel-based tools (also known as Language Workbenches) by nature are never closed: you can always export your data to any format!
  • 8. © 2023 MetaCase 8 Certificates sold but their coverage… ◼ Certificates for modelers do not cover (fully) the language ◼ Tool certificates do not check details – E.g. ArchiMate certification by Open Group expects that relationship types are available in the tool but not that they are applied legally
  • 9. © 2023 MetaCase 9 Language definitions are not tested e.g. ArchiMate spec states ◼ Legend: ?
  • 10. © 2023 MetaCase 10 Still repeated today* ◼ SysML v2 2023 * https://www.opencaesar.io/blog/2023/08/27/When-Literal-Boolean-Is- Unsatisfiable.html
  • 11. © 2023 MetaCase 11 Human aspects are not recognized (some work, but much to do) ◼ Cognitive dimensions? ◼ Physics of notation guidelines by Moody? ◼ Modularity, 7+2 rules etc. ◼ Models show entered data only, like pen & paper style – Errors and warnings? – Guidance? – Simulation? – Debugging? – Views/skins for different usage/stakeholders?
  • 12. © 2023 MetaCase 12 Tools leave room for improvements ◼ Tools are limited, not easily customizable – Tool dictates, not its user ◼ Modeling functionality is added to a non-modeling tool – IDE tool with modeling – Usability based on text editing ◼ Collaboration support missing or limited ◼ Diff and merge based on text ◼ Diversity is not supported – One prefers local, other virtual and third browser-based
  • 13. © 2023 MetaCase 13 Result: All suffer ◼ Users suffer when trying to learn and apply languages ◼ Tool developers suffer when trying to implement modeling support, or tools that use the models ◼ Language developers suffer when defining languages
  • 14. © 2023 MetaCase 14 What we can do, how to improve? 1. Treat language definition as a whole – do not separate grammar, rules, symbols, transformations 2. Use proper metalanguages ≠ MOF (made originally to define CORBA data structures) ꞊ Language that is built to define languages (not just the basic minimum but manuals, guidelines, transformations) 3. Get users involved: collaborative language definition – Create, test and improve together
  • 15. © 2023 MetaCase 15 Experts define languages & generators Team models with domain concepts & generate code improve co-evolve continuously
  • 16. © 2023 MetaCase 16 What can we do, how to improve? 1. Treat language definition as a whole – do not separate grammar, rules, symbols, transformations 2. Use proper metalanguages ≠ MOF (made to define CORBA data structures) ꞊ Language that is built to define languages (not just the basic minimum but manuals, guidelines, transformations) 3. Get users involved: collaborative language definition – Create, test and improve together 4. Apply proper tools: many language workbenches exist – If difficult or time-consuming, stop using that tool – e.g. tools that require coding do not believe in modeling and abstractions, skip them
  • 17. © 2023 MetaCase 17 Better results, satisfied users ◼ E.g study from language users – Usability – Easy of learning – Code quality – Error prevention – Productivity ◼ Grading from 6 developers: – results (scale 1-5, 5 best):
  • 18. © 2023 MetaCase 18 What do companies say? "5-fold productivity increase when compared to standard development methods" "The quality is clearly better, simply because the modeling language rules out errors" "750% increase in productivity, and greatly improved quality in the code and development"
  • 19. © 2023 MetaCase 19 Thank you Questions? Comments? Counter-arguments? Experiences? Contact: jpt@metacase.com