SlideShare a Scribd company logo
1 of 41
Download to read offline
On the Quest for Flexible Modelling
Esther Guerra, Juan de Lara
MISO - Modelling & Software Engineering Research Group (miso.es)
Universidad Aut´onoma de Madrid (Spain)
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 1 / 23
Motivation
Diverse nature of modelling, ranging:
from informal (e.g., for discussion)
to fully formal (e.g., for code generation)
Most modelling tools only serve one of these extreme purposes:
create informal models or diagrams (imprecise)
build models fully conformant to the modelling language (rigid)
MDE tools on the rigid side:
it hinders a wider adoption of MDE
unnecessarily complex solutions to some scenarios
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 2 / 23
Contribution
Our claim: modelling tools need further flexibility
cover different stages, purposes, and approaches
explicit modelling process and conformance rules
In this presentation:
requirements for flexible modelling tools
application scenarios
our proposal: meta-modelling language + explicit modelling process
the Kite meta-modelling framework
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 3 / 23
Requirements
and
Scenarios
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 4 / 23
Requirements and scenarios
R1: Configurable inconsistency tolerance
R1: The user should be able to relax the model conformance rules.
Possibility to enable/disable:
cardinality and integrity constraints
type checking of field values
objects with an abstract type
objects with a non-existing type
Inconsistency
tolerance
rigid freeconfigurable
typing #instances cardinality constraints
R1
Generalization
multiple
inheritance
object-
level
R4
gexplicitEsther Guerra On the Quest for Flexible Modelling MoDELS 2018 5 / 23
Requirements and scenarios
R1: Configurable inconsistency tolerance
R1: The user should be able to relax the model conformance rules.
Scenarios:
model life-cycle: from less to more strict rules
model migration, meta-model evolution: incorrect models will “load”
meta-model testing: partial, incorrect test models
test-driven meta-model development: non-existing types and features
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 5 / 23
Requirements and scenarios
R2: Information extension
R2: The user should be able to dis(allow) information extension.
Possibility to have (or not):
objects with no type (it is type-safe)
typed objects with fields not in the object type
Inconsistency
tolerance
rigid freeconfigurable
typing #instances cardinality constraints
R1
Information
extension
untyped
objects
untyped
features
R2
GeneralizationR4 ProR5
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 6 / 23
Requirements and scenarios
R2: Information extension
R2: The user should be able to dis(allow) information extension.
Scenarios:
data injection: no meta-model upfront
language extension: emergent features as untyped elements
auxiliary computation elements: flags, clocks... as untyped elements
language creation: creating types from untyped elements
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 6 / 23
Requirements and scenarios
R3: Configurable classification relation
R3: The user should be able to configure the classification relation.
Possibility to enable/disable:
dynamic, multiple typing
creation and a-posteriori types
multiple meta-levels
Modelling tools typically support:
single, static typing
creation types
two meta-levels
rmation
ension
untyped
features
Classification
dynamicity
static dynamic
levels
2level multilevel
#classifiers
single-c multiple-c
classification time
creation a-posteriori
#model types
single-m multiple-m
R3
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 7 / 23
Requirements and scenarios
R3: Configurable classification relation
R3: The user should be able to configure the classification relation.
Scenarios:
reuse of model operations: by allowing multiple typing
OO model«Container»
*
cl
Package Class
creation type
applicable to
Element
name: String
* pck
Container *
cnt
:Package
name=“org”
:Package
name=“people”
:Class
name=“Person”
Graph
MM
OO
MM defined
over
operation flatten
(Container c) =
c.cnt…
ti fl
«Container» «Leaf»
* lf
Leaf
a posteriori type
joint instantiation of sets of classes: e.g., used in ontologies
multi-level modelling: by allowing multiple meta-levels
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 7 / 23
Requirements and scenarios
R4: Configurable generalisation relation
R4: The user should be able to configure the generalisation relation.
Possibility to enable/disable:
multiple inheritance
generalisation between objects
tolerance
rigid freeconfigurable
typing #instances cardinality constraint
Generalization
multiple
inheritance
object-
level
R4
exp
config
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 8 / 23
Requirements and scenarios
R4: Configurable generalisation relation
R4: The user should be able to configure the generalisation relation.
Scenarios:
model libraries: reusable by object inheritance
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 8 / 23
Requirements and scenarios
R5: Explicit and configurable modelling process
R5: The tool should allow defining and enacting modelling processes.
Modelling processes:
phases, conformance rules
order of object creation
current modelling phase
manual
automatic
process intent
meta-model creation
(bottom-up, top-down,
blended)
model creation
Inconsistency
tolerance
rigid freeconfigurable
typing #instances cardinality constraints
R1
Information
extension
untyped
objects
untyped
features
R2
d
sta
levels
2level multilevel
#classifiers
single-c multiple-c
R3
Generalization
multiple
inheritance
object-
level
R4
modelling
process
generic domain-
specific
state
change
manual automatic
process
intent
bottom-up top-down blended
Process
explicit
configurable
R5
model refinement
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 9 / 23
Requirements and scenarios
R5: Explicit and configurable modelling process
R5: The tool should allow defining and enacting modelling processes.
Scenarios:
transition from informal to formal modelling
modelling guidelines: e.g., in UML, classes first
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 9 / 23
Requirements and scenarios
R6: Process-aware extensible assistance
R6: Fixes and refactorings may depend on the process intent.
For example, given a model error:
bottom-up fixes modify the meta-model
top-down fixes modify the model
domain-specific fixes
ree
ality constraints
Information
extension
untyped
objects
untyped
features
R2
Classification
dynamicity
static dynamic
levels
2level multilevel
#classifiers
single-c multiple-c
classification time
creation a-poste
R3
modelling
process
generic domain-
specific
state
change
manual automatic
process
intent
bottom-up top-down blended
Process
explicit
configurable
R5
model refinement
assistance
extensible
Process
R6
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 10 / 23
Requirements and scenarios
R6: Process-aware extensible assistance
R6: Fixes and refactorings may depend on the process intent.
Scenarios:
model refinement: model fixes and refactorings
live meta-model/model co-evolution: model fixes and refactorings
bottom-up meta-modelling: meta-model fixes
recommendation systems
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 10 / 23
Our
Proposal
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 11 / 23
Architecture
meta-modelling language for flexible modelling
explicit modelling process
model
model
model
meta-model
for flexible modelling
«conf. to» (linguistic)
«conf. to»
(onto.)
«conf. to»
(onto.)
modelling process
meta-model
«conf. to» (linguistic)
model
«conf. to» (ontologic)
modelling processmodel ecosystem
process supervisor
current phase
configurable
model
validator
configures
feedback
fixeschecks
check
selector
fix
selector
selects selects
«extensible»
fixfixfix
checkcheckcheck
phase
1
phase
2
phase
3
phase
4
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 12 / 23
Meta-modelling language
Basic modelling elements (R3, R4)
Support for multiple levels (one class to represent types and instances)
Models and objects can have features and constraints
Instantiation cardinality vs Value cardinality
References can have several targets, at any level
Generalization at any meta-level (relation Object.super)
Model Object
Feature
TypedElement
Featured
Element
ValuedElement
name: String
lbound: int
ubound: int
lbound_v: int
ubound_v: int
Attribute Reference
features
*
*
objects
*
super
Target
*to
object
Integrity
Constraint
name: String
body: String
context
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
Meta-modelling language
Basic modelling elements (R3, R4)
Support for multiple levels (one class to represent types and instances)
Models and objects can have features and constraints
Instantiation cardinality vs Value cardinality
References can have several targets, at any level
Generalization at any meta-level (relation Object.super)
Model Object
Feature
TypedElement
Featured
Element
ValuedElement
name: String
lbound: int
ubound: int
lbound_v: int
ubound_v: int
Attribute Reference
features
*
*
objects
*
super
Target
*to
object
Integrity
Constraint
name: String
body: String
context
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
Meta-modelling language
Basic modelling elements (R3, R4)
Support for multiple levels (one class to represent types and instances)
Models and objects can have features and constraints
Instantiation cardinality vs Value cardinality
References can have several targets, at any level
Generalization at any meta-level (relation Object.super)
Model Object
Feature
TypedElement
Featured
Element
ValuedElement
name: String
lbound: int
ubound: int
lbound_v: int
ubound_v: int
Attribute Reference
features
*
*
objects
*
super
Target
*to
object
Integrity
Constraint
name: String
body: String
context
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
Meta-modelling language
Basic modelling elements (R3, R4)
Support for multiple levels (one class to represent types and instances)
Models and objects can have features and constraints
Instantiation cardinality vs Value cardinality
References can have several targets, at any level
Generalization at any meta-level (relation Object.super)
Model Object
Feature
TypedElement
Featured
Element
ValuedElement
name: String
lbound: int
ubound: int
lbound_v: int
ubound_v: int
Attribute Reference
features
*
*
objects
*
super
Target
*to
object
Integrity
Constraint
name: String
body: String
context
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
Meta-modelling language
Basic modelling elements (R3, R4)
Support for multiple levels (one class to represent types and instances)
Models and objects can have features and constraints
Instantiation cardinality vs Value cardinality
References can have several targets, at any level
Generalization at any meta-level (relation Object.super)
Model Object
Feature
TypedElement
Featured
Element
ValuedElement
name: String
lbound: int
ubound: int
lbound_v: int
ubound_v: int
Attribute Reference
features
*
*
objects
*
super
Target
*to
object
Integrity
Constraint
name: String
body: String
context
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
Meta-modelling language
Flexible typing (R1, R2, R3)
Explicit typing relation
Zero, one or more typings for an instance
Types can be assigned at creation time, or later
Re-typing (preserving the instance identity)
*
otypingsModel
Typing
Object
Typing
Feature
Typing
TypedElementTyping
Featured
Typing
*ftypings
type
instance
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 14 / 23
Meta-modelling language
Examples
1 Conference {
2 Author {}
3 Reviewer /1..∗/ {}
4 }
5
6 MODELS :Conference /0..0/ {
7 amelia :Author :Reviewer {}
8 lateReviews {
9 ref who = amelia;
10 }
11 }
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
Meta-modelling language
Examples
1 Conference {
2 Author {}
3 Reviewer /1..∗/ {} −−> instantiation cardinality
4 }
5
6 MODELS :Conference /0..0/ { −−> instantiation cardinality
7 amelia :Author :Reviewer {}
8 lateReviews {
9 ref who = amelia;
10 }
11 }
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
Meta-modelling language
Examples
1 Conference {
2 Author {}
3 Reviewer /1..∗/ {}
4 }
5
6 MODELS :Conference /0..0/ {
7 amelia :Author :Reviewer {} −−> object with multiple types
8 lateReviews {
9 ref who = amelia;
10 }
11 }
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
Meta-modelling language
Examples
1 Conference {
2 Author {}
3 Reviewer /1..∗/ {}
4 }
5
6 MODELS :Conference /0..0/ {
7 amelia :Author :Reviewer {}
8 lateReviews { −−> object with no types
9 ref who = amelia;
10 }
11 }
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
Meta-modelling language
Examples
1 ArtistTypes {
2 Singer {
3 att name : String;
4 att stageName : String;
5 }
6 }
7
8 SomeMusicians :ArtistTypes {
9 tina :Singer {
10 att name = ”Anna Mae Bullock”;
11 att stageName = ”Tina Turner”;
12 }
13 joaquin :Singer {
14 att realName (:name :stageName) = ”Joaquin Pascual”;
15 }
16 }
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
Reified modelling process
Explicit modelling process (R5, R6)
Explicit modelling process: phases, checks, transitions
checks: predefined conformance rules, or custom-made ocl conditions
transitions: manual or automatic, may define ocl conditions
Process intent: refinement, top-down, bottom-up, free
Quick fixes can be filtered by process intent
Conformance rules and quickfixes can be extended by users
ModellingProcess
Phase
name: String
phases *
name: String
«enum»
Intent
BOTTOMUP
TOPDOWN
MODELREFINEMENT
FREE
intent
initial
Transition
out *
next
«enum»
TransitionMode
AUTOMATIC
MANUAL
«enum»
Expressiveness
MULTITYPING
MULTILEVEL
MULTIINHERITANCE
«enum»
Extensibility
UNTYPEDOBJECTS
UNTYPEDFEATURES
expressiveness
0..3
0..2
transition
Check
/allEntails*
conditions *
«extensible»
Quickfix
name: String
description: String
body: String
activationCheck
activationIntent
*
*
fixes
* *
name: String
description: String
body: String
OclCondition «extensible»
ConformanceRule
ModelType AttributeValue IntegrityConstraints… …
«from Flex-mm»
Object
Model
for
0..1
for 0..1
entails*
«from Flex-mm»
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
Reified modelling process
Explicit modelling process (R5, R6)
Explicit modelling process: phases, checks, transitions
checks: predefined conformance rules, or custom-made ocl conditions
transitions: manual or automatic, may define ocl conditions
Process intent: refinement, top-down, bottom-up, free
Quick fixes can be filtered by process intent
Conformance rules and quickfixes can be extended by users
ModellingProcess
Phase
name: String
phases *
name: String
«enum»
Intent
BOTTOMUP
TOPDOWN
MODELREFINEMENT
FREE
intent
initial
Transition
out *
next
«enum»
TransitionMode
AUTOMATIC
MANUAL
«enum»
Expressiveness
MULTITYPING
MULTILEVEL
MULTIINHERITANCE
«enum»
Extensibility
UNTYPEDOBJECTS
UNTYPEDFEATURES
expressiveness
0..3
0..2
transition
Check
/allEntails*
conditions *
«extensible»
Quickfix
name: String
description: String
body: String
activationCheck
activationIntent
*
*
fixes
* *
name: String
description: String
body: String
OclCondition «extensible»
ConformanceRule
ModelType AttributeValue IntegrityConstraints… …
«from Flex-mm»
Object
Model
for
0..1
for 0..1
entails*
«from Flex-mm»
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
Reified modelling process
Explicit modelling process (R5, R6)
Explicit modelling process: phases, checks, transitions
checks: predefined conformance rules, or custom-made ocl conditions
transitions: manual or automatic, may define ocl conditions
Process intent: refinement, top-down, bottom-up, free
Quick fixes can be filtered by process intent
Conformance rules and quickfixes can be extended by users
ModellingProcess
Phase
name: String
phases *
name: String
«enum»
Intent
BOTTOMUP
TOPDOWN
MODELREFINEMENT
FREE
intent
initial
Transition
out *
next
«enum»
TransitionMode
AUTOMATIC
MANUAL
«enum»
Expressiveness
MULTITYPING
MULTILEVEL
MULTIINHERITANCE
«enum»
Extensibility
UNTYPEDOBJECTS
UNTYPEDFEATURES
expressiveness
0..3
0..2
transition
Check
/allEntails*
conditions *
«extensible»
Quickfix
name: String
description: String
body: String
activationCheck
activationIntent
*
*
fixes
* *
name: String
description: String
body: String
OclCondition «extensible»
ConformanceRule
ModelType AttributeValue IntegrityConstraints… …
«from Flex-mm»
Object
Model
for
0..1
for 0..1
entails*
«from Flex-mm»
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
Reified modelling process
Explicit modelling process (R5, R6)
Explicit modelling process: phases, checks, transitions
checks: predefined conformance rules, or custom-made ocl conditions
transitions: manual or automatic, may define ocl conditions
Process intent: refinement, top-down, bottom-up, free
Quick fixes can be filtered by process intent
Conformance rules and quickfixes can be extended by users
ModellingProcess
Phase
name: String
phases *
name: String
«enum»
Intent
BOTTOMUP
TOPDOWN
MODELREFINEMENT
FREE
intent
initial
Transition
out *
next
«enum»
TransitionMode
AUTOMATIC
MANUAL
«enum»
Expressiveness
MULTITYPING
MULTILEVEL
MULTIINHERITANCE
«enum»
Extensibility
UNTYPEDOBJECTS
UNTYPEDFEATURES
expressiveness
0..3
0..2
transition
Check
/allEntails*
conditions *
«extensible»
Quickfix
name: String
description: String
body: String
activationCheck
activationIntent
*
*
fixes
* *
name: String
description: String
body: String
OclCondition «extensible»
ConformanceRule
ModelType AttributeValue IntegrityConstraints… …
«from Flex-mm»
Object
Model
for
0..1
for 0..1
entails*
«from Flex-mm»
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
Reified modelling process
Further configuration options (R5, R6)
Configuration of the meta-modelling language:
expresiveness: multiple typing, multiple levels, multiple inheritance
extensibility: untyped objects, untyped features
ModellingProcess
Phase
name: String
phases *
name: String
«enum»
Intent
BOTTOMUP
TOPDOWN
MODELREFINEMENT
FREE
intent
initial
Transition
out *
next
«enum»
TransitionMode
AUTOMATIC
MANUAL
«enum»
Expressiveness
MULTITYPING
MULTILEVEL
MULTIINHERITANCE
«enum»
Extensibility
UNTYPEDOBJECTS
UNTYPEDFEATURES
expressiveness
0..3
0..2
transition
Check
/allEntails*
conditions *
«extensible»
Quickfix
name: String
description: String
body: String
activationCheck
activationIntent
*
*
fixes
* *
name: String
description: String
body: String
OclCondition «extensible»
ConformanceRule
ModelType AttributeValue IntegrityConstraints… …
«from Flex-mm»
Object
Model
for
0..1
for 0..1
entails*
«from Flex-mm»
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 17 / 23
Reified modelling process
Examples
Typed
Intent: ModelRefinement
TransitionMode: Manual
Expressiveness: MultiTyping, MultiInheritance
Extensibility: UntypedObjects, UntypedFeatures
checks: object types
Draft
checks: -
Bounded
checks: value cardinality,
instance cardinality
Well-formed
checks: type of feature values
Strict
checks: integrity constraints
current
Conference {
Author {}
Reviewer /1..*/ {}
}
MODELS :Conference {
amelia :Author :Reviewer {}
lateReviews :Comment {
ref who : amelia;
}
}
1
2
3
4
5
6
7
8
9
10
11
Typed
Draft
Bounded
Well-formed
Strict
Fixes (refinement)
- remove type
- change to Author/Reviewer
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 18 / 23
Reified modelling process
Examples
Feature Types
checks: feature types
Object Types
Cardinalities
checks: value cardinality,
instance cardinality
Free
checks: model types
checks: object types
Value Types
checks: type of feature values
createObjectType
createValueType
createFeat&ValueType
createObject&Feat&ValueType
createFeatType
createObject&FeatTypes
Quick fixes
createModelType
Intent: BottomUp
TransitionMode: Manual
Expressiveness: MultiInheritance
Extensibility: -
updateCardinality
current
Conference {
Author {}
Reviewer /1..*/ {}
}
MODELS :Conference {
amelia :Author :Reviewer {}
lateReviews :Comment {
ref who : amelia;
}
}
1
2
3
4
5
6
7
8
9
10
11
Object Types
Feat. Types
Value Types
Cardinalities
Fixes (bottomup)
- Add new type Comment
Free
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 18 / 23
Our prototype implementation Kite
Kite is an eclipse textual editor for flexible modelling
Based on EMF (for inter-operability), Xtext, and EVL (constraints)
1 2
35
6
4
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 19 / 23
Conclusions
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 20 / 23
Summary
Flexibility in modelling tools is useful in many scenarios
List of requirements for flexible modelling tools:
flexible typing
explicit modelling process
Initial proposal and implementation
In the paper: review of existing flexible (meta-)modelling tools
support for flexibility is only partial
big gap on explicit modelling processes (opportunity!)
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 21 / 23
Next steps
Improving Kite, e.g., DSL to define modelling processes
Integration with further model management languages
Extend reasoners to work with non-fully conformant models
Explore others aspects of flexibility, like concrete syntax
Meta-object protocols to extend meta-modelling facilities
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 22 / 23
On the Quest for Flexible Modelling
Esther Guerra, Juan de Lara
esther.guerra@uam.es
MISO - Modelling & Software Engineering Research Group (miso.es)
Universidad Aut´onoma de Madrid (Spain)
Comments? Questions?
Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 23 / 23

