SlideShare a Scribd company logo
CONSTRUCTING DOMAIN
SPECIFIC MODELLING
LANGUAGES FOR MODEL
DRIVEN ENGINEERING
Esther Guerra, Juan de Lara
modelling&software engineering
research grouphttp://www.miso.es
Model-Driven Engineering (MDE)
• Introduction
• Current Challenges in Defining DSMLs
Top-down approach
Bottom-up approach
Conclusions and open lines
AGENDA
2
MODEL DRIVEN
ENGINEERING
Increase the level of abstraction in software
development
Models are actively used to
• Describe the problem…
• Simulate/verify/test…
• Generate code for the final application
Move from the solution space (code-centric) to the
problem space
• Higher levels of productivity and quality
• Less accidental details
3
MODEL DRIVEN
ENGINEERING
For specific domains
• Avoid coding the same
solutions over and over
• Families of applications
• Domain-Specific Modelling
Languages
Code
Generator
• Modelling, validation and automatic
generation of telephony services
4
MODEL DRIVEN
ENGINEERING
For specific domains:
• Avoid coding the same
solutions over and over
• Families of applications
• Domain-Specific Modelling
Languages
• Code generation from State-Machines
for Railway Signaling Systems
5
Code
generator
MetaEdit+
DOMAIN SPECIFIC
MODELLING LANGUAGES
Describe the structure of the domain
• Relevant primitives and abstractions
• Relations, features
• Explicit expert knowledge
6
DOMAIN SPECIFIC
MODELLING LANGUAGES
DSMLs need not be graphical…
xText
7
MODELS AND
META-MODELS
The abstract syntax of DSMLs is
defined through a meta-model
• Classes
• Attributes
• Relations
8
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
MODELS AND
META-MODELS
The abstract syntax of DSMLs is
defined through a meta-model
• Classes
• Attributes
• Relations
9
«conforms to»
c1:Conveyor
g:Generator
a:Assembler
c2:Conveyor
c3:Conveyor t:Terminator
p2: Partp2: Partouts
outs
inps
inps
outs inps
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
OCL CONSTRAINTS
10
Object Constraint Language
Well-formedness rules, which
every model should satisfy
Based on First-Order Logic
g:Generator
«conforms to»
c:Conveyor
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
Factory meta-model
Machine
Part
Conveyor
Generator Assembler
inps
outs
*
*
* parts
Terminator
1..*
1..*
context Generator inv:
self.inps->isEmpty() and self.outs->size()>0
context Generator inv:
self.inps->isEmpty() and self.outs->size()>0
context Terminator inv:
self.outs->isEmpty() and self.inps->size()>0
context Assembler inv:
self.inps->size()>0 and self.outs.size()>0
…
inps
MODELS AND
META-MODELS
Models are represented using
concrete syntax
• Visual
• Textual
No need for a 1-1 correspondence
between abstract and concrete
syntax elements
11
asse
MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
in-place
transformations
12
…
MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
Source
Target
13
model-to-model
transformations
MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
14
MMsrc MMtar
Msrc Mtar
Transformation
definition
from to
«conforms to» «conforms to»
Transformation
execution
Transformation
developer
Final user
model-to-model
transformations
MODEL
TRANSFORMATIONS
Models need to be manipulated for
• Simulation
• Optimization/refactoring
• Generating another model
• Generating code
15
Template languages
query and
model navigation
Some DSML
creation
challenges
16
DSML CONSTRUCTION
PROCESS
17
Meta-model
design
Modelling
environment
Automatic generation
House Concrete syntax
design
DSML design
DSML
designers
DSML
users
( and creation
of model
transformations )
MOTIVATION
18
Many DSML construction environments exist nowadays
But:
• Do not focus on scalable DSMLs
• The definition of every DSML has to start from scratch
• Difficult, technical tasks (hampers involvement of domain experts)
• No systematic process for DSML construction
• Do not cover the whole lifecycle of DSML development
 Xtext
 EMFText
 Spoofax
 MPS
 MetaEdit+
 Sirius
 GMF
 Eugenia
