SlideShare ist ein Scribd-Unternehmen logo
MODULAR LANGUAGE
PRODUCT LINES
A GRAPH TRANSFORMATION APPROACH
MODELS’2022, Montreal
Juan de Lara1, Esther Guerra1, Paolo Bottoni2
1Universidad Autónoma de Madrid (Spain)
2Sapienza University of Rome (Italy)
FROM DSLs TO
DSL FAMILIES
Modelling languages
• Essential for engineering disciplines
• Model-driven Engineering
• Domain-specific Languages (DSLs)
Does ONE language fit ALL?
• Different users: education, low-code development
Example: Class diagrams with different levels of sophistication
• Different expressivity: modelling purpose, analyses
Example: Petri nets with inhibitor, read arcs, time, colours
• Different levels of precision: to support different project phases
Example: From sketch-like diagrams to fully precise models
Language families!
2
EXAMPLE
A DSL FAMILY FOR NETWORKING
3
Simple link with node
failures and acks
4
Simple link with node
failures and acks
Rich links with
communication failures
EXAMPLE
A DSL FAMILY FOR NETWORKING
5
Simple link with node
failures and acks
Rich links with
communication failures
Rich links with
communication failures
and time
EXAMPLE
A DSL FAMILY FOR NETWORKING
HOW TO DEFINE A
LANGUAGE FAMILY?
Define each DSL separately (clone & own)
• Meta-models and rules share commonalities
• Adding a new feature (e.g., ad-hoc networks) doubles the
family size
Define just one “super-language” with all features
• Language difficult to use for users
• Unnecessary concepts
• What about alternative elements (rich vs. simple links)?
6
OUR GOAL
A technique to define and manage DSL families that is
• Succinct
(much) less effort than specifying each language variant in isolation
• Extensible
Adding a new variant should be easy, leave existing variants unchanged
Incremental language construction
• Reusable
Specifications of variants as reusable as possible to minimise effort and
avoid duplications
• Analysable
Ensure the behaviour of its variants is compatible with the base behaviour
of the language
7
THE APPROACH
8
...
extension roles
optional
mandatory
alternative
or
M
(dependency)
MM
rule_i
rule_i
rulei
M1
(extension)
MM1
rule_i
rule_i
rulej
Mn
(extension)
MMn
rule_i
rule_i
rulek
role of Mn in dependency
inclusion of MMn in MM
{C1→C3,...}
{C1→C2,...}
rule extension
1
2
3
1
2
3
Language product line
Language modules
• Meta-model
• Transformation rules
Module dependencies
Module extensions
• Extension roles
• As in feature models
LANGUAGE PRODUCT LINE
EXAMPLE
9
Meta-model elements are identified by name
10
Meta-model elements are identified by name
top module
LANGUAGE PRODUCT LINE
EXAMPLE
11
Meta-model elements are identified by name
top module
Cross-tree
constraints
LANGUAGE PRODUCT LINE
EXAMPLE
USING THE PRODUCT LINE:
CONFIGURATIONS
12
A set of modules such that
• All top modules are selected
• If a module is selected, then the configuration needs selecting:
1. all mandatory extension modules
2. exactly one alternative extension modules
3. at least one OR extension module
4. its dependency
• The cross-tree constraints evaluate to true
CONFIGURATIONS
EXAMPLE
13
Some configurations:
CONFIGURATIONS
EXAMPLE
14
Some configurations:
• {Networking, SimpleLink}
CONFIGURATIONS
EXAMPLE
15
Some configurations:
• {Networking, SimpleLink}
• {Networking, SimpleLink, NodeFailures, Ack}
CONFIGURATIONS
EXAMPLE
16
Some configurations:
• {Networking, SimpleLink}
• {Networking, SimpleLink, NodeFailures, Ack}
• {Networking, RichLink, CommFailures}
CONFIGURATIONS
EXAMPLE
17
Some configurations:
• {Networking, SimpleLink}
• {Networking, SimpleLink, NodeFailures, Ack}
• {Networking, RichLink, CommFailures}
• {Networking, RichLink, CommFailures, TimeStamped, Speed}
DERIVATION:
GETTING THE META-MODEL
Given a configuration
• Merge the meta-model fragments of all modules (co-limit)
18
1= {Networking, SimpleLink,
NodeFailures, Ack}
MM1
BEHAVIOUR
Modules have sets of
• Standard rules
• -rules: add elements to standard or -rules
• NAC-rules: add negative application conditions to standard rules
19
Standard rule -rule NAC-rule
BEHAVIOUR
Modules have sets of
• Standard rules
• -rules: add elements to standard or -rules
• NAC-rules: add negative application conditions to standard rules
20
Standard rule -rule NAC-rule
{n1→n1, n2→n2}
{n→n1}
{n→n2}
BEHAVIOURAL DERIVATION
rule/NAC-rule application
Behavioural derivation:
• apply - and NAC-rules of selected modules
21
CONSISTENT
EXTENSIONS
Product lines made of
extensions preserve semantics
• For every application of the
extended rule, there is a
derivation of the original rule
22
Modular extensions
• - and NAC-rules only add
elements typed by the
module’s meta-model (and not
by the dependency’s meta-
model)
(more details in the paper)
TOOL SUPPORT
23
https://capone-pl.github.io/
Eclipse plugin, FeatureIDE, Henshin
EXPERIMENTS
24
Effort reduction w.r.t. explicit definition of each language variant
• Reduces specification size by 86% – 96.6%
• Reduces rule size 91.7% – 97.7%
Effort of adding a new feature?
• Meta-model of sizes 3 – 4 (vs. meta-model size 12 – 22 +
replicating the existing meta-models)
• Between 1 and 2 rules of sizes 3 – 6 (vs. 3 to 12 rules with sizes
between 7 and 14)
(results for rules omitted)
CONCLUSIONS AND
FUTURE WORK
Modular approach to define language families
• Considers abstract syntax and semantics
Analysis, tool support, experiments
Future Work
• Fine-granular analysis of (in-)consistency
• Effective testing techniques
• Consider richer meta-model notions (e.g., OCL)
• Modules with several dependencies
• Consider concrete syntax
25
https://capone-pl.github.io/
THANKS!
Juan.deLara@uam.es
@miso_uam