More Related Content

What's hot

OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsShanmuganathan C
 
Reference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based DatasetsReference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based DatasetsMarkus Scheidgen
 
How to do code review and use analysis tool in software development
How to do code review and use analysis tool in software developmentHow to do code review and use analysis tool in software development
How to do code review and use analysis tool in software developmentMitosis Technology
 
Comparison of Meta-Modeling Languages
Comparison  of Meta-Modeling LanguagesComparison  of Meta-Modeling Languages
Comparison of Meta-Modeling Languagesheigoo
 
Interoperability of Meta-Modeling Tools
Interoperability of Meta-Modeling ToolsInteroperability of Meta-Modeling Tools
Interoperability of Meta-Modeling Toolsheigoo
 
Mapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling ToolsMapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling Toolsheigoo
 
UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1
UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1 UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1
UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1 Knowledge Center Computer
 

What's hot (9)

OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
 
Reference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based DatasetsReference Representation in Large Metamodel-based Datasets
Reference Representation in Large Metamodel-based Datasets
 
How to do code review and use analysis tool in software development
How to do code review and use analysis tool in software developmentHow to do code review and use analysis tool in software development
How to do code review and use analysis tool in software development
 
Topic 1 PBO
Topic 1 PBOTopic 1 PBO
Topic 1 PBO
 