Graphical Textual
OUR APPROACHES
Top-down
• Meta-model first
• Reusability by means of patterns
• Pattern to specify model
fragmentation strategies
19
1
2 Patterns
OUR APPROACHES
Top-down
• Meta-model first
• Reusability by means of patterns
• Pattern to specify model
fragmentation strategies
Bottom-up
• Start from examples
• Improve the involvement of domain
experts
20
1
2
2
1
3
Patterns
Model-Driven Engineering (MDE).
Top-down approach
Bottom-up approach
Conclusions and open lines
AGENDA
21
WHAT’S IN A META-MODEL?
22
Do different meta-models share features?
• If so, generalize those and make them reusable
• For example, common abstractions for behavioural languages:
• State-machine
• Workflow
• ..
Analysis of ATL meta-model repository
• 305 meta-models
WHAT’S IN A META-MODEL?
23
TYPES OF PATTERNS
Domain
• Characterize families of DSMLs (e.g., workflow, state machines)
Design
• Concrete meta-model design
Infrastructure
• Services of the modelling environment (filtering, model fragmentation)
Dynamic semantic patterns
• Participant roles in different styles of semantics (Petri nets, event-
based, etc)
24
PATTERNS
Structure
• Like a meta-model
• Fine-grained variability through
roles
Variability
• Pattern variants
• Feature model
25
StateMachine
StateVertex
*states
name: String
Transition
name: String
*
source
target
outgoing
incoming
*
*
Simple
State
Final
State Event
trigger 0..1
Initial
State
transitions
0..1 0..1
0..1
Services
• Code generation
• Components that contribute functionality to the modelling
environment
APPLYING A PATTERN
26
MODULARITY PATTERN
27
Customize a fragmentation strategy for a DSL
Generate a modelling
environment that organizes:
• A model as a project (root
class as “Project”)
• Folders associated to classes
tagged as “Package”
• Units (files) for elements in a
container object tagged as
“Unit”
APPLYING AN
INFRASTRUCTURE PATTERN
28
Container
extension@1: String
*
Project
contents
modularity pattern
Containee
Package Unit 0..*0..*
meta-model
Component
@Component
@Unit
StateMachine
@StateMachine
@Unit
WTComponents
@Project
Subsystem
@Package
Control
Subsystem
@Package
*
*
*
*
extension=“state”
extension=“figcom”
*
1..*
Hierarchical
Organization 0..5
Model
Injector
Model
Descriptor
EditorTab
29
Project root
:WTComponents
sysId=“EmbSys”
version=2
model=“Dynamic”
Package
:SubSystem
name=“comp-sys”
description =“verified”
Unit
: Component
:Port :Port
cross-reference
cross-reference
Package
:SubSystem
name=“plant-sys”
description =“beta”
cross-reference
EmbSys
plant-sys
comp-sysname=“comp1”
comp1
[Eclipse project]
[folder]
[folder]
[file]
Modular model
Physical deployment
APPLYING AN
INFRASTRUCTURE PATTERN
REALIZATION
DSL-TAO
30
An Eclipse plugin
• http://miso.es/tools/DSLtao.html
• EU project MONDO http://mondo-
project.org
• Open source
Catalogue of patterns
• Domain
• Concrete syntax
• Infrastructure
• Can contribute their own wizard
DSL tao
Modularity Filter
Hierarchical
Organization
EditorTab
Filtering
ModelConsumer
generated DSML environment
DSML meta-model
…
pattern
occurrence
patterns catalogue
pattern
occurrence
code generation
31
32
33
CUSTOM WIZARD
(GRAPHICAL PATTERN)
34
Selection of heuristics
35
Selection of representation for elements
CUSTOM WIZARD
(GRAPHICAL PATTERN)
36
Customization of graphical elements
CUSTOM WIZARD
(GRAPHICAL PATTERN)
RESULTING TOOL
37
Sirius-based
editor
Fragmented
model as a
project
Model-Driven Engineering (MDE).
Top-down approach
Bottom-up approach
Conclusions and open lines
AGENDA
38
Facilitate the construction of DSLs by non-experts
There is currently a gap
• domain experts have the knowledge of the domain...
• but lack the expertise to build meta-models.
Drafting example models first might be more
intuituive…
…but current MDE environments require the existence
of a meta-model.
MOTIVATION
39
Facilitate the construction of DSLs by non-experts
There is currently a gap
• Domain experts have the knowledge of the domain...
• but lack the expertise to build meta-models.
Drafting example models first might be more
intuituive…
…but current MDE environments require the existence
of a meta-model.
MOTIVATION
40
domain
experts
fragments
meta-model
induction
Fragment-n
Neutral
Meta-
Model
Fragment-2
Fragment-1
Fragment-n
+
induction
refactorings
Conformance
Checking &
Reporting
2
3
4
import
5
7
Model-to-model
Transformation
Visual
Language
Compilation into
implementation
meta-models
1
…
Technical Spaces
Domain
experts
Engineer
EMF
Textual
Language
Meta
Depth
Purpose
of use
Model-to-model
Transformation
Visual
Language
Textual
Language
Construction phase Validation
phase
Test suite
6Fragment-n
Neutral
Meta-
Model
Fragment-2
Fragment-1
Fragment-n
+
induction
refactorings
Conformance
Checking &
Reporting
2
3
4
import
5
7
Model-to-model
Transformation
Visual
Language
Compilation into
implementation
meta-models
1
…
Technical Spaces
Domain
experts
Engineer
EMF
Textual
Language
Meta
Depth
Purpose
of use
Model-to-model
Transformation
Visual
Language
Textual
Language
Construction phase Validation
phase
Test suite
6
BOTTOM-UP META-MODELLING
MODEL FRAGMENTS
Examples of concrete situations, gathering DSL
requirements.
• Can focus on a particular aspect (no need to be complete)
Not just documentation
• Actively used to induce a meta-
model
Graphical (sketches) or
textual syntax
fragment edu1 {
c : Course {
attr name = "Design Project"
attr course = 2
attr semester = 2
ref coordinator = p1
}
g1 : Group {
attr code = "PADS221"
attr shift = "morning"
ref course = c
}
…
…
g2 : Group {
attr code = "PADS226"
attr shift = "afternoon"
ref course = c
}
p1 : Professor {
attr name = "Juan"
ref teaches = g1
}
p2 : Professor {
attr name = "Eduardo"
ref teaches = g2
}
}
MODEL FRAGMENTS
textual syntax
LEGEND
44
Also a sketch
Assigns meaning to
icons
• Redundancy (on
purpose). Different
icons with same
meaning.
ANNOTATIONS
Provide an insight on some aspect of the fragment
• domain annotations: normally by the domain expert (in sketch)
• design annotations: normally by the engineer (in textual notation)
Impact on the meta-model
• Trigger refactorings
• Produce integrity constraints
fragment edu1 {
c : Course {
attr name = "Design Project"
attr course = 2
attr semester = 2
@cycleWith(teaches,course)
ref coordinator = p1
}
g1 : Group {
attr code = "PADS221"
attr shift = "morning"
ref course = c
}
…
…
g2 : Group {
attr code = "PADS226"
attr shift = "afternoon"
ref course = c
}
p1 : Professor {
attr name = "Juan"
ref teaches = g1
}
p2 : Professor {
attr name = "Eduardo"
ref teaches = g2
}
}
ANNOTATIONS
textual syntax
…
MeaningElement
ANNOTATIONS
some annotations
Domain Annotation
@unique
Makes the class a singleton
Sets the attribute as the class id
class
attribute
@irreflexive Forbids self-loopsreference
@cycleWith
A given reference must commute
with a set of other references
reference
MeaningElementDesign Annotation
@general
Pulls common attributes of the class
set to a common super class
class
@general Pulls up the annotated reference
attribute
reference
@composition Marks a reference as compositionreference
BOTTOM-UP META-MODEL
CONSTRUCTION
Meta-model update upon entering a new fragment
using induction algorithm.
Annotations in a fragment are transfered to the meta-
model, which may trigger refactorings.
Conflicts (e.g., assignment of non-compatible types
for same field) are reported and fixed if possible.
INDUCTION ALGORITHM
Create new meta-class for each different object type
in fragment (if class does not exist).
Add new attributes/relation to meta-class for each
new slot/reference in object (if it does not exist).
:A :C
r
A B
r
[a,b] A B
r
[min(a,1),b]
C
BC
existing
meta-model
resulting
meta-model
new fragment
is processed
fragment
:A :C
r
A B
r
[a,b] A B
r
[min(a,1),b]
C
BC
existing
meta-model
resulting
meta-model
new fragment
is processed
fragment
Relations with
same name
pointing to objects
of different type.
INDUCTION ALGORITHM
example
50
fragment edu3 {
c: Course{ ref calendar = ca }
@container(w)
ca : Calendar{ ref week = w }
@container(tc1, tc2, lc)
w: Week{
attr weekNumber = 1
ref elements = tc1, tc2, lc
}
tc1 : TheoryClass{
@general ref topics = t
}
tc2 : TheoryClass{ ref topics = t }
lc : LabClass{ ref topics = t }
t: Topic { attr topic= "Design patterns"}
}
INDUCTION ALGORITHM
example
51
fragment edu3 {
c: Course{ ref calendar = ca }
@container(w)
ca : Calendar{ ref week = w }
@container(tc1, tc2, lc)
w: Week{
attr weekNumber = 1
ref elements = tc1, tc2, lc
}
tc1 : TheoryClass{
@general ref topics = t
}
tc2 : TheoryClass{ ref topics = t }
lc : LabClass{ ref topics = t }
t: Topic { attr topic= "Design patterns"}
}
REFACTORINGS
The transferred annotations may trigger meta-model
refactorings
52
REFACTORINGS
The transferred annotations may trigger meta-model
refactorings
53
VIRTUAL ASSISTANT
Detect places where the meta-model can be
improved and recommend solutions
Structural recommendations
• Inline class
• Pullup features (FCA)
• Generalize references
• Replace class by integer
Style recommendations
• Number conflict, camel case, etc
54
OPEN ISSUES
Alternatives recorded as “open issues”
• Conflict. Fragment specifying contradictory
information (e.g. different types for an attribute).
• Automatic. Naming of added classes.
Resolution of an open issue may break the
conformance of previous fragments
• Non-breaking and breaking and resolvable
• Preferred by the algorithm
• Breaking and unresolvable
• Provide additional information to keep the conformance
• Discard fragments
55
COMPILATION
56
TOOL SUPPORT
57
http://www.miso.es/tools/metaBUP.html
TOOL SUPPORT
58
http://www.miso.es/tools/metaBUP.html
ANOTHER EXAMPLE
59
ANOTHER EXAMPLE:
SPATIAL RELATIONSHIPS
60
containment
overlapping
adjacency
ANOTHER EXAMPLE:
METABUP
61
ANOTHER EXAMPLE:
GENERATED DSL ENVIRONMENT
62
Model-Driven Engineering (MDE)
Top-down approach
Bottom-up approach
Conclusions and open lines
AGENDA
63
CONCLUSIONS
MDE accelerates software development process
(for specific domains)
DSMLs oriented to particular domains
Constructing environments for DSMLs is time
consuming
• Top-down (pattern-based)
• Bottom-up (example-based)
64
OPEN LINES
Flexible modelling
• Informal modelling (early stages)
• Formality (late stages)
Mobility and Context
• DSL-comet
• Available in app Store
65
THANKS!
Questions?
66
http://www.miso.es
modelling&software engineering
research group
Esther Guerra, Juan de Lara
{Esther.Guerra, Juan.deLara}@uam.es
Joint work with: Jesús Juan López, Ana Pescador,
Antonio Garmendia, Jesús Sánchez Cuadrado