Weitere ähnliche Inhalte

Ähnlich wie Capone.pdf

How to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling EnvironmentHow to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling EnvironmentTim Geisler
 
Agile MDD
Agile MDDAgile MDD
Agile MDDfntnhd
 
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case eProsima
 
Testing Model Transformations
Testing Model TransformationsTesting Model Transformations
Testing Model Transformationsmiso_uam
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
03 the c language
03 the c language03 the c language
03 the c languagearafatmirza
 
Lesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfLesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfcifoxo
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling WorldsIstvan Rath
 
keynote modelsward 2017
keynote modelsward 2017keynote modelsward 2017
keynote modelsward 2017miso_uam
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigmsIvano Malavolta
 
Compeition-Level Code Generation with AlphaCode.pptx
Compeition-Level Code Generation with AlphaCode.pptxCompeition-Level Code Generation with AlphaCode.pptx
Compeition-Level Code Generation with AlphaCode.pptxSan Kim
 
ModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific LanguageModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific LanguageAtzmon Hen-Tov
 
Effective Detection of Model Changes
Effective Detection of Model ChangesEffective Detection of Model Changes
Effective Detection of Model ChangesDavid Méndez-Acuña
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentAndrew Coleman
 
The Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelFThe Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelFMarkus Voelter
 
Topcased
TopcasedTopcased
TopcasedInria
 
Roman Kyslyi: Великі мовні моделі: огляд, виклики та рішення
Roman Kyslyi: Великі мовні моделі: огляд, виклики та рішенняRoman Kyslyi: Великі мовні моделі: огляд, виклики та рішення
Roman Kyslyi: Великі мовні моделі: огляд, виклики та рішенняLviv Startup Club
 

Ähnlich wie Capone.pdf (20)

How to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling EnvironmentHow to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling Environment
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
DSL-maps
DSL-mapsDSL-maps
DSL-maps
 
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
ROS 2 AI Integration Working Group 1: ALMA, SustainML & ROS 2 use case
 
Testing Model Transformations
Testing Model TransformationsTesting Model Transformations
Testing Model Transformations
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
03 the c language
03 the c language03 the c language
03 the c language
 
Lesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdfLesson5Introduction2QVT.pdf
Lesson5Introduction2QVT.pdf
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
keynote modelsward 2017
keynote modelsward 2017keynote modelsward 2017
keynote modelsward 2017
 