Comparison of Meta-Modeling Languages
Comparison  of Meta-Modeling LanguagesComparison  of Meta-Modeling Languages
Comparison of Meta-Modeling Languages
 
Interoperability of Meta-Modeling Tools
Interoperability of Meta-Modeling ToolsInteroperability of Meta-Modeling Tools
Interoperability of Meta-Modeling Tools
 
Mapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling ToolsMapping-Based Exchange of Models between Meta-Modeling Tools
Mapping-Based Exchange of Models between Meta-Modeling Tools
 
UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1
UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1 UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1
UGC-NET, GATE and all IT Companies Interview C++ Solved Questions PART - 1
 
An introduction to automated analysis of feature models through propositional...
An introduction to automated analysis of feature models through propositional...An introduction to automated analysis of feature models through propositional...
An introduction to automated analysis of feature models through propositional...
 

Similar to kite

Requirements-Collector: Automating Requirements Specification from Elicitatio...
Requirements-Collector: Automating Requirements Specification from Elicitatio...Requirements-Collector: Automating Requirements Specification from Elicitatio...
Requirements-Collector: Automating Requirements Specification from Elicitatio...Sebastiano Panichella
 
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 UpdatesNaoki (Neo) SATO
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringJordi Cabot
 
Large Language Models Bootcamp
Large Language Models BootcampLarge Language Models Bootcamp
Large Language Models BootcampData Science Dojo
 