More Related Content

What's hot

COMPUTER PROGRAMMING
COMPUTER PROGRAMMINGCOMPUTER PROGRAMMING
COMPUTER PROGRAMMING
Yanne Evangelista
 
Uml basics
Uml basicsUml basics
Uml basics
Naga Muruga
 
Week 6
Week 6Week 6
SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015
Régis Castéran
 
Software Design 1: Coupling & cohesion
Software Design 1: Coupling & cohesionSoftware Design 1: Coupling & cohesion
Software Design 1: Coupling & cohesion
Attila Magyar
 
Tool Development 09 - Localization & Testing
Tool Development 09 - Localization & TestingTool Development 09 - Localization & Testing
Tool Development 09 - Localization & Testing
Nick Pruehs
 
Optimica Testing Toolkit
Optimica Testing ToolkitOptimica Testing Toolkit
Optimica Testing Toolkit
Modelon
 
PRFC SysML 1.4
PRFC SysML 1.4PRFC SysML 1.4
PRFC SysML 1.4
Pascal Roques
 
MPHS RC Design Flow
MPHS RC Design FlowMPHS RC Design Flow
MPHS RC Design Flow
Marco Santambrogio
 
Introduction to SysML af Finn Overgaard Hansen, AU
Introduction to SysML af Finn Overgaard Hansen, AUIntroduction to SysML af Finn Overgaard Hansen, AU
Introduction to SysML af Finn Overgaard Hansen, AU
InfinIT - Innovationsnetværket for it
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
Ramdas Mozhikunnath
 
Matthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLMatthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UML
INCOSE Colorado Front Range Chapter
 
OMG CORBA Component Model tutorial
OMG CORBA Component Model tutorialOMG CORBA Component Model tutorial
OMG CORBA Component Model tutorial
Johnny Willemsen
 

What's hot (14)

COMPUTER PROGRAMMING
COMPUTER PROGRAMMINGCOMPUTER PROGRAMMING
COMPUTER PROGRAMMING
 
2
22
2
 
Uml basics
Uml basicsUml basics
Uml basics
 
Week 6
Week 6Week 6
Week 6
 
SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015
 
Software Design 1: Coupling & cohesion
Software Design 1: Coupling & cohesionSoftware Design 1: Coupling & cohesion
Software Design 1: Coupling & cohesion
 
Tool Development 09 - Localization & Testing
Tool Development 09 - Localization & TestingTool Development 09 - Localization & Testing
Tool Development 09 - Localization & Testing
 
Optimica Testing Toolkit
Optimica Testing ToolkitOptimica Testing Toolkit
Optimica Testing Toolkit
 
PRFC SysML 1.4
PRFC SysML 1.4PRFC SysML 1.4
PRFC SysML 1.4
 
MPHS RC Design Flow
MPHS RC Design FlowMPHS RC Design Flow
MPHS RC Design Flow
 
Introduction to SysML af Finn Overgaard Hansen, AU
Introduction to SysML af Finn Overgaard Hansen, AUIntroduction to SysML af Finn Overgaard Hansen, AU
Introduction to SysML af Finn Overgaard Hansen, AU
 
SOC Verification using SystemVerilog
SOC Verification using SystemVerilog SOC Verification using SystemVerilog
SOC Verification using SystemVerilog
 
Matthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UMLMatthew Hause Building Bridges between Systems and Software with SysML and UML
Matthew Hause Building Bridges between Systems and Software with SysML and UML
 
OMG CORBA Component Model tutorial
OMG CORBA Component Model tutorialOMG CORBA Component Model tutorial
OMG CORBA Component Model tutorial
 

Viewers also liked

Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...
Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...
Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...
Scrum Bangalore
 
TimeOP at VentureConnect
TimeOP at VentureConnectTimeOP at VentureConnect
TimeOP at VentureConnect
TimeOP
 
022 Construction Productivity (PART 1)
022 Construction Productivity (PART 1)022 Construction Productivity (PART 1)
022 Construction Productivity (PART 1)
Dr Fereidoun Dejahang
 
