AN OVERVIEW OF MDE
RESEARCH ACTIVITIES IN
THE MISO GROUP
Computer Science Department
Universidad Autónoma de Madrid (Spain)
http://miso.es
@miso_uam
Esther Guerra, Juan de Lara
WHERE WE COME FROM
2
THE AUTONOMOUS
UNIVERSITY OF MADRID
3
Universidad Autónoma de Madrid
• Established in 1968
• North part of Madrid (campus Cantoblanco)
• One of the top universities in Spain
• >30000 students
• “Excellence” campus with CSIC (Spanish
Research Council)
Computer Science and
Telecommunication Engineering
• Created in 1992
• 96 full time professors
• Joint diploma Comp.Sci.-Maths
THE MISO GROUP
Modelling and Software Engineering Research Group
Professors:
• Juan de Lara, PhD
• Esther Guerra, PhD
• Elena Gómez, PhD
Researchers:
• Jesús Sánchez, PhD (external)
• Jesús Juan López, PhD (external)
• Antonio Garmendia (FPI)
• Pablo Gómez (research associate)
• Mario González (research associate)
• Ángel Mora (FPU)
• Javier Palomares (research associate)
• Sara Pérez (research associate)
• Santiago Jácome (U. Fuerzas Armadas, Ecuador)
4
http://miso.es
OUR RESEARCH:
MODEL DRIVEN ENGINEERING
Domain-Specific Languages
Model-Transformations
(Meta-)Modelling
Flexibility
Scalability
Reuse
Mobile apps
Open data
Social networks
Streaming data applications
5
AreasConcernsApplications
SOME BITS OF OUR
RESEARCH FOR TODAY
(Meta-)Modelling
• Multi-level modelling
• A-posteriori typing
• Modelling through social networks
Domain-Specific Languages
• Active DSLs
• DSLs by example
Transformations
• Verification
• Reuse
6
(Meta-)
modelling
7
MULTI-LEVEL MODELLING (1/2)
8
Using more than two meta-levels at the same time
Reduces accidental complexity
Potency to characterize instances beyond the immediate
meta-level below
ProductType@2
VAT@1: double
price: double
Book: ProductType
VAT=18.0
price=10.0
mobyDick: Book
vs
(class Product becomes
useless: accidental complexity)
Atkinson, Kühne. 2002. Rearchitecting the UML
infrastructure. ACM Tr. Model. Comput. Simul.
12, 4 (2002), 290–321.
MULTI-LEVEL MODELLING (2/2)
Tooling
• MetaDepth (http://metadepth.org)
• Textual modelling, command-line
• Integrated with the Epsilon model
management languages
Relevance in practice
• Patterns whose occurrence signal a “multi-level” smell
• Analysis of OMG standards, meta-model repositories (400+ MMs)
• Pervasive in some domains (sw architecture, enterprise/process
modelling)
• Relatively frequent in OMG specifications (over 35%)
9
de Lara, Guerra. Deep Meta-modelling with MetaDepth. TOOLS (48) 2010: 1-20
de Lara, Guerra, Sánchez Cuadrado. When and How to Use Multilevel Modelling.
ACM Trans. Softw. Eng. Methodol. 24(2): 12:1-12:46 (2014)
Model Ecommerce@2{
Node ProductType {
VAT@1: double;
price: double;
}
Constructive typing
• Creation of objects and classification
are inseparable
Lacks flexibility
• Objects cannot change their type at
run-time (and retain its identity)
Hinders reuse
• An operation defined for a meta-model
cannot be used for another one
APOSTERIORI
TYPING
10
Task
start: Date
duration: int
review: Task
start= 8/5/15
duration=30
creation «instance of»
Tasks meta-model
model
Constructive typing
• Creation of objects and classification
are inseparable
Lacks flexibility
• Objects cannot change their type at
run-time (and retain its identity)
Hinders reuse
• An operation defined for a meta-model
cannot be used for another one
APOSTERIORI
TYPING
11
review: Task
start= 8/5/15
duration=10
model
Task
start: Date
duration: int
review: Task
start= 8/5/15
duration=30
creation «instance of»
Tasks meta-model
model
Constructive typing
• Creation of objects and classification
are inseparable
Lacks flexibility
• Objects cannot change their type at
run-time (and retain its identity)
Hinders reuse
• An operation defined for a meta-model
cannot be used for another one
APOSTERIORI
TYPING
12
Task
start: Date
duration: int
review: Task
start= 8/5/15
duration=30
creation «instance of»
Tasks meta-model
model
review: Task
start= 8/5/15
duration=0
model
Constructive typing
• Creation of objects and classification
are inseparable
Lacks flexibility
• Objects cannot change their type at
run-time (and retain its identity)
Hinders reuse
• An operation defined for a meta-model
cannot be used for another one
A POSTERIORI
TYPING
13
Task
start: Date
duration: int
review: Task
start= 8/5/15
duration=30
creation «instance of»
Tasks meta-model
model
review: Milestone
start= 8/5/15
duration=0
model
Constructive typing
• Creation of objects and classification
are inseparable
Lacks flexibility
• Objects cannot change their type at
run-time (and retain its identity)
Hinders reuse
• An operation defined for a meta-model
cannot be used for another one
A POSTERIORI
TYPING
14
Task
start: Date
duration: int
review: Task
start= 8/5/15
duration=30
creation «instance of»
Tasks meta-model
model
Measurable
quantity: int
Measuring MM
review: Milestone
start= 8/5/15
duration=0
model
AP TYPING MOTIVATION:
REUSE
15
Measurable
quantity: int
Schedulable
date: Date
review: Task
Scheduling MM Measuring MM
model
«instance of» «instance of»
start= 8/5/15
duration= 30
name= “rev”
«Schedulable,Measurable»
*
*
res
Task
start: Date
duration: int
name: String
Resource
Person
owner
assigned
1..*
creation meta-model
role meta-models
creation
«instance of»
a-posteriori typingcreation typing
operation
typing of operation
applicable to
16
AP TYPING MOTIVATION:
FLEXIBLE REUSE
*topics
*
*
res
Task
start: Date
duration: int
name: String
Tasks meta-model (constructive types)
Resource
Person
owner
assigned
1..* 1..*
0..3
reviewsArticle
title: String
Conference meta-model (dynamic types)
Reviewer
Authorauthors
Topic
desc: String
«Author»
p2: Person
«Reviewer»
p1: Person
«Article»
r: Resource
:owner
t1:Task
start: 8/5/15
duration: 30
name: “rev”
:res
:assigned
«Author,Reviewer»
p2: Person
«Reviewer»
p1: Person
«Article»
r: Resource
:owner
t1:Task
start: 8/5/15
duration: 30
name: “rev”
:res
:assigned
«Author»
p3: Person
«Article»
s: Resource
:owner
t2:Task
start: 9/5/15
duration: 30
name: “rev”
:res
:assigned
the model
changes
and gets
retyped
creation «instance of»
model
• A Person (constructive type) is only a Reviewer (a posteriori type)
when some condition is met.
A more flexible typing mechanism for MDE
Decouple instantiation from classification
• Interfaces, Roles in role-based programming languages
Allow dynamic typing and multiple classifiers for objects
Type and instance-level reclassification specifications
• Transformation by reclassification
• Flexible reuse of model management operations
Prototype implementation in our MetaDepth tool
APOSTERIORI TYPING:
CONTRIBUTIONS
17
de Lara, Guerra. A Posteriori Typing for Model-Driven Engineering: Concepts, Analysis,
and Applications. ACM Trans. Softw. Eng. Methodol. 25(4): 31:1-31:60 (2017)
MODELLING THROUGH
SOCIAL NETWORKS
Increasing use of social networks
• Telegram, Twitter
Use them for collaborative modelling
• Chatbot
• Interprets natural language
• Creates a meta-model automatically
18
https://saraperezsoler.github.io/
ModellingBot/
Perez-Soler, Guerra, de Lara, Jurado. The Rise of the (Modelling) Bots: Towards Assisted
Modelling via Social Networks. Proc ASE’2017.
Perez-Soler, Guerra, de Lara. Assisted modelling over social networks with SOCIO. Tool demo at
MODELS’17.
19
DSLs
DSLs BY EXAMPLE
A way to make meta-modelling/DSLs development more accesible
• Domain experts
• Foster their active participation in DSL development
20
Iterative, interactive process
• Drawings are parsed into an
internal representation
• Recognition of spatial relations
(reified as associations)
• Meta-model induction
MetaBup tool
(http://miso.es/tools/metaBUP.html)
21
DSLs BY EXAMPLE
: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
López-Fernández, Sánchez Cuadrado,
Guerra, de Lara. Example-driven meta-
model development. SoSyM 14(4):
1323-1347 (2015)
ACTIVE DSLs
Move beyond current scenarios for DSL use
today
• Use in mobility
• Geolocation
• Context awareness
• Collaboration
• External interaction
New kinds of DSLs
• Geo, Open, Contextual, Active
DSL-Comet
• Modelling iOS devices&Eclipse
• Available at app store
22
Vaquero, Palomares, Guerra, de Lara. Active DSLs: making every mobile user a modeller.
Proc. MODELS’2017.
https://diagrameditorserver.herokuapp.com/
23
Trafos
TRANSFORMATION ANALYSIS
24
J. Sánchez Cuadrado, E. Guerra, J. de Lara. Static analysis of model transformations.
IEEE Trans. Software Eng. 43(9): 868-897 (2017)
TRANSFORMATION ANALYSIS BY
ADVANCING CONSTRAINTS
25
Combined with constraint solving
• Ensure strong executability
• Characterize classes of target models
• Contract-based transformation development
• Property-based testing
• Bi-directional transformations
J. Sánchez Cuadrado, E. Guerra, J. de Lara, R. Clariso, J. Cabot. Translating target to source
constraints in model-to-model transformations. Proc. IEEE/ACM MODELS’2017.
CORRECTNESS ANALYSIS:
SATISFACTION OF TARGET
CONSTRAINTS
26
Is there some Factory model, whose equivalent Petri net violates constraint
boundedTok?
module factory2pn;
create OUT : PN from IN : FAC;
rule Factory2PN2 {
from f :FAC!Factory(f.capacity<=0)
to pn : PN!PetriNet (
elems <- f.conveyors->
union(f.machines),
bound <- 1
)
}…
ATL Transformation
Yes (bound=1)
27
CORRECTNESS ANALYSIS:
SATISFACTION OF TARGET
CONSTRAINTS
CHARACTERIZE CLASSES
OF TARGET MODELS
28
Is there some Factory model, whose equivalent Petri net is of type state
machine?
ATL
29
Is there some Factory model, whose equivalent Petri net is of type state
machine?
ATL
Transition.allInstances()->forAll(t |
TPArc.allInstances()->one(arc | arc.input = t) and
PTArc.allInstances()->one(arc | arc.output = t))
CHARACTERIZE CLASSES
OF TARGET MODELS
Yes (bound = 2)
30
CHARACTERIZE CLASSES
OF TARGET MODELS
Moreover, we obtain an OCL condition characterizing the class of
Factory models leading to state machine Petri nets
REUSABILITY:
CONCEPTS
31
Taking ideas of generic programming
Source
Concept
Generic
M2M transf.
(template)
from to
Concrete
source MM
binding
Instantiated
M2M transf.
from to
instantiation1
Source
model
conforms
Target
model
2
conforms
execution
Definition
Instantiation
Execution
Concrete
target MM
binding1
Target
Concept
REUSABILITY:
CONCEPTS
32
rule class2jclass {
from class : OO!Class
to jclass : Java!JavaClass
( name <- class.name,
extends <- class.superclasses.first() )
}
rule attribute2field {
from att : OO!Attribute
to field : Java!Field
( name <- att.name,
owner <- att.owner,
isPublic <- att.isPublic )
}
JavaClass
name : String
extends
Domain to: meta-model
owner
*
name : String
isPublic : boolean
Field
Class
name : String
superclasses
*
Domain from: concept
owner
*
name : String
isPublic : boolean
Attribute
Binding of concept:
generic transformation (template)
Class  Component
Class.name  Component.name
Class.superclasses  Component.parents
Attribute  Property
Attribute.name  Property.name
Attribute.isPublic  Property.public
Attribute.owner  Property.cprop
Component
parents *
cprop
*
public : boolean
readonly: boolean
Property Port
in : boolean
out: boolean
*
the transformation can be applied
to instances of the Components meta-model
Domain from: meta-model
Components
name : String
NamedElement
cport
Sánchez Cuadrado, Guerra, de Lara. A Component Model for Model
Transformations. IEEE Trans. Software Eng. 40(11): 1042-1060 (2014)
de Lara, Guerra. Towards the flexible reuse of model transformations:
A formal approach based on graph transformation. J. Log. Algebr.
Meth. Program. 83(5-6): 427-458 (2014)
REUSABILITY:
REQUIREMENT MODELS
Typing requirement models (TRMs)
• Models that describe requirements
for meta-models (DRMs)
• Extracted from model-to-model
transformations
• Compatibility model (+DRM=TRM)
• Conformance notion from meta-
models to TRMs
DRMs
• Characterize sets of meta-models
• Named, Anonymous classes
• Uncertainty in cardinalities, fields
33
de Lara, di Rocco, di Ruscio, Guerra, Iovino, Pierantonio, Sánchez Cuadrado. Reusing Model
Transformations Through Typing Requirements Models. FASE 2017: 264-282
THANKS!
Questions?
Esther.Guerra@uam.es
Juan.deLara@uam.es
34
http://www.miso.es
modelling &
software engineering
research group

Miso

  • 1.
    AN OVERVIEW OFMDE RESEARCH ACTIVITIES IN THE MISO GROUP Computer Science Department Universidad Autónoma de Madrid (Spain) http://miso.es @miso_uam Esther Guerra, Juan de Lara
  • 2.
  • 3.
    THE AUTONOMOUS UNIVERSITY OFMADRID 3 Universidad Autónoma de Madrid • Established in 1968 • North part of Madrid (campus Cantoblanco) • One of the top universities in Spain • >30000 students • “Excellence” campus with CSIC (Spanish Research Council) Computer Science and Telecommunication Engineering • Created in 1992 • 96 full time professors • Joint diploma Comp.Sci.-Maths
  • 4.
    THE MISO GROUP Modellingand Software Engineering Research Group Professors: • Juan de Lara, PhD • Esther Guerra, PhD • Elena Gómez, PhD Researchers: • Jesús Sánchez, PhD (external) • Jesús Juan López, PhD (external) • Antonio Garmendia (FPI) • Pablo Gómez (research associate) • Mario González (research associate) • Ángel Mora (FPU) • Javier Palomares (research associate) • Sara Pérez (research associate) • Santiago Jácome (U. Fuerzas Armadas, Ecuador) 4 http://miso.es
  • 5.
    OUR RESEARCH: MODEL DRIVENENGINEERING Domain-Specific Languages Model-Transformations (Meta-)Modelling Flexibility Scalability Reuse Mobile apps Open data Social networks Streaming data applications 5 AreasConcernsApplications
  • 6.
    SOME BITS OFOUR RESEARCH FOR TODAY (Meta-)Modelling • Multi-level modelling • A-posteriori typing • Modelling through social networks Domain-Specific Languages • Active DSLs • DSLs by example Transformations • Verification • Reuse 6
  • 7.
  • 8.
    MULTI-LEVEL MODELLING (1/2) 8 Usingmore than two meta-levels at the same time Reduces accidental complexity Potency to characterize instances beyond the immediate meta-level below ProductType@2 VAT@1: double price: double Book: ProductType VAT=18.0 price=10.0 mobyDick: Book vs (class Product becomes useless: accidental complexity) Atkinson, Kühne. 2002. Rearchitecting the UML infrastructure. ACM Tr. Model. Comput. Simul. 12, 4 (2002), 290–321.
  • 9.
    MULTI-LEVEL MODELLING (2/2) Tooling •MetaDepth (http://metadepth.org) • Textual modelling, command-line • Integrated with the Epsilon model management languages Relevance in practice • Patterns whose occurrence signal a “multi-level” smell • Analysis of OMG standards, meta-model repositories (400+ MMs) • Pervasive in some domains (sw architecture, enterprise/process modelling) • Relatively frequent in OMG specifications (over 35%) 9 de Lara, Guerra. Deep Meta-modelling with MetaDepth. TOOLS (48) 2010: 1-20 de Lara, Guerra, Sánchez Cuadrado. When and How to Use Multilevel Modelling. ACM Trans. Softw. Eng. Methodol. 24(2): 12:1-12:46 (2014) Model Ecommerce@2{ Node ProductType { VAT@1: double; price: double; }
  • 10.
    Constructive typing • Creationof objects and classification are inseparable Lacks flexibility • Objects cannot change their type at run-time (and retain its identity) Hinders reuse • An operation defined for a meta-model cannot be used for another one APOSTERIORI TYPING 10 Task start: Date duration: int review: Task start= 8/5/15 duration=30 creation «instance of» Tasks meta-model model
  • 11.
    Constructive typing • Creationof objects and classification are inseparable Lacks flexibility • Objects cannot change their type at run-time (and retain its identity) Hinders reuse • An operation defined for a meta-model cannot be used for another one APOSTERIORI TYPING 11 review: Task start= 8/5/15 duration=10 model Task start: Date duration: int review: Task start= 8/5/15 duration=30 creation «instance of» Tasks meta-model model
  • 12.
    Constructive typing • Creationof objects and classification are inseparable Lacks flexibility • Objects cannot change their type at run-time (and retain its identity) Hinders reuse • An operation defined for a meta-model cannot be used for another one APOSTERIORI TYPING 12 Task start: Date duration: int review: Task start= 8/5/15 duration=30 creation «instance of» Tasks meta-model model review: Task start= 8/5/15 duration=0 model
  • 13.
    Constructive typing • Creationof objects and classification are inseparable Lacks flexibility • Objects cannot change their type at run-time (and retain its identity) Hinders reuse • An operation defined for a meta-model cannot be used for another one A POSTERIORI TYPING 13 Task start: Date duration: int review: Task start= 8/5/15 duration=30 creation «instance of» Tasks meta-model model review: Milestone start= 8/5/15 duration=0 model
  • 14.
    Constructive typing • Creationof objects and classification are inseparable Lacks flexibility • Objects cannot change their type at run-time (and retain its identity) Hinders reuse • An operation defined for a meta-model cannot be used for another one A POSTERIORI TYPING 14 Task start: Date duration: int review: Task start= 8/5/15 duration=30 creation «instance of» Tasks meta-model model Measurable quantity: int Measuring MM review: Milestone start= 8/5/15 duration=0 model
  • 15.
    AP TYPING MOTIVATION: REUSE 15 Measurable quantity:int Schedulable date: Date review: Task Scheduling MM Measuring MM model «instance of» «instance of» start= 8/5/15 duration= 30 name= “rev” «Schedulable,Measurable» * * res Task start: Date duration: int name: String Resource Person owner assigned 1..* creation meta-model role meta-models creation «instance of» a-posteriori typingcreation typing operation typing of operation applicable to
  • 16.
    16 AP TYPING MOTIVATION: FLEXIBLEREUSE *topics * * res Task start: Date duration: int name: String Tasks meta-model (constructive types) Resource Person owner assigned 1..* 1..* 0..3 reviewsArticle title: String Conference meta-model (dynamic types) Reviewer Authorauthors Topic desc: String «Author» p2: Person «Reviewer» p1: Person «Article» r: Resource :owner t1:Task start: 8/5/15 duration: 30 name: “rev” :res :assigned «Author,Reviewer» p2: Person «Reviewer» p1: Person «Article» r: Resource :owner t1:Task start: 8/5/15 duration: 30 name: “rev” :res :assigned «Author» p3: Person «Article» s: Resource :owner t2:Task start: 9/5/15 duration: 30 name: “rev” :res :assigned the model changes and gets retyped creation «instance of» model • A Person (constructive type) is only a Reviewer (a posteriori type) when some condition is met.
  • 17.
    A more flexibletyping mechanism for MDE Decouple instantiation from classification • Interfaces, Roles in role-based programming languages Allow dynamic typing and multiple classifiers for objects Type and instance-level reclassification specifications • Transformation by reclassification • Flexible reuse of model management operations Prototype implementation in our MetaDepth tool APOSTERIORI TYPING: CONTRIBUTIONS 17 de Lara, Guerra. A Posteriori Typing for Model-Driven Engineering: Concepts, Analysis, and Applications. ACM Trans. Softw. Eng. Methodol. 25(4): 31:1-31:60 (2017)
  • 18.
    MODELLING THROUGH SOCIAL NETWORKS Increasinguse of social networks • Telegram, Twitter Use them for collaborative modelling • Chatbot • Interprets natural language • Creates a meta-model automatically 18 https://saraperezsoler.github.io/ ModellingBot/ Perez-Soler, Guerra, de Lara, Jurado. The Rise of the (Modelling) Bots: Towards Assisted Modelling via Social Networks. Proc ASE’2017. Perez-Soler, Guerra, de Lara. Assisted modelling over social networks with SOCIO. Tool demo at MODELS’17.
  • 19.
  • 20.
    DSLs BY EXAMPLE Away to make meta-modelling/DSLs development more accesible • Domain experts • Foster their active participation in DSL development 20
  • 21.
    Iterative, interactive process •Drawings are parsed into an internal representation • Recognition of spatial relations (reified as associations) • Meta-model induction MetaBup tool (http://miso.es/tools/metaBUP.html) 21 DSLs BY EXAMPLE :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 López-Fernández, Sánchez Cuadrado, Guerra, de Lara. Example-driven meta- model development. SoSyM 14(4): 1323-1347 (2015)
  • 22.
    ACTIVE DSLs Move beyondcurrent scenarios for DSL use today • Use in mobility • Geolocation • Context awareness • Collaboration • External interaction New kinds of DSLs • Geo, Open, Contextual, Active DSL-Comet • Modelling iOS devices&Eclipse • Available at app store 22 Vaquero, Palomares, Guerra, de Lara. Active DSLs: making every mobile user a modeller. Proc. MODELS’2017. https://diagrameditorserver.herokuapp.com/
  • 23.
  • 24.
    TRANSFORMATION ANALYSIS 24 J. SánchezCuadrado, E. Guerra, J. de Lara. Static analysis of model transformations. IEEE Trans. Software Eng. 43(9): 868-897 (2017)
  • 25.
    TRANSFORMATION ANALYSIS BY ADVANCINGCONSTRAINTS 25 Combined with constraint solving • Ensure strong executability • Characterize classes of target models • Contract-based transformation development • Property-based testing • Bi-directional transformations J. Sánchez Cuadrado, E. Guerra, J. de Lara, R. Clariso, J. Cabot. Translating target to source constraints in model-to-model transformations. Proc. IEEE/ACM MODELS’2017.
  • 26.
    CORRECTNESS ANALYSIS: SATISFACTION OFTARGET CONSTRAINTS 26 Is there some Factory model, whose equivalent Petri net violates constraint boundedTok? module factory2pn; create OUT : PN from IN : FAC; rule Factory2PN2 { from f :FAC!Factory(f.capacity<=0) to pn : PN!PetriNet ( elems <- f.conveyors-> union(f.machines), bound <- 1 ) }… ATL Transformation
  • 27.
  • 28.
    CHARACTERIZE CLASSES OF TARGETMODELS 28 Is there some Factory model, whose equivalent Petri net is of type state machine? ATL
  • 29.
    29 Is there someFactory model, whose equivalent Petri net is of type state machine? ATL Transition.allInstances()->forAll(t | TPArc.allInstances()->one(arc | arc.input = t) and PTArc.allInstances()->one(arc | arc.output = t)) CHARACTERIZE CLASSES OF TARGET MODELS
  • 30.
    Yes (bound =2) 30 CHARACTERIZE CLASSES OF TARGET MODELS Moreover, we obtain an OCL condition characterizing the class of Factory models leading to state machine Petri nets
  • 31.
    REUSABILITY: CONCEPTS 31 Taking ideas ofgeneric programming Source Concept Generic M2M transf. (template) from to Concrete source MM binding Instantiated M2M transf. from to instantiation1 Source model conforms Target model 2 conforms execution Definition Instantiation Execution Concrete target MM binding1 Target Concept
  • 32.
    REUSABILITY: CONCEPTS 32 rule class2jclass { fromclass : OO!Class to jclass : Java!JavaClass ( name <- class.name, extends <- class.superclasses.first() ) } rule attribute2field { from att : OO!Attribute to field : Java!Field ( name <- att.name, owner <- att.owner, isPublic <- att.isPublic ) } JavaClass name : String extends Domain to: meta-model owner * name : String isPublic : boolean Field Class name : String superclasses * Domain from: concept owner * name : String isPublic : boolean Attribute Binding of concept: generic transformation (template) Class  Component Class.name  Component.name Class.superclasses  Component.parents Attribute  Property Attribute.name  Property.name Attribute.isPublic  Property.public Attribute.owner  Property.cprop Component parents * cprop * public : boolean readonly: boolean Property Port in : boolean out: boolean * the transformation can be applied to instances of the Components meta-model Domain from: meta-model Components name : String NamedElement cport Sánchez Cuadrado, Guerra, de Lara. A Component Model for Model Transformations. IEEE Trans. Software Eng. 40(11): 1042-1060 (2014) de Lara, Guerra. Towards the flexible reuse of model transformations: A formal approach based on graph transformation. J. Log. Algebr. Meth. Program. 83(5-6): 427-458 (2014)
  • 33.
    REUSABILITY: REQUIREMENT MODELS Typing requirementmodels (TRMs) • Models that describe requirements for meta-models (DRMs) • Extracted from model-to-model transformations • Compatibility model (+DRM=TRM) • Conformance notion from meta- models to TRMs DRMs • Characterize sets of meta-models • Named, Anonymous classes • Uncertainty in cardinalities, fields 33 de Lara, di Rocco, di Ruscio, Guerra, Iovino, Pierantonio, Sánchez Cuadrado. Reusing Model Transformations Through Typing Requirements Models. FASE 2017: 264-282
  • 34.