Generative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptxGenerative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptxSri Ambati
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-oplbergmans
 
The Object Model
The Object Model  The Object Model
The Object Model yndaravind
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringJordi Cabot
 
MLFlow: Platform for Complete Machine Learning Lifecycle
MLFlow: Platform for Complete Machine Learning Lifecycle MLFlow: Platform for Complete Machine Learning Lifecycle
MLFlow: Platform for Complete Machine Learning Lifecycle Databricks
 
Accessibility and Metadata
Accessibility and MetadataAccessibility and Metadata
Accessibility and Metadataliddy
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
A comprehensive guide to prompt engineering.pdf
A comprehensive guide to prompt engineering.pdfA comprehensive guide to prompt engineering.pdf
A comprehensive guide to prompt engineering.pdfJamieDornan2
 

Similar to kite (20)

24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
24 Reasons Why Variability Models Are Not Yet Universal (24RWVMANYU)
 
Requirements-Collector: Automating Requirements Specification from Elicitatio...
Requirements-Collector: Automating Requirements Specification from Elicitatio...Requirements-Collector: Automating Requirements Specification from Elicitatio...
Requirements-Collector: Automating Requirements Specification from Elicitatio...
 
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software Engineering
 
Imhotep
ImhotepImhotep
Imhotep
 