[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms[2015/2016] Modern development paradigms
[2015/2016] Modern development paradigms
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
Compeition-Level Code Generation with AlphaCode.pptx
Compeition-Level Code Generation with AlphaCode.pptxCompeition-Level Code Generation with AlphaCode.pptx
Compeition-Level Code Generation with AlphaCode.pptx
 
ModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific LanguageModelTalk - When Everything is a Domain Specific Language
ModelTalk - When Everything is a Domain Specific Language
 
Effective Detection of Model Changes
Effective Detection of Model ChangesEffective Detection of Model Changes
Effective Detection of Model Changes
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application Development
 
The Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelFThe Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelF
 
Topcased
TopcasedTopcased
Topcased
 
Roman Kyslyi: Великі мовні моделі: огляд, виклики та рішення
Roman Kyslyi: Великі мовні моделі: огляд, виклики та рішенняRoman Kyslyi: Великі мовні моделі: огляд, виклики та рішення
Roman Kyslyi: Великі мовні моделі: огляд, виклики та рішення
 
Ec2013 tutorial-mb variability-final
Ec2013 tutorial-mb variability-finalEc2013 tutorial-mb variability-final
Ec2013 tutorial-mb variability-final
 

Mehr von miso_uam

Model-driven engineering for AR
Model-driven engineering for ARModel-driven engineering for AR
Model-driven engineering for ARmiso_uam
 
Scientific writing
Scientific writingScientific writing
Scientific writingmiso_uam
 
Facets_UCM
Facets_UCMFacets_UCM
Facets_UCMmiso_uam
 
Máster en Métodos Formales en Ingeniería Informática
Máster en Métodos Formales en Ingeniería InformáticaMáster en Métodos Formales en Ingeniería Informática
Máster en Métodos Formales en Ingeniería Informáticamiso_uam
 
Analysing-MMPLs
Analysing-MMPLsAnalysing-MMPLs
Analysing-MMPLsmiso_uam
 
Miso-McGill
Miso-McGillMiso-McGill
Miso-McGillmiso_uam
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reusemiso_uam
 
MDE-experiments
MDE-experimentsMDE-experiments
MDE-experimentsmiso_uam
 
MODELSWARD 2017 Panel
MODELSWARD 2017 PanelMODELSWARD 2017 Panel
MODELSWARD 2017 Panelmiso_uam
 

Mehr von miso_uam (20)

Model-driven engineering for AR
Model-driven engineering for ARModel-driven engineering for AR
Model-driven engineering for AR
 
Multi21
Multi21Multi21
Multi21
 
MLMPLs
MLMPLsMLMPLs
MLMPLs
 
Scientific writing
Scientific writingScientific writing
Scientific writing
 
Facets_UCM
Facets_UCMFacets_UCM
Facets_UCM
 
SLE_MIP08
SLE_MIP08SLE_MIP08
SLE_MIP08
 
mtATL
mtATLmtATL
mtATL
 
Máster en Métodos Formales en Ingeniería Informática
Máster en Métodos Formales en Ingeniería InformáticaMáster en Métodos Formales en Ingeniería Informática
Máster en Métodos Formales en Ingeniería Informática
 
Analysing-MMPLs
Analysing-MMPLsAnalysing-MMPLs
Analysing-MMPLs
 
Facets
FacetsFacets
Facets
 
kite
kitekite
kite
 
MTPLs
MTPLsMTPLs
MTPLs
 
Miso-McGill
Miso-McGillMiso-McGill
Miso-McGill
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reuse
 
Miso
MisoMiso
Miso
 
DSLcomet
DSLcometDSLcomet
DSLcomet
 
SICOMORO
SICOMOROSICOMORO
SICOMORO
 
ReusingMT
ReusingMTReusingMT
ReusingMT
 
MDE-experiments
MDE-experimentsMDE-experiments
MDE-experiments
 
MODELSWARD 2017 Panel
MODELSWARD 2017 PanelMODELSWARD 2017 Panel
MODELSWARD 2017 Panel
 

Kürzlich hochgeladen

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
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
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.
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024Shane Coughlan
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfOrtus Solutions, Corp
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion Clinic
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfMeon Technology
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEJelle | Nordend
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownloadvrstrong314
 
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
 
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
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...Alluxio, Inc.
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 
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
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
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
 

Kürzlich hochgeladen (20)

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
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
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
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
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
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
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
 
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
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
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
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
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
 

Capone.pdf

  • 1. MODULAR LANGUAGE PRODUCT LINES A GRAPH TRANSFORMATION APPROACH MODELS’2022, Montreal Juan de Lara1, Esther Guerra1, Paolo Bottoni2 1Universidad Autónoma de Madrid (Spain) 2Sapienza University of Rome (Italy)
  • 2. FROM DSLs TO DSL FAMILIES Modelling languages • Essential for engineering disciplines • Model-driven Engineering • Domain-specific Languages (DSLs) Does ONE language fit ALL? • Different users: education, low-code development Example: Class diagrams with different levels of sophistication • Different expressivity: modelling purpose, analyses Example: Petri nets with inhibitor, read arcs, time, colours • Different levels of precision: to support different project phases Example: From sketch-like diagrams to fully precise models Language families! 2
  • 3. EXAMPLE A DSL FAMILY FOR NETWORKING 3 Simple link with node failures and acks
  • 4. 4 Simple link with node failures and acks Rich links with communication failures EXAMPLE A DSL FAMILY FOR NETWORKING
  • 5. 5 Simple link with node failures and acks Rich links with communication failures Rich links with communication failures and time EXAMPLE A DSL FAMILY FOR NETWORKING
  • 6. HOW TO DEFINE A LANGUAGE FAMILY? Define each DSL separately (clone & own) • Meta-models and rules share commonalities • Adding a new feature (e.g., ad-hoc networks) doubles the family size Define just one “super-language” with all features • Language difficult to use for users • Unnecessary concepts • What about alternative elements (rich vs. simple links)? 6
  • 7. OUR GOAL A technique to define and manage DSL families that is • Succinct (much) less effort than specifying each language variant in isolation • Extensible Adding a new variant should be easy, leave existing variants unchanged Incremental language construction • Reusable Specifications of variants as reusable as possible to minimise effort and avoid duplications • Analysable Ensure the behaviour of its variants is compatible with the base behaviour of the language 7
  • 8. THE APPROACH 8 ... extension roles optional mandatory alternative or M (dependency) MM rule_i rule_i rulei M1 (extension) MM1 rule_i rule_i rulej Mn (extension) MMn rule_i rule_i rulek role of Mn in dependency inclusion of MMn in MM {C1→C3,...} {C1→C2,...} rule extension 1 2 3 1 2 3 Language product line Language modules • Meta-model • Transformation rules Module dependencies Module extensions • Extension roles • As in feature models
  • 9. LANGUAGE PRODUCT LINE EXAMPLE 9 Meta-model elements are identified by name
  • 10. 10 Meta-model elements are identified by name top module LANGUAGE PRODUCT LINE EXAMPLE
  • 11. 11 Meta-model elements are identified by name top module Cross-tree constraints LANGUAGE PRODUCT LINE EXAMPLE
  • 12. USING THE PRODUCT LINE: CONFIGURATIONS 12 A set of modules such that • All top modules are selected • If a module is selected, then the configuration needs selecting: 1. all mandatory extension modules 2. exactly one alternative extension modules 3. at least one OR extension module 4. its dependency • The cross-tree constraints evaluate to true
  • 15. CONFIGURATIONS EXAMPLE 15 Some configurations: • {Networking, SimpleLink} • {Networking, SimpleLink, NodeFailures, Ack}
  • 16. CONFIGURATIONS EXAMPLE 16 Some configurations: • {Networking, SimpleLink} • {Networking, SimpleLink, NodeFailures, Ack} • {Networking, RichLink, CommFailures}
  • 17. CONFIGURATIONS EXAMPLE 17 Some configurations: • {Networking, SimpleLink} • {Networking, SimpleLink, NodeFailures, Ack} • {Networking, RichLink, CommFailures} • {Networking, RichLink, CommFailures, TimeStamped, Speed}
  • 18. DERIVATION: GETTING THE META-MODEL Given a configuration • Merge the meta-model fragments of all modules (co-limit) 18 1= {Networking, SimpleLink, NodeFailures, Ack} MM1
  • 19. BEHAVIOUR Modules have sets of • Standard rules • -rules: add elements to standard or -rules • NAC-rules: add negative application conditions to standard rules 19 Standard rule -rule NAC-rule
  • 20. BEHAVIOUR Modules have sets of • Standard rules • -rules: add elements to standard or -rules • NAC-rules: add negative application conditions to standard rules 20 Standard rule -rule NAC-rule {n1→n1, n2→n2} {n→n1} {n→n2}
  • 21. BEHAVIOURAL DERIVATION rule/NAC-rule application Behavioural derivation: • apply - and NAC-rules of selected modules 21
  • 22. CONSISTENT EXTENSIONS Product lines made of extensions preserve semantics • For every application of the extended rule, there is a derivation of the original rule 22 Modular extensions • - and NAC-rules only add elements typed by the module’s meta-model (and not by the dependency’s meta- model) (more details in the paper)
  • 24. EXPERIMENTS 24 Effort reduction w.r.t. explicit definition of each language variant • Reduces specification size by 86% – 96.6% • Reduces rule size 91.7% – 97.7% Effort of adding a new feature? • Meta-model of sizes 3 – 4 (vs. meta-model size 12 – 22 + replicating the existing meta-models) • Between 1 and 2 rules of sizes 3 – 6 (vs. 3 to 12 rules with sizes between 7 and 14) (results for rules omitted)
  • 25. CONCLUSIONS AND FUTURE WORK Modular approach to define language families • Considers abstract syntax and semantics Analysis, tool support, experiments Future Work • Fine-granular analysis of (in-)consistency • Effective testing techniques • Consider richer meta-model notions (e.g., OCL) • Modules with several dependencies • Consider concrete syntax 25