Modelling Software Requirements: Important diagrams and templates (lecture sl...
Modelling Software Requirements: Important diagrams and templates (lecture sl...Modelling Software Requirements: Important diagrams and templates (lecture sl...
Modelling Software Requirements: Important diagrams and templates (lecture sl...
Dagmar Monett
 
1. productivity concept and calculation.
1. productivity concept and calculation.1. productivity concept and calculation.
1. productivity concept and calculation.
Samir Potale-sylvester
 
7. work study and method measurement
7. work study and method measurement7. work study and method measurement
7. work study and method measurementAkash Bakshi
 
Work measurement
Work measurementWork measurement
Work measurement
sendrebogdan
 
Construction productivity
Construction productivityConstruction productivity
Construction productivity
Sunil Manjeri
 
Productivity, Productivity, Productivity
Productivity, Productivity, ProductivityProductivity, Productivity, Productivity
Productivity, Productivity, Productivity
Fabian Alcantara
 
Project Management Techniques ( CPM & PERT Techniques )
Project Management Techniques ( CPM & PERT Techniques )Project Management Techniques ( CPM & PERT Techniques )
Project Management Techniques ( CPM & PERT Techniques )
Akaresh Jose Kaviyil JY
 

Viewers also liked (12)

Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...
Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...
Scrum_BLR 10th meet up 13 sept-2014 - How to Measure Efficiency or Productivi...
 
TimeOP at VentureConnect
TimeOP at VentureConnectTimeOP at VentureConnect
TimeOP at VentureConnect
 
022 Construction Productivity (PART 1)
022 Construction Productivity (PART 1)022 Construction Productivity (PART 1)
022 Construction Productivity (PART 1)
 
Work sampling
Work samplingWork sampling
Work sampling
 
Modelling Software Requirements: Important diagrams and templates (lecture sl...
Modelling Software Requirements: Important diagrams and templates (lecture sl...Modelling Software Requirements: Important diagrams and templates (lecture sl...
Modelling Software Requirements: Important diagrams and templates (lecture sl...
 
Work measurement
Work measurementWork measurement
Work measurement
 
1. productivity concept and calculation.
1. productivity concept and calculation.1. productivity concept and calculation.
1. productivity concept and calculation.
 
7. work study and method measurement
7. work study and method measurement7. work study and method measurement
7. work study and method measurement
 
Work measurement
Work measurementWork measurement
Work measurement
 
Construction productivity
Construction productivityConstruction productivity
Construction productivity
 
Productivity, Productivity, Productivity
Productivity, Productivity, ProductivityProductivity, Productivity, Productivity
Productivity, Productivity, Productivity
 
Project Management Techniques ( CPM & PERT Techniques )
Project Management Techniques ( CPM & PERT Techniques )Project Management Techniques ( CPM & PERT Techniques )
Project Management Techniques ( CPM & PERT Techniques )
 

Similar to Constructing DSMLs

MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
Abdalmassih Yakeen
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
PG Scholar
 
Topcased
TopcasedTopcased
Topcased
Inria
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLelliando dias
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Embarcados
 
Vineel presentation
Vineel presentationVineel presentation
Vineel presentation
Vineel Krishnamsetty
 
Code Generation with MDA and xUML
Code Generation with MDA and xUMLCode Generation with MDA and xUML
Code Generation with MDA and xUML
Chris Raistrick
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
fntnhd
 
Lesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdfLesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdf
cifoxo
 
Legion - AI Runtime Platform
Legion -  AI Runtime PlatformLegion -  AI Runtime Platform
Legion - AI Runtime Platform
Alexey Kharlamov
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016
Modelon
 
In Depth Constructive Cost Modeling related slides
In Depth Constructive Cost Modeling related slidesIn Depth Constructive Cost Modeling related slides
In Depth Constructive Cost Modeling related slides
ChobodiDamsaraniPadm
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
Ákos Horváth
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Ministry of Foreign Affairs, Netherlands
 
MODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeMODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in Practice
Hussein Alshkhir
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
 
Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...
Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...
Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...
Bernd Grahlmann
 
Developing Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software SystemsDeveloping Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software Systems
James Hill
 
Unit 1b
Unit 1bUnit 1b
Unit 1b
Karthik Vivek
 
Cold box hierarchical mvc
Cold box hierarchical mvcCold box hierarchical mvc
Cold box hierarchical mvc
Ortus Solutions, Corp
 

Similar to Constructing DSMLs (20)

MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
Topcased
TopcasedTopcased
Topcased
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
 
Vineel presentation
Vineel presentationVineel presentation
Vineel presentation
 
Code Generation with MDA and xUML
Code Generation with MDA and xUMLCode Generation with MDA and xUML
Code Generation with MDA and xUML
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
Lesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdfLesson3UMLMetamodel.pdf
Lesson3UMLMetamodel.pdf
 
Legion - AI Runtime Platform
Legion -  AI Runtime PlatformLegion -  AI Runtime Platform
Legion - AI Runtime Platform
 
Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016Modelon Modelica executable requirements Ansys Conference 2016
Modelon Modelica executable requirements Ansys Conference 2016
 
In Depth Constructive Cost Modeling related slides
In Depth Constructive Cost Modeling related slidesIn Depth Constructive Cost Modeling related slides
In Depth Constructive Cost Modeling related slides
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
 
MODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in PracticeMODEL-DRIVEN ENGINEERING (MDE) in Practice
MODEL-DRIVEN ENGINEERING (MDE) in Practice
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...
Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...
Dr. Bernd GRAHLMANN and NXP automating testing with Telelogic DOORS @ NXP pre...
 
Developing Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software SystemsDeveloping Tools for “What if…” Testing of Large-scale Software Systems
Developing Tools for “What if…” Testing of Large-scale Software Systems
 
Unit 1b
Unit 1bUnit 1b
Unit 1b
 
Cold box hierarchical mvc
Cold box hierarchical mvcCold box hierarchical mvc
Cold box hierarchical mvc
 

More from miso_uam

Model-driven engineering for AR
Model-driven engineering for ARModel-driven engineering for AR
Model-driven engineering for AR
miso_uam
 
Capone.pdf
Capone.pdfCapone.pdf
Capone.pdf
miso_uam
 
MLE_keynote.pdf
MLE_keynote.pdfMLE_keynote.pdf
MLE_keynote.pdf
miso_uam
 
Multi21
Multi21Multi21
Multi21
miso_uam
 
MLMPLs
MLMPLsMLMPLs
MLMPLs
miso_uam
 
Scientific writing
Scientific writingScientific writing
Scientific writing
miso_uam
 
Facets_UCM
Facets_UCMFacets_UCM
Facets_UCM
miso_uam
 
SLE_MIP08
SLE_MIP08SLE_MIP08
SLE_MIP08
miso_uam
 
mtATL
mtATLmtATL
mtATL
miso_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ática
miso_uam
 
Analysing-MMPLs
Analysing-MMPLsAnalysing-MMPLs
Analysing-MMPLs
miso_uam
 
Facets
FacetsFacets
Facets
miso_uam
 
kite
kitekite
kite
miso_uam
 
MTPLs
MTPLsMTPLs
MTPLs
miso_uam
 
Miso-McGill
Miso-McGillMiso-McGill
Miso-McGill
miso_uam
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reuse
miso_uam
 
Miso
MisoMiso
Miso
miso_uam
 
DSLcomet
DSLcometDSLcomet
DSLcomet
miso_uam
 
SICOMORO
SICOMOROSICOMORO
SICOMORO
miso_uam
 
ReusingMT
ReusingMTReusingMT
ReusingMT
miso_uam
 

More from miso_uam (20)

Model-driven engineering for AR
Model-driven engineering for ARModel-driven engineering for AR
Model-driven engineering for AR
 
Capone.pdf
Capone.pdfCapone.pdf
Capone.pdf
 
MLE_keynote.pdf
MLE_keynote.pdfMLE_keynote.pdf
MLE_keynote.pdf
 
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
 

Recently uploaded

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 

Recently uploaded (20)

APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 

Constructing DSMLs

  • 1. CONSTRUCTING DOMAIN SPECIFIC MODELLING LANGUAGES FOR MODEL DRIVEN ENGINEERING Esther Guerra, Juan de Lara modelling&software engineering research grouphttp://www.miso.es
  • 2. Model-Driven Engineering (MDE) • Introduction • Current Challenges in Defining DSMLs Top-down approach Bottom-up approach Conclusions and open lines AGENDA 2
  • 3. MODEL DRIVEN ENGINEERING Increase the level of abstraction in software development Models are actively used to • Describe the problem… • Simulate/verify/test… • Generate code for the final application Move from the solution space (code-centric) to the problem space • Higher levels of productivity and quality • Less accidental details 3
  • 4. MODEL DRIVEN ENGINEERING For specific domains • Avoid coding the same solutions over and over • Families of applications • Domain-Specific Modelling Languages Code Generator • Modelling, validation and automatic generation of telephony services 4
  • 5. MODEL DRIVEN ENGINEERING For specific domains: • Avoid coding the same solutions over and over • Families of applications • Domain-Specific Modelling Languages • Code generation from State-Machines for Railway Signaling Systems 5 Code generator
  • 6. MetaEdit+ DOMAIN SPECIFIC MODELLING LANGUAGES Describe the structure of the domain • Relevant primitives and abstractions • Relations, features • Explicit expert knowledge 6
  • 7. DOMAIN SPECIFIC MODELLING LANGUAGES DSMLs need not be graphical… xText 7
  • 8. MODELS AND META-MODELS The abstract syntax of DSMLs is defined through a meta-model • Classes • Attributes • Relations 8 Factory meta-model Machine Part Conveyor Generator Assembler inps outs * * * parts Terminator 1..* 1..*
  • 9. MODELS AND META-MODELS The abstract syntax of DSMLs is defined through a meta-model • Classes • Attributes • Relations 9 «conforms to» c1:Conveyor g:Generator a:Assembler c2:Conveyor c3:Conveyor t:Terminator p2: Partp2: Partouts outs inps inps outs inps Factory meta-model Machine Part Conveyor Generator Assembler inps outs * * * parts Terminator 1..* 1..*
  • 10. OCL CONSTRAINTS 10 Object Constraint Language Well-formedness rules, which every model should satisfy Based on First-Order Logic g:Generator «conforms to» c:Conveyor Factory meta-model Machine Part Conveyor Generator Assembler inps outs * * * parts Terminator 1..* 1..* Factory meta-model Machine Part Conveyor Generator Assembler inps outs * * * parts Terminator 1..* 1..* context Generator inv: self.inps->isEmpty() and self.outs->size()>0 context Generator inv: self.inps->isEmpty() and self.outs->size()>0 context Terminator inv: self.outs->isEmpty() and self.inps->size()>0 context Assembler inv: self.inps->size()>0 and self.outs.size()>0 … inps
  • 11. MODELS AND META-MODELS Models are represented using concrete syntax • Visual • Textual No need for a 1-1 correspondence between abstract and concrete syntax elements 11 asse
  • 12. MODEL TRANSFORMATIONS Models need to be manipulated for • Simulation • Optimization/refactoring • Generating another model • Generating code in-place transformations 12 …
  • 13. MODEL TRANSFORMATIONS Models need to be manipulated for • Simulation • Optimization/refactoring • Generating another model • Generating code Source Target 13 model-to-model transformations
  • 14. MODEL TRANSFORMATIONS Models need to be manipulated for • Simulation • Optimization/refactoring • Generating another model • Generating code 14 MMsrc MMtar Msrc Mtar Transformation definition from to «conforms to» «conforms to» Transformation execution Transformation developer Final user model-to-model transformations
  • 15. MODEL TRANSFORMATIONS Models need to be manipulated for • Simulation • Optimization/refactoring • Generating another model • Generating code 15 Template languages query and model navigation
  • 17. DSML CONSTRUCTION PROCESS 17 Meta-model design Modelling environment Automatic generation House Concrete syntax design DSML design DSML designers DSML users ( and creation of model transformations )
  • 18. MOTIVATION 18 Many DSML construction environments exist nowadays But: • Do not focus on scalable DSMLs • The definition of every DSML has to start from scratch • Difficult, technical tasks (hampers involvement of domain experts) • No systematic process for DSML construction • Do not cover the whole lifecycle of DSML development  Xtext  EMFText  Spoofax  MPS  MetaEdit+  Sirius  GMF  Eugenia Graphical Textual
  • 19. OUR APPROACHES Top-down • Meta-model first • Reusability by means of patterns • Pattern to specify model fragmentation strategies 19 1 2 Patterns
  • 20. OUR APPROACHES Top-down • Meta-model first • Reusability by means of patterns • Pattern to specify model fragmentation strategies Bottom-up • Start from examples • Improve the involvement of domain experts 20 1 2 2 1 3 Patterns
  • 21. Model-Driven Engineering (MDE). Top-down approach Bottom-up approach Conclusions and open lines AGENDA 21
  • 22. WHAT’S IN A META-MODEL? 22 Do different meta-models share features? • If so, generalize those and make them reusable • For example, common abstractions for behavioural languages: • State-machine • Workflow • .. Analysis of ATL meta-model repository • 305 meta-models
  • 23. WHAT’S IN A META-MODEL? 23
  • 24. TYPES OF PATTERNS Domain • Characterize families of DSMLs (e.g., workflow, state machines) Design • Concrete meta-model design Infrastructure • Services of the modelling environment (filtering, model fragmentation) Dynamic semantic patterns • Participant roles in different styles of semantics (Petri nets, event- based, etc) 24
  • 25. PATTERNS Structure • Like a meta-model • Fine-grained variability through roles Variability • Pattern variants • Feature model 25 StateMachine StateVertex *states name: String Transition name: String * source target outgoing incoming * * Simple State Final State Event trigger 0..1 Initial State transitions 0..1 0..1 0..1 Services • Code generation • Components that contribute functionality to the modelling environment
  • 27. MODULARITY PATTERN 27 Customize a fragmentation strategy for a DSL Generate a modelling environment that organizes: • A model as a project (root class as “Project”) • Folders associated to classes tagged as “Package” • Units (files) for elements in a container object tagged as “Unit”
  • 28. APPLYING AN INFRASTRUCTURE PATTERN 28 Container extension@1: String * Project contents modularity pattern Containee Package Unit 0..*0..* meta-model Component @Component @Unit StateMachine @StateMachine @Unit WTComponents @Project Subsystem @Package Control Subsystem @Package * * * * extension=“state” extension=“figcom” * 1..* Hierarchical Organization 0..5 Model Injector Model Descriptor EditorTab
  • 29. 29 Project root :WTComponents sysId=“EmbSys” version=2 model=“Dynamic” Package :SubSystem name=“comp-sys” description =“verified” Unit : Component :Port :Port cross-reference cross-reference Package :SubSystem name=“plant-sys” description =“beta” cross-reference EmbSys plant-sys comp-sysname=“comp1” comp1 [Eclipse project] [folder] [folder] [file] Modular model Physical deployment APPLYING AN INFRASTRUCTURE PATTERN
  • 30. REALIZATION DSL-TAO 30 An Eclipse plugin • http://miso.es/tools/DSLtao.html • EU project MONDO http://mondo- project.org • Open source Catalogue of patterns • Domain • Concrete syntax • Infrastructure • Can contribute their own wizard DSL tao Modularity Filter Hierarchical Organization EditorTab Filtering ModelConsumer generated DSML environment DSML meta-model … pattern occurrence patterns catalogue pattern occurrence code generation
  • 31. 31
  • 32. 32
  • 33. 33
  • 35. 35 Selection of representation for elements CUSTOM WIZARD (GRAPHICAL PATTERN)
  • 36. 36 Customization of graphical elements CUSTOM WIZARD (GRAPHICAL PATTERN)
  • 38. Model-Driven Engineering (MDE). Top-down approach Bottom-up approach Conclusions and open lines AGENDA 38
  • 39. Facilitate the construction of DSLs by non-experts There is currently a gap • domain experts have the knowledge of the domain... • but lack the expertise to build meta-models. Drafting example models first might be more intuituive… …but current MDE environments require the existence of a meta-model. MOTIVATION 39
  • 40. Facilitate the construction of DSLs by non-experts There is currently a gap • Domain experts have the knowledge of the domain... • but lack the expertise to build meta-models. Drafting example models first might be more intuituive… …but current MDE environments require the existence of a meta-model. MOTIVATION 40 domain experts fragments meta-model induction
  • 41. Fragment-n Neutral Meta- Model Fragment-2 Fragment-1 Fragment-n + induction refactorings Conformance Checking & Reporting 2 3 4 import 5 7 Model-to-model Transformation Visual Language Compilation into implementation meta-models 1 … Technical Spaces Domain experts Engineer EMF Textual Language Meta Depth Purpose of use Model-to-model Transformation Visual Language Textual Language Construction phase Validation phase Test suite 6Fragment-n Neutral Meta- Model Fragment-2 Fragment-1 Fragment-n + induction refactorings Conformance Checking & Reporting 2 3 4 import 5 7 Model-to-model Transformation Visual Language Compilation into implementation meta-models 1 … Technical Spaces Domain experts Engineer EMF Textual Language Meta Depth Purpose of use Model-to-model Transformation Visual Language Textual Language Construction phase Validation phase Test suite 6 BOTTOM-UP META-MODELLING
  • 42. MODEL FRAGMENTS Examples of concrete situations, gathering DSL requirements. • Can focus on a particular aspect (no need to be complete) Not just documentation • Actively used to induce a meta- model Graphical (sketches) or textual syntax
  • 43. fragment edu1 { c : Course { attr name = "Design Project" attr course = 2 attr semester = 2 ref coordinator = p1 } g1 : Group { attr code = "PADS221" attr shift = "morning" ref course = c } … … g2 : Group { attr code = "PADS226" attr shift = "afternoon" ref course = c } p1 : Professor { attr name = "Juan" ref teaches = g1 } p2 : Professor { attr name = "Eduardo" ref teaches = g2 } } MODEL FRAGMENTS textual syntax
  • 44. LEGEND 44 Also a sketch Assigns meaning to icons • Redundancy (on purpose). Different icons with same meaning.
  • 45. ANNOTATIONS Provide an insight on some aspect of the fragment • domain annotations: normally by the domain expert (in sketch) • design annotations: normally by the engineer (in textual notation) Impact on the meta-model • Trigger refactorings • Produce integrity constraints
  • 46. fragment edu1 { c : Course { attr name = "Design Project" attr course = 2 attr semester = 2 @cycleWith(teaches,course) ref coordinator = p1 } g1 : Group { attr code = "PADS221" attr shift = "morning" ref course = c } … … g2 : Group { attr code = "PADS226" attr shift = "afternoon" ref course = c } p1 : Professor { attr name = "Juan" ref teaches = g1 } p2 : Professor { attr name = "Eduardo" ref teaches = g2 } } ANNOTATIONS textual syntax
  • 47. … MeaningElement ANNOTATIONS some annotations Domain Annotation @unique Makes the class a singleton Sets the attribute as the class id class attribute @irreflexive Forbids self-loopsreference @cycleWith A given reference must commute with a set of other references reference MeaningElementDesign Annotation @general Pulls common attributes of the class set to a common super class class @general Pulls up the annotated reference attribute reference @composition Marks a reference as compositionreference
  • 48. BOTTOM-UP META-MODEL CONSTRUCTION Meta-model update upon entering a new fragment using induction algorithm. Annotations in a fragment are transfered to the meta- model, which may trigger refactorings. Conflicts (e.g., assignment of non-compatible types for same field) are reported and fixed if possible.
  • 49. INDUCTION ALGORITHM Create new meta-class for each different object type in fragment (if class does not exist). Add new attributes/relation to meta-class for each new slot/reference in object (if it does not exist). :A :C r A B r [a,b] A B r [min(a,1),b] C BC existing meta-model resulting meta-model new fragment is processed fragment :A :C r A B r [a,b] A B r [min(a,1),b] C BC existing meta-model resulting meta-model new fragment is processed fragment Relations with same name pointing to objects of different type.
  • 50. INDUCTION ALGORITHM example 50 fragment edu3 { c: Course{ ref calendar = ca } @container(w) ca : Calendar{ ref week = w } @container(tc1, tc2, lc) w: Week{ attr weekNumber = 1 ref elements = tc1, tc2, lc } tc1 : TheoryClass{ @general ref topics = t } tc2 : TheoryClass{ ref topics = t } lc : LabClass{ ref topics = t } t: Topic { attr topic= "Design patterns"} }
  • 51. INDUCTION ALGORITHM example 51 fragment edu3 { c: Course{ ref calendar = ca } @container(w) ca : Calendar{ ref week = w } @container(tc1, tc2, lc) w: Week{ attr weekNumber = 1 ref elements = tc1, tc2, lc } tc1 : TheoryClass{ @general ref topics = t } tc2 : TheoryClass{ ref topics = t } lc : LabClass{ ref topics = t } t: Topic { attr topic= "Design patterns"} }
  • 52. REFACTORINGS The transferred annotations may trigger meta-model refactorings 52
  • 53. REFACTORINGS The transferred annotations may trigger meta-model refactorings 53
  • 54. VIRTUAL ASSISTANT Detect places where the meta-model can be improved and recommend solutions Structural recommendations • Inline class • Pullup features (FCA) • Generalize references • Replace class by integer Style recommendations • Number conflict, camel case, etc 54
  • 55. OPEN ISSUES Alternatives recorded as “open issues” • Conflict. Fragment specifying contradictory information (e.g. different types for an attribute). • Automatic. Naming of added classes. Resolution of an open issue may break the conformance of previous fragments • Non-breaking and breaking and resolvable • Preferred by the algorithm • Breaking and unresolvable • Provide additional information to keep the conformance • Discard fragments 55
  • 63. Model-Driven Engineering (MDE) Top-down approach Bottom-up approach Conclusions and open lines AGENDA 63
  • 64. CONCLUSIONS MDE accelerates software development process (for specific domains) DSMLs oriented to particular domains Constructing environments for DSMLs is time consuming • Top-down (pattern-based) • Bottom-up (example-based) 64
  • 65. OPEN LINES Flexible modelling • Informal modelling (early stages) • Formality (late stages) Mobility and Context • DSL-comet • Available in app Store 65
  • 66. THANKS! Questions? 66 http://www.miso.es modelling&software engineering research group Esther Guerra, Juan de Lara {Esther.Guerra, Juan.deLara}@uam.es Joint work with: Jesús Juan López, Ana Pescador, Antonio Garmendia, Jesús Sánchez Cuadrado