Large Language Models Bootcamp
Large Language Models BootcampLarge Language Models Bootcamp
Large Language Models Bootcamp
 
Generative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptxGenerative AI Masterclass - Model Risk Management.pptx
Generative AI Masterclass - Model Risk Management.pptx
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-op
 
The Object Model
The Object Model  The Object Model
The Object Model
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Bootcamp_AIAppsUCSD.pptx
Bootcamp_AIAppsUCSD.pptxBootcamp_AIAppsUCSD.pptx
Bootcamp_AIAppsUCSD.pptx
 
Bootcamp_AIApps.pdf
Bootcamp_AIApps.pdfBootcamp_AIApps.pdf
Bootcamp_AIApps.pdf
 
Bootcamp_AIApps.pdf
Bootcamp_AIApps.pdfBootcamp_AIApps.pdf
Bootcamp_AIApps.pdf
 
MLFlow: Platform for Complete Machine Learning Lifecycle
MLFlow: Platform for Complete Machine Learning Lifecycle MLFlow: Platform for Complete Machine Learning Lifecycle
MLFlow: Platform for Complete Machine Learning Lifecycle
 
Sw Software Design
Sw Software DesignSw Software Design
Sw Software Design
 
Accessibility and Metadata
Accessibility and MetadataAccessibility and Metadata
Accessibility and Metadata
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
A comprehensive guide to prompt engineering.pdf
A comprehensive guide to prompt engineering.pdfA comprehensive guide to prompt engineering.pdf
A comprehensive guide to prompt engineering.pdf
 

More from miso_uam

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

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
 
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
 

Recently uploaded

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 

Recently uploaded (20)

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 

