SlideShare a Scribd company logo
1 of 16
Download to read offline
FORMALLY DEFINING AND ITERATING
INFINITE MODELS
Benoit Combemale
University of Rennes 1, IRISA, France)
Xavier Thirioux
ENSEEIHT, IRIT, France
Benoit Baudry
Inria Rennes, France
Very Large Models
•  Examples:
•  The Eclipse platform: 5M model elements
•  Civil engineering models: 7.3M model elements [Steel et al.,
SoSyM'12]
•  Etc.
•  Existing approaches:
•  Lazy model processing [Tisi et al., MoDELS'11]
•  NoSQL-based approach for model persistence [Pagán et al.,
MoDELS'11]
Context Formally Defining and Iterating Infinite Models, MODELS 2012 2
Models at Runtime
•  Examples:
•  Monitoring systems
•  Adaptive systems
•  Etc.
•  Existing approaches:
•  Models@runtime based on CEP
•  Active Operations [Beaudoux et al., MODELS 2010]
Context Formally Defining and Iterating Infinite Models, MODELS 2012 3
Infinite Model
•  Intuitive Definition:
Models whose the comprehensive set of model elements
is too large to be loaded or even not available
Context
•  Challenges:
•  Identify locally in an OO metamodel sources of infinity in the
conforming models.
•  Understanding the exact meaning of a query over a model for which
the interpretation does not know the size at a given point in time
Formally Defining and Iterating Infinite Models, MODELS 2012 4
•  Current Issues:
•  Implicit and global infinite evaluation of the model
•  Missing a formal and unified semantics (implementation-
independent)
Contributions
Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 5
Let’s specify infinite models explicitly, locally,
formally, and in a implementation-independent way!
Contributions
1.  A MOF extension to locally identify in
metamodels the infinite parts of the
conforming models
2.  A corresponding coinductive semantics for
evaluating such infinite parts with OCL
iterators
Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 6
Example: the UML State Machine
… Small and Terminating Program … Large or Non-Terminating Program
Formally Defining and Iterating Infinite Models, MODELS 2012 7Contributions
s1_1
s2_1
s2_2
s2_m
sn_1
t1
t1
t1
t2 tn-1
...
Let’s imagine the execution trace of a…
s1_1
s2_1
s2_2
s2_m
sn_1
initial
final
t1
t1
t1
t2 tn-1
...
•  Ex1: lazily built at design time while exploring the graph
of reachable states
•  Ex2: continuously built at run time while monitoring the
system execution
How Infinite Models would come?
• Let’s consider:
• Models are (complex) graphs
• Graphs conform to metamodels
• Metamodels are described using a object-
oriented meta-language
Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 8
<<conformsTo>>
*
{ordered}
StateMachine
State Transition
source
target Trigger
initial
InjectEvent
1
1 Event
Occurence
<<enumeration>>
EventKind
endogenous
exogenous
Runtime
Event
kind: EventKind
0..1
cause
outgoing
incoming
Event
eventTo
Process
type1
1
*
*1
1
*
**
*
(Finite)
Trace
SendEvent
* effect
type
1
/nextStates
*
Excerpt from
the UML2
StateMachine
Metamodel
with a Finite
Interpretation
context State::reachableStates : Set(State) derive :
self->asSet()->closure(outgoing->collect(target));
How Infinite Models would come?
Formally Defining and Iterating Infinite Models, MODELS 2012 9Contributions
s1_1
s2_1
s2_2
s2_m
sn_1
t1
t1
t1
t2 tn-1
...s1_1
s2_1
s2_2
s2_m
sn_1
initial
final
t1
t1
t1
t2 tn-1
...
•  IN BREADTH: upper bound of a collection (ex: eventToProcess)
•  IN DEPTH: unfolding of a transitive closure (ex: nextStates)
<<conformsTo>>
StateMachine
State Transition
source
target Trigger
initial
InjectEvent
1
1 Event
Occurence
ω
{ordered}
<<enumeration>>
EventKind
endogenous
exogenous
Runtime
Event
kind: EventKind
0..1
cause
outgoing
incoming
Event
eventTo
Process
type1
1
*
*1
1
*
**
*
/nextStates
*
Excerpt from
the UML2
StateMachine
Metamodel
with an Infinite
Interpretation
(Infinite)
Trace
SendEvent
* effect
type
1
Formally Defining and Iterating Infinite Models, MODELS 2012 10
StateMachine
State Transition
source
target Trigger
initial
InjectEvent
1
1 Event
Occurence
ω
{ordered}
<<enumeration>>
EventKind
endogenous
exogenous
Runtime
Event
kind: EventKind
0..1
cause
outgoing
incoming
Event
eventTo
Process
type1
1
*
*1
1
*
**
*
/nextStates
*
Excerpt from
the UML2
StateMachine
Metamodel
with an Infinite
Interpretation
(Infinite)
Trace
*
{ordered}
SendEvent
* effect
type
StateMachine
State Transition
source
target Trigger
initial
InjectEvent
1
1 Event
Occurence
<<enumeration>>
EventKind
endogenous
exogenous
Runtime
Event
kind: EventKind
0..1
cause
outgoing
incoming
Event
eventTo
Process
type1
1
*
*1
1
*
**
*
(Finite)
Trace
SendEvent
* effect
type
11
s1_1
s2_1
s2_2
s2_m
sn_1
initial
final
t1
t1
t1
t2 tn-1
/nextStates
*
Excerpt from
the UML2
StateMachine
Metamodel
with a Finite
Interpretation
<<conformsTo>><<conformsTo>>
<<conformsTo>>
... s1_1
s2_1
s2_2
s2_m
sn_1
initial
t1
t1
t1
t2 tn-1
...
Finite Interpretation Infinite Interpretation
<<conformsTo>>
Property
lower: Integer = 1
upper : UnlimitedNatural = 1
isOrdered : Boolean = false
isComposite: Boolean = false
default: String = ""
Class
isAbstract: Boolean = false
{ordered} 0..*
ownedAttribute
0..1
opposite
NamedElement
name: String
0..*
superClass
Type TypedElement
type
1
DataType
owner
cyclic digraph
upper bound
Contributions
Let’s consider
MOF (+OCL) as
meta-language
How MOF/OCL Does Not Support Infinite Models?
Formally Defining and Iterating Infinite Models, MODELS 2012 11Contributions
•  upper is typed by UnlimitedNatural taken from UML
•  UML involves a notation for the unlimited value (*) interpreted as
bounded in the type Collection (e.g., result of the OCL iterators)
⇒  All elements are considered as available at any time of the iteration
Property
lower: Integer = 1
upper : UnlimitedNatural = 1
isOrdered : Boolean = false
isComposite: Boolean = false
default: String = ""
Class
isAbstract: Boolean = false
{ordered} 0..*
ownedAttribute
0..1
opposite
NamedElement
name: String
0..*
superClass
Type TypedElement
type
1
DataType
owner
cyclic digraph
upper bound
•  The OCL closure refers to the type Collection for the result!
⇒  The closure is a finite processing, which assumes that the whole
model is available for evaluation
Defining Infinite Models: A MOF Extension
•  Upper bound of a MOF property
•  new type for upper identifying possible infinite collection
•  upper: Naturalω, s.t. m < * < ω where m∈N
•  Naturalω is an extension of UnlimitedNatural from MOF
•  Transitive closure of a MOF property
•  additional attribute in Property identifying possible infinite
unfolding (only for reflexive relation)
Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 12
A B
context A::a : A derive :
self.b->collect(a)->flatten();
a 0..* b
0..*/a 0..*
Iterating Infinite Models: A Coinductive Semantics
•  The coinductive principle
•  Provides the formal and abstract foundations for reasoning
over infinite data structures
•  Come equipped with a ‘produce’ operator instead of a
‘reduce’ operator in the induction principle
•  Supported by some of the proof assistant
•  We used COQ in our case!
•  We provide:
•  a CoIterate operator to iterate over infinite collections
•  a CoClosure operator to infinitely unfold reflexive relations
Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 13
Iterating Infinite Models: A Coinductive Semantics
•  CoIterate over infinite collections:
•  CoClosure for infinite unfolding of relations:
Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 14
Example: the UML State Machine
•  Iterating the events to be processed
•  Unfolding the reachable states
Evaluation Formally Defining and Iterating Infinite Models, MODELS 2012 15
Conclusion & Perspectives
•  Contributions
•  A MOF extension (abstract and concrete syntaxes)
•  Explicit identification of infinite models in metamodels
•  Precise and local specification of the infinite parts in the conforming models
•  A coinductive semantics (implemented using COQ)
•  Formal evaluation of such infinite parts with OCL iterators
•  Provides the foundations for the verification of operations that must process
models of unknown size
•  Independent of various possible implementations and would be used as
reference for interoperability issues
Conclusion Formally Defining and Iterating Infinite Models, MODELS 2012 16
(object-oriented) definition and
(coinductive) semantics for iterating
(in breadth, in depth)
implementations
(lazy evaluation, models@runtime)
•  Future Work:
•  Investigate equivalent translations to various
implementations (platform model)
•  Investigate the coiterate iterator for model transformation
(using model as accumulator) to formally deal with the
production of models at runtime.

More Related Content

What's hot

OOP with Java - Abstract Classes and Interfaces
OOP with Java - Abstract Classes and InterfacesOOP with Java - Abstract Classes and Interfaces
OOP with Java - Abstract Classes and InterfacesRatnaJava
 
Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?Oriol López Massaguer
 
Presentación vhdl Peter Ashenden
Presentación vhdl Peter AshendenPresentación vhdl Peter Ashenden
Presentación vhdl Peter Ashendenyhap
 
Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7ArraLafuente
 
9781439035665 ppt ch02
9781439035665 ppt ch029781439035665 ppt ch02
9781439035665 ppt ch02Terry Yoast
 

What's hot (6)

OOP with Java - Abstract Classes and Interfaces
OOP with Java - Abstract Classes and InterfacesOOP with Java - Abstract Classes and Interfaces
OOP with Java - Abstract Classes and Interfaces
 
Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?
 
Presentación vhdl Peter Ashenden
Presentación vhdl Peter AshendenPresentación vhdl Peter Ashenden
Presentación vhdl Peter Ashenden
 
Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7
 
DISE - Programming Concepts
DISE - Programming ConceptsDISE - Programming Concepts
DISE - Programming Concepts
 
9781439035665 ppt ch02
9781439035665 ppt ch029781439035665 ppt ch02
9781439035665 ppt ch02
 

Similar to Formally Defining and Iterating Infinite Models (MODELS 2012)

Ecmfa2013
Ecmfa2013Ecmfa2013
Ecmfa2013gogolla
 
0-Slot08-09-10-Module-Functions.pdf
0-Slot08-09-10-Module-Functions.pdf0-Slot08-09-10-Module-Functions.pdf
0-Slot08-09-10-Module-Functions.pdfssusere19c741
 
DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010Christian Horsdal
 
DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010Christian Horsdal
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queriesIstvan Rath
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software EngineeringJordi Cabot
 
A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...
A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...
A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...Lola Burgueño
 
On the verification of UML/OCL class diagrams using constraint programming
On the verification of UML/OCL class diagrams using constraint programmingOn the verification of UML/OCL class diagrams using constraint programming
On the verification of UML/OCL class diagrams using constraint programmingUOC Universitat Oberta de Catalunya
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaopenseesdays
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerGobinath Subramaniam
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxanguraju1
 
Software enginering.group-no-11 (1)
Software enginering.group-no-11 (1)Software enginering.group-no-11 (1)
Software enginering.group-no-11 (1)riarana10
 
A Systematic Approach to Generate Diverse Instantiations for Conceptual Schemas
A Systematic Approach to Generate Diverse Instantiations for Conceptual SchemasA Systematic Approach to Generate Diverse Instantiations for Conceptual Schemas
A Systematic Approach to Generate Diverse Instantiations for Conceptual SchemasLola Burgueño
 
Constrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project BonsaiConstrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project BonsaiIvo Andreev
 
Scala for Machine Learning
Scala for Machine LearningScala for Machine Learning
Scala for Machine LearningPatrick Nicolas
 

Similar to Formally Defining and Iterating Infinite Models (MODELS 2012) (20)

UML Intro
UML IntroUML Intro
UML Intro
 
Ecmfa2013
Ecmfa2013Ecmfa2013
Ecmfa2013
 
0-Slot08-09-10-Module-Functions.pdf
0-Slot08-09-10-Module-Functions.pdf0-Slot08-09-10-Module-Functions.pdf
0-Slot08-09-10-Module-Functions.pdf
 
DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010DCI ANUG - 24th November 2010
DCI ANUG - 24th November 2010
 
DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010DCI - ANUG 24th November 2010
DCI - ANUG 24th November 2010
 
High-performance model queries
High-performance model queriesHigh-performance model queries
High-performance model queries
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software Engineering
 
CoreML
CoreMLCoreML
CoreML
 
A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...
A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...
A Generic Neural Network Architecture to Infer Heterogeneous Model Transforma...
 
On the verification of UML/OCL class diagrams using constraint programming
On the verification of UML/OCL class diagrams using constraint programmingOn the verification of UML/OCL class diagrams using constraint programming
On the verification of UML/OCL class diagrams using constraint programming
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKenna
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptx
 
Software enginering.group-no-11 (1)
Software enginering.group-no-11 (1)Software enginering.group-no-11 (1)
Software enginering.group-no-11 (1)
 
A Systematic Approach to Generate Diverse Instantiations for Conceptual Schemas
A Systematic Approach to Generate Diverse Instantiations for Conceptual SchemasA Systematic Approach to Generate Diverse Instantiations for Conceptual Schemas
A Systematic Approach to Generate Diverse Instantiations for Conceptual Schemas
 
Constrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project BonsaiConstrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project Bonsai
 
Introduction to OOAD
Introduction to OOADIntroduction to OOAD
Introduction to OOAD
 
Scala for Machine Learning
Scala for Machine LearningScala for Machine Learning
Scala for Machine Learning
 

More from Benoit Combemale

When Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringWhen Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringBenoit Combemale
 
Table ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciencesTable ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciencesBenoit Combemale
 
Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)Benoit Combemale
 
SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019Benoit Combemale
 
Breathe Life Into Your IDE
Breathe Life Into Your IDEBreathe Life Into Your IDE
Breathe Life Into Your IDEBenoit Combemale
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and FutureBenoit Combemale
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioBenoit Combemale
 
Smart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering ModelsSmart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering ModelsBenoit Combemale
 
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Benoit Combemale
 
Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?Benoit Combemale
 
Introduction of the SLE'17 conference
Introduction of the SLE'17 conferenceIntroduction of the SLE'17 conference
Introduction of the SLE'17 conferenceBenoit Combemale
 
EXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMS
EXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMSEXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMS
EXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMSBenoit Combemale
 
Inria/CWI ALE team (progresses in Sep., 2017)
Inria/CWI ALE team (progresses in Sep., 2017)Inria/CWI ALE team (progresses in Sep., 2017)
Inria/CWI ALE team (progresses in Sep., 2017)Benoit Combemale
 
Sound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of ViewSound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of ViewBenoit Combemale
 
Modeling for Sustainability
Modeling for SustainabilityModeling for Sustainability
Modeling for SustainabilityBenoit Combemale
 
Dynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingDynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingBenoit Combemale
 
Model executability within the GEMOC Studio
Model executability within the GEMOC StudioModel executability within the GEMOC Studio
Model executability within the GEMOC StudioBenoit Combemale
 
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...Benoit Combemale
 
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...Benoit Combemale
 
Concurrency reification in the xDSML with MoCCML
Concurrency reification in the xDSML with MoCCMLConcurrency reification in the xDSML with MoCCML
Concurrency reification in the xDSML with MoCCMLBenoit Combemale
 

More from Benoit Combemale (20)

When Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringWhen Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software Engineering
 
Table ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciencesTable ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciences
 
Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)
 
SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019
 
Breathe Life Into Your IDE
Breathe Life Into Your IDEBreathe Life Into Your IDE
Breathe Life Into Your IDE
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and Future
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC Studio
 
Smart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering ModelsSmart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering Models
 
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
 
Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?
 
Introduction of the SLE'17 conference
Introduction of the SLE'17 conferenceIntroduction of the SLE'17 conference
Introduction of the SLE'17 conference
 
EXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMS
EXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMSEXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMS
EXECUTABLE MODELING FOR SYSTEMS, SOFTWARE AND CYBER-PHYSICAL SYSTEMS
 
Inria/CWI ALE team (progresses in Sep., 2017)
Inria/CWI ALE team (progresses in Sep., 2017)Inria/CWI ALE team (progresses in Sep., 2017)
Inria/CWI ALE team (progresses in Sep., 2017)
 
Sound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of ViewSound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of View
 
Modeling for Sustainability
Modeling for SustainabilityModeling for Sustainability
Modeling for Sustainability
 
Dynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingDynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented Modeling
 
Model executability within the GEMOC Studio
Model executability within the GEMOC StudioModel executability within the GEMOC Studio
Model executability within the GEMOC Studio
 
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
 
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
 
Concurrency reification in the xDSML with MoCCML
Concurrency reification in the xDSML with MoCCMLConcurrency reification in the xDSML with MoCCML
Concurrency reification in the xDSML with MoCCML
 

Recently uploaded

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
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
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
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
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
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
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 

Recently uploaded (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
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...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
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
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
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
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 

Formally Defining and Iterating Infinite Models (MODELS 2012)

  • 1. FORMALLY DEFINING AND ITERATING INFINITE MODELS Benoit Combemale University of Rennes 1, IRISA, France) Xavier Thirioux ENSEEIHT, IRIT, France Benoit Baudry Inria Rennes, France
  • 2. Very Large Models •  Examples: •  The Eclipse platform: 5M model elements •  Civil engineering models: 7.3M model elements [Steel et al., SoSyM'12] •  Etc. •  Existing approaches: •  Lazy model processing [Tisi et al., MoDELS'11] •  NoSQL-based approach for model persistence [Pagán et al., MoDELS'11] Context Formally Defining and Iterating Infinite Models, MODELS 2012 2
  • 3. Models at Runtime •  Examples: •  Monitoring systems •  Adaptive systems •  Etc. •  Existing approaches: •  Models@runtime based on CEP •  Active Operations [Beaudoux et al., MODELS 2010] Context Formally Defining and Iterating Infinite Models, MODELS 2012 3
  • 4. Infinite Model •  Intuitive Definition: Models whose the comprehensive set of model elements is too large to be loaded or even not available Context •  Challenges: •  Identify locally in an OO metamodel sources of infinity in the conforming models. •  Understanding the exact meaning of a query over a model for which the interpretation does not know the size at a given point in time Formally Defining and Iterating Infinite Models, MODELS 2012 4 •  Current Issues: •  Implicit and global infinite evaluation of the model •  Missing a formal and unified semantics (implementation- independent)
  • 5. Contributions Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 5 Let’s specify infinite models explicitly, locally, formally, and in a implementation-independent way!
  • 6. Contributions 1.  A MOF extension to locally identify in metamodels the infinite parts of the conforming models 2.  A corresponding coinductive semantics for evaluating such infinite parts with OCL iterators Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 6
  • 7. Example: the UML State Machine … Small and Terminating Program … Large or Non-Terminating Program Formally Defining and Iterating Infinite Models, MODELS 2012 7Contributions s1_1 s2_1 s2_2 s2_m sn_1 t1 t1 t1 t2 tn-1 ... Let’s imagine the execution trace of a… s1_1 s2_1 s2_2 s2_m sn_1 initial final t1 t1 t1 t2 tn-1 ... •  Ex1: lazily built at design time while exploring the graph of reachable states •  Ex2: continuously built at run time while monitoring the system execution
  • 8. How Infinite Models would come? • Let’s consider: • Models are (complex) graphs • Graphs conform to metamodels • Metamodels are described using a object- oriented meta-language Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 8
  • 9. <<conformsTo>> * {ordered} StateMachine State Transition source target Trigger initial InjectEvent 1 1 Event Occurence <<enumeration>> EventKind endogenous exogenous Runtime Event kind: EventKind 0..1 cause outgoing incoming Event eventTo Process type1 1 * *1 1 * ** * (Finite) Trace SendEvent * effect type 1 /nextStates * Excerpt from the UML2 StateMachine Metamodel with a Finite Interpretation context State::reachableStates : Set(State) derive : self->asSet()->closure(outgoing->collect(target)); How Infinite Models would come? Formally Defining and Iterating Infinite Models, MODELS 2012 9Contributions s1_1 s2_1 s2_2 s2_m sn_1 t1 t1 t1 t2 tn-1 ...s1_1 s2_1 s2_2 s2_m sn_1 initial final t1 t1 t1 t2 tn-1 ... •  IN BREADTH: upper bound of a collection (ex: eventToProcess) •  IN DEPTH: unfolding of a transitive closure (ex: nextStates) <<conformsTo>> StateMachine State Transition source target Trigger initial InjectEvent 1 1 Event Occurence ω {ordered} <<enumeration>> EventKind endogenous exogenous Runtime Event kind: EventKind 0..1 cause outgoing incoming Event eventTo Process type1 1 * *1 1 * ** * /nextStates * Excerpt from the UML2 StateMachine Metamodel with an Infinite Interpretation (Infinite) Trace SendEvent * effect type 1
  • 10. Formally Defining and Iterating Infinite Models, MODELS 2012 10 StateMachine State Transition source target Trigger initial InjectEvent 1 1 Event Occurence ω {ordered} <<enumeration>> EventKind endogenous exogenous Runtime Event kind: EventKind 0..1 cause outgoing incoming Event eventTo Process type1 1 * *1 1 * ** * /nextStates * Excerpt from the UML2 StateMachine Metamodel with an Infinite Interpretation (Infinite) Trace * {ordered} SendEvent * effect type StateMachine State Transition source target Trigger initial InjectEvent 1 1 Event Occurence <<enumeration>> EventKind endogenous exogenous Runtime Event kind: EventKind 0..1 cause outgoing incoming Event eventTo Process type1 1 * *1 1 * ** * (Finite) Trace SendEvent * effect type 11 s1_1 s2_1 s2_2 s2_m sn_1 initial final t1 t1 t1 t2 tn-1 /nextStates * Excerpt from the UML2 StateMachine Metamodel with a Finite Interpretation <<conformsTo>><<conformsTo>> <<conformsTo>> ... s1_1 s2_1 s2_2 s2_m sn_1 initial t1 t1 t1 t2 tn-1 ... Finite Interpretation Infinite Interpretation <<conformsTo>> Property lower: Integer = 1 upper : UnlimitedNatural = 1 isOrdered : Boolean = false isComposite: Boolean = false default: String = "" Class isAbstract: Boolean = false {ordered} 0..* ownedAttribute 0..1 opposite NamedElement name: String 0..* superClass Type TypedElement type 1 DataType owner cyclic digraph upper bound Contributions Let’s consider MOF (+OCL) as meta-language
  • 11. How MOF/OCL Does Not Support Infinite Models? Formally Defining and Iterating Infinite Models, MODELS 2012 11Contributions •  upper is typed by UnlimitedNatural taken from UML •  UML involves a notation for the unlimited value (*) interpreted as bounded in the type Collection (e.g., result of the OCL iterators) ⇒  All elements are considered as available at any time of the iteration Property lower: Integer = 1 upper : UnlimitedNatural = 1 isOrdered : Boolean = false isComposite: Boolean = false default: String = "" Class isAbstract: Boolean = false {ordered} 0..* ownedAttribute 0..1 opposite NamedElement name: String 0..* superClass Type TypedElement type 1 DataType owner cyclic digraph upper bound •  The OCL closure refers to the type Collection for the result! ⇒  The closure is a finite processing, which assumes that the whole model is available for evaluation
  • 12. Defining Infinite Models: A MOF Extension •  Upper bound of a MOF property •  new type for upper identifying possible infinite collection •  upper: Naturalω, s.t. m < * < ω where m∈N •  Naturalω is an extension of UnlimitedNatural from MOF •  Transitive closure of a MOF property •  additional attribute in Property identifying possible infinite unfolding (only for reflexive relation) Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 12 A B context A::a : A derive : self.b->collect(a)->flatten(); a 0..* b 0..*/a 0..*
  • 13. Iterating Infinite Models: A Coinductive Semantics •  The coinductive principle •  Provides the formal and abstract foundations for reasoning over infinite data structures •  Come equipped with a ‘produce’ operator instead of a ‘reduce’ operator in the induction principle •  Supported by some of the proof assistant •  We used COQ in our case! •  We provide: •  a CoIterate operator to iterate over infinite collections •  a CoClosure operator to infinitely unfold reflexive relations Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 13
  • 14. Iterating Infinite Models: A Coinductive Semantics •  CoIterate over infinite collections: •  CoClosure for infinite unfolding of relations: Contributions Formally Defining and Iterating Infinite Models, MODELS 2012 14
  • 15. Example: the UML State Machine •  Iterating the events to be processed •  Unfolding the reachable states Evaluation Formally Defining and Iterating Infinite Models, MODELS 2012 15
  • 16. Conclusion & Perspectives •  Contributions •  A MOF extension (abstract and concrete syntaxes) •  Explicit identification of infinite models in metamodels •  Precise and local specification of the infinite parts in the conforming models •  A coinductive semantics (implemented using COQ) •  Formal evaluation of such infinite parts with OCL iterators •  Provides the foundations for the verification of operations that must process models of unknown size •  Independent of various possible implementations and would be used as reference for interoperability issues Conclusion Formally Defining and Iterating Infinite Models, MODELS 2012 16 (object-oriented) definition and (coinductive) semantics for iterating (in breadth, in depth) implementations (lazy evaluation, models@runtime) •  Future Work: •  Investigate equivalent translations to various implementations (platform model) •  Investigate the coiterate iterator for model transformation (using model as accumulator) to formally deal with the production of models at runtime.