kite

  • 1. On the Quest for Flexible Modelling Esther Guerra, Juan de Lara MISO - Modelling & Software Engineering Research Group (miso.es) Universidad Aut´onoma de Madrid (Spain) Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 1 / 23
  • 2. Motivation Diverse nature of modelling, ranging: from informal (e.g., for discussion) to fully formal (e.g., for code generation) Most modelling tools only serve one of these extreme purposes: create informal models or diagrams (imprecise) build models fully conformant to the modelling language (rigid) MDE tools on the rigid side: it hinders a wider adoption of MDE unnecessarily complex solutions to some scenarios Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 2 / 23
  • 3. Contribution Our claim: modelling tools need further flexibility cover different stages, purposes, and approaches explicit modelling process and conformance rules In this presentation: requirements for flexible modelling tools application scenarios our proposal: meta-modelling language + explicit modelling process the Kite meta-modelling framework Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 3 / 23
  • 4. Requirements and Scenarios Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 4 / 23
  • 5. Requirements and scenarios R1: Configurable inconsistency tolerance R1: The user should be able to relax the model conformance rules. Possibility to enable/disable: cardinality and integrity constraints type checking of field values objects with an abstract type objects with a non-existing type Inconsistency tolerance rigid freeconfigurable typing #instances cardinality constraints R1 Generalization multiple inheritance object- level R4 gexplicitEsther Guerra On the Quest for Flexible Modelling MoDELS 2018 5 / 23
  • 6. Requirements and scenarios R1: Configurable inconsistency tolerance R1: The user should be able to relax the model conformance rules. Scenarios: model life-cycle: from less to more strict rules model migration, meta-model evolution: incorrect models will “load” meta-model testing: partial, incorrect test models test-driven meta-model development: non-existing types and features Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 5 / 23
  • 7. Requirements and scenarios R2: Information extension R2: The user should be able to dis(allow) information extension. Possibility to have (or not): objects with no type (it is type-safe) typed objects with fields not in the object type Inconsistency tolerance rigid freeconfigurable typing #instances cardinality constraints R1 Information extension untyped objects untyped features R2 GeneralizationR4 ProR5 Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 6 / 23
  • 8. Requirements and scenarios R2: Information extension R2: The user should be able to dis(allow) information extension. Scenarios: data injection: no meta-model upfront language extension: emergent features as untyped elements auxiliary computation elements: flags, clocks... as untyped elements language creation: creating types from untyped elements Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 6 / 23
  • 9. Requirements and scenarios R3: Configurable classification relation R3: The user should be able to configure the classification relation. Possibility to enable/disable: dynamic, multiple typing creation and a-posteriori types multiple meta-levels Modelling tools typically support: single, static typing creation types two meta-levels rmation ension untyped features Classification dynamicity static dynamic levels 2level multilevel #classifiers single-c multiple-c classification time creation a-posteriori #model types single-m multiple-m R3 Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 7 / 23
  • 10. Requirements and scenarios R3: Configurable classification relation R3: The user should be able to configure the classification relation. Scenarios: reuse of model operations: by allowing multiple typing OO model«Container» * cl Package Class creation type applicable to Element name: String * pck Container * cnt :Package name=“org” :Package name=“people” :Class name=“Person” Graph MM OO MM defined over operation flatten (Container c) = c.cnt… ti fl «Container» «Leaf» * lf Leaf a posteriori type joint instantiation of sets of classes: e.g., used in ontologies multi-level modelling: by allowing multiple meta-levels Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 7 / 23
  • 11. Requirements and scenarios R4: Configurable generalisation relation R4: The user should be able to configure the generalisation relation. Possibility to enable/disable: multiple inheritance generalisation between objects tolerance rigid freeconfigurable typing #instances cardinality constraint Generalization multiple inheritance object- level R4 exp config Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 8 / 23
  • 12. Requirements and scenarios R4: Configurable generalisation relation R4: The user should be able to configure the generalisation relation. Scenarios: model libraries: reusable by object inheritance Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 8 / 23
  • 13. Requirements and scenarios R5: Explicit and configurable modelling process R5: The tool should allow defining and enacting modelling processes. Modelling processes: phases, conformance rules order of object creation current modelling phase manual automatic process intent meta-model creation (bottom-up, top-down, blended) model creation Inconsistency tolerance rigid freeconfigurable typing #instances cardinality constraints R1 Information extension untyped objects untyped features R2 d sta levels 2level multilevel #classifiers single-c multiple-c R3 Generalization multiple inheritance object- level R4 modelling process generic domain- specific state change manual automatic process intent bottom-up top-down blended Process explicit configurable R5 model refinement Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 9 / 23
  • 14. Requirements and scenarios R5: Explicit and configurable modelling process R5: The tool should allow defining and enacting modelling processes. Scenarios: transition from informal to formal modelling modelling guidelines: e.g., in UML, classes first Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 9 / 23
  • 15. Requirements and scenarios R6: Process-aware extensible assistance R6: Fixes and refactorings may depend on the process intent. For example, given a model error: bottom-up fixes modify the meta-model top-down fixes modify the model domain-specific fixes ree ality constraints Information extension untyped objects untyped features R2 Classification dynamicity static dynamic levels 2level multilevel #classifiers single-c multiple-c classification time creation a-poste R3 modelling process generic domain- specific state change manual automatic process intent bottom-up top-down blended Process explicit configurable R5 model refinement assistance extensible Process R6 Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 10 / 23
  • 16. Requirements and scenarios R6: Process-aware extensible assistance R6: Fixes and refactorings may depend on the process intent. Scenarios: model refinement: model fixes and refactorings live meta-model/model co-evolution: model fixes and refactorings bottom-up meta-modelling: meta-model fixes recommendation systems Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 10 / 23
  • 17. Our Proposal Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 11 / 23
  • 18. Architecture meta-modelling language for flexible modelling explicit modelling process model model model meta-model for flexible modelling «conf. to» (linguistic) «conf. to» (onto.) «conf. to» (onto.) modelling process meta-model «conf. to» (linguistic) model «conf. to» (ontologic) modelling processmodel ecosystem process supervisor current phase configurable model validator configures feedback fixeschecks check selector fix selector selects selects «extensible» fixfixfix checkcheckcheck phase 1 phase 2 phase 3 phase 4 Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 12 / 23
  • 19. Meta-modelling language Basic modelling elements (R3, R4) Support for multiple levels (one class to represent types and instances) Models and objects can have features and constraints Instantiation cardinality vs Value cardinality References can have several targets, at any level Generalization at any meta-level (relation Object.super) Model Object Feature TypedElement Featured Element ValuedElement name: String lbound: int ubound: int lbound_v: int ubound_v: int Attribute Reference features * * objects * super Target *to object Integrity Constraint name: String body: String context Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
  • 20. Meta-modelling language Basic modelling elements (R3, R4) Support for multiple levels (one class to represent types and instances) Models and objects can have features and constraints Instantiation cardinality vs Value cardinality References can have several targets, at any level Generalization at any meta-level (relation Object.super) Model Object Feature TypedElement Featured Element ValuedElement name: String lbound: int ubound: int lbound_v: int ubound_v: int Attribute Reference features * * objects * super Target *to object Integrity Constraint name: String body: String context Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
  • 21. Meta-modelling language Basic modelling elements (R3, R4) Support for multiple levels (one class to represent types and instances) Models and objects can have features and constraints Instantiation cardinality vs Value cardinality References can have several targets, at any level Generalization at any meta-level (relation Object.super) Model Object Feature TypedElement Featured Element ValuedElement name: String lbound: int ubound: int lbound_v: int ubound_v: int Attribute Reference features * * objects * super Target *to object Integrity Constraint name: String body: String context Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
  • 22. Meta-modelling language Basic modelling elements (R3, R4) Support for multiple levels (one class to represent types and instances) Models and objects can have features and constraints Instantiation cardinality vs Value cardinality References can have several targets, at any level Generalization at any meta-level (relation Object.super) Model Object Feature TypedElement Featured Element ValuedElement name: String lbound: int ubound: int lbound_v: int ubound_v: int Attribute Reference features * * objects * super Target *to object Integrity Constraint name: String body: String context Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
  • 23. Meta-modelling language Basic modelling elements (R3, R4) Support for multiple levels (one class to represent types and instances) Models and objects can have features and constraints Instantiation cardinality vs Value cardinality References can have several targets, at any level Generalization at any meta-level (relation Object.super) Model Object Feature TypedElement Featured Element ValuedElement name: String lbound: int ubound: int lbound_v: int ubound_v: int Attribute Reference features * * objects * super Target *to object Integrity Constraint name: String body: String context Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 13 / 23
  • 24. Meta-modelling language Flexible typing (R1, R2, R3) Explicit typing relation Zero, one or more typings for an instance Types can be assigned at creation time, or later Re-typing (preserving the instance identity) * otypingsModel Typing Object Typing Feature Typing TypedElementTyping Featured Typing *ftypings type instance Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 14 / 23
  • 25. Meta-modelling language Examples 1 Conference { 2 Author {} 3 Reviewer /1..∗/ {} 4 } 5 6 MODELS :Conference /0..0/ { 7 amelia :Author :Reviewer {} 8 lateReviews { 9 ref who = amelia; 10 } 11 } Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
  • 26. Meta-modelling language Examples 1 Conference { 2 Author {} 3 Reviewer /1..∗/ {} −−> instantiation cardinality 4 } 5 6 MODELS :Conference /0..0/ { −−> instantiation cardinality 7 amelia :Author :Reviewer {} 8 lateReviews { 9 ref who = amelia; 10 } 11 } Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
  • 27. Meta-modelling language Examples 1 Conference { 2 Author {} 3 Reviewer /1..∗/ {} 4 } 5 6 MODELS :Conference /0..0/ { 7 amelia :Author :Reviewer {} −−> object with multiple types 8 lateReviews { 9 ref who = amelia; 10 } 11 } Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
  • 28. Meta-modelling language Examples 1 Conference { 2 Author {} 3 Reviewer /1..∗/ {} 4 } 5 6 MODELS :Conference /0..0/ { 7 amelia :Author :Reviewer {} 8 lateReviews { −−> object with no types 9 ref who = amelia; 10 } 11 } Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
  • 29. Meta-modelling language Examples 1 ArtistTypes { 2 Singer { 3 att name : String; 4 att stageName : String; 5 } 6 } 7 8 SomeMusicians :ArtistTypes { 9 tina :Singer { 10 att name = ”Anna Mae Bullock”; 11 att stageName = ”Tina Turner”; 12 } 13 joaquin :Singer { 14 att realName (:name :stageName) = ”Joaquin Pascual”; 15 } 16 } Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 15 / 23
  • 30. Reified modelling process Explicit modelling process (R5, R6) Explicit modelling process: phases, checks, transitions checks: predefined conformance rules, or custom-made ocl conditions transitions: manual or automatic, may define ocl conditions Process intent: refinement, top-down, bottom-up, free Quick fixes can be filtered by process intent Conformance rules and quickfixes can be extended by users ModellingProcess Phase name: String phases * name: String «enum» Intent BOTTOMUP TOPDOWN MODELREFINEMENT FREE intent initial Transition out * next «enum» TransitionMode AUTOMATIC MANUAL «enum» Expressiveness MULTITYPING MULTILEVEL MULTIINHERITANCE «enum» Extensibility UNTYPEDOBJECTS UNTYPEDFEATURES expressiveness 0..3 0..2 transition Check /allEntails* conditions * «extensible» Quickfix name: String description: String body: String activationCheck activationIntent * * fixes * * name: String description: String body: String OclCondition «extensible» ConformanceRule ModelType AttributeValue IntegrityConstraints… … «from Flex-mm» Object Model for 0..1 for 0..1 entails* «from Flex-mm» Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
  • 31. Reified modelling process Explicit modelling process (R5, R6) Explicit modelling process: phases, checks, transitions checks: predefined conformance rules, or custom-made ocl conditions transitions: manual or automatic, may define ocl conditions Process intent: refinement, top-down, bottom-up, free Quick fixes can be filtered by process intent Conformance rules and quickfixes can be extended by users ModellingProcess Phase name: String phases * name: String «enum» Intent BOTTOMUP TOPDOWN MODELREFINEMENT FREE intent initial Transition out * next «enum» TransitionMode AUTOMATIC MANUAL «enum» Expressiveness MULTITYPING MULTILEVEL MULTIINHERITANCE «enum» Extensibility UNTYPEDOBJECTS UNTYPEDFEATURES expressiveness 0..3 0..2 transition Check /allEntails* conditions * «extensible» Quickfix name: String description: String body: String activationCheck activationIntent * * fixes * * name: String description: String body: String OclCondition «extensible» ConformanceRule ModelType AttributeValue IntegrityConstraints… … «from Flex-mm» Object Model for 0..1 for 0..1 entails* «from Flex-mm» Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
  • 32. Reified modelling process Explicit modelling process (R5, R6) Explicit modelling process: phases, checks, transitions checks: predefined conformance rules, or custom-made ocl conditions transitions: manual or automatic, may define ocl conditions Process intent: refinement, top-down, bottom-up, free Quick fixes can be filtered by process intent Conformance rules and quickfixes can be extended by users ModellingProcess Phase name: String phases * name: String «enum» Intent BOTTOMUP TOPDOWN MODELREFINEMENT FREE intent initial Transition out * next «enum» TransitionMode AUTOMATIC MANUAL «enum» Expressiveness MULTITYPING MULTILEVEL MULTIINHERITANCE «enum» Extensibility UNTYPEDOBJECTS UNTYPEDFEATURES expressiveness 0..3 0..2 transition Check /allEntails* conditions * «extensible» Quickfix name: String description: String body: String activationCheck activationIntent * * fixes * * name: String description: String body: String OclCondition «extensible» ConformanceRule ModelType AttributeValue IntegrityConstraints… … «from Flex-mm» Object Model for 0..1 for 0..1 entails* «from Flex-mm» Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
  • 33. Reified modelling process Explicit modelling process (R5, R6) Explicit modelling process: phases, checks, transitions checks: predefined conformance rules, or custom-made ocl conditions transitions: manual or automatic, may define ocl conditions Process intent: refinement, top-down, bottom-up, free Quick fixes can be filtered by process intent Conformance rules and quickfixes can be extended by users ModellingProcess Phase name: String phases * name: String «enum» Intent BOTTOMUP TOPDOWN MODELREFINEMENT FREE intent initial Transition out * next «enum» TransitionMode AUTOMATIC MANUAL «enum» Expressiveness MULTITYPING MULTILEVEL MULTIINHERITANCE «enum» Extensibility UNTYPEDOBJECTS UNTYPEDFEATURES expressiveness 0..3 0..2 transition Check /allEntails* conditions * «extensible» Quickfix name: String description: String body: String activationCheck activationIntent * * fixes * * name: String description: String body: String OclCondition «extensible» ConformanceRule ModelType AttributeValue IntegrityConstraints… … «from Flex-mm» Object Model for 0..1 for 0..1 entails* «from Flex-mm» Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 16 / 23
  • 34. Reified modelling process Further configuration options (R5, R6) Configuration of the meta-modelling language: expresiveness: multiple typing, multiple levels, multiple inheritance extensibility: untyped objects, untyped features ModellingProcess Phase name: String phases * name: String «enum» Intent BOTTOMUP TOPDOWN MODELREFINEMENT FREE intent initial Transition out * next «enum» TransitionMode AUTOMATIC MANUAL «enum» Expressiveness MULTITYPING MULTILEVEL MULTIINHERITANCE «enum» Extensibility UNTYPEDOBJECTS UNTYPEDFEATURES expressiveness 0..3 0..2 transition Check /allEntails* conditions * «extensible» Quickfix name: String description: String body: String activationCheck activationIntent * * fixes * * name: String description: String body: String OclCondition «extensible» ConformanceRule ModelType AttributeValue IntegrityConstraints… … «from Flex-mm» Object Model for 0..1 for 0..1 entails* «from Flex-mm» Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 17 / 23
  • 35. Reified modelling process Examples Typed Intent: ModelRefinement TransitionMode: Manual Expressiveness: MultiTyping, MultiInheritance Extensibility: UntypedObjects, UntypedFeatures checks: object types Draft checks: - Bounded checks: value cardinality, instance cardinality Well-formed checks: type of feature values Strict checks: integrity constraints current Conference { Author {} Reviewer /1..*/ {} } MODELS :Conference { amelia :Author :Reviewer {} lateReviews :Comment { ref who : amelia; } } 1 2 3 4 5 6 7 8 9 10 11 Typed Draft Bounded Well-formed Strict Fixes (refinement) - remove type - change to Author/Reviewer Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 18 / 23
  • 36. Reified modelling process Examples Feature Types checks: feature types Object Types Cardinalities checks: value cardinality, instance cardinality Free checks: model types checks: object types Value Types checks: type of feature values createObjectType createValueType createFeat&ValueType createObject&Feat&ValueType createFeatType createObject&FeatTypes Quick fixes createModelType Intent: BottomUp TransitionMode: Manual Expressiveness: MultiInheritance Extensibility: - updateCardinality current Conference { Author {} Reviewer /1..*/ {} } MODELS :Conference { amelia :Author :Reviewer {} lateReviews :Comment { ref who : amelia; } } 1 2 3 4 5 6 7 8 9 10 11 Object Types Feat. Types Value Types Cardinalities Fixes (bottomup) - Add new type Comment Free Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 18 / 23
  • 37. Our prototype implementation Kite Kite is an eclipse textual editor for flexible modelling Based on EMF (for inter-operability), Xtext, and EVL (constraints) 1 2 35 6 4 Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 19 / 23
  • 38. Conclusions Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 20 / 23
  • 39. Summary Flexibility in modelling tools is useful in many scenarios List of requirements for flexible modelling tools: flexible typing explicit modelling process Initial proposal and implementation In the paper: review of existing flexible (meta-)modelling tools support for flexibility is only partial big gap on explicit modelling processes (opportunity!) Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 21 / 23
  • 40. Next steps Improving Kite, e.g., DSL to define modelling processes Integration with further model management languages Extend reasoners to work with non-fully conformant models Explore others aspects of flexibility, like concrete syntax Meta-object protocols to extend meta-modelling facilities Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 22 / 23
  • 41. On the Quest for Flexible Modelling Esther Guerra, Juan de Lara esther.guerra@uam.es MISO - Modelling & Software Engineering Research Group (miso.es) Universidad Aut´onoma de Madrid (Spain) Comments? Questions? Esther Guerra On the Quest for Flexible Modelling MoDELS 2018 23 / 23