02/10/2014 1
- Safely Reusing Model
Transformations through Family Polymorphism
- Director of IRISA
- 2
02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
- !
Safely Reusing Model Transformations through Family Polymorphism - - PDF document
02/10/2014 Safely Reusing Model Transformations through Family Polymorphism Director of IRISA
02/10/2014 1
02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 2
3 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
Aerodynamics Authorities Avionics Safety Regulations Airlines Propulsion System Mechanical Structure Environmenta l Impact Navigation Communications Human- Machine Interaction
4 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
4 Aerodynamics Authorities Avionics Safety Regulations Airlines Propulsion System Mechanical Structure Environmenta l Impact Navigation Communications Human- Machine Interaction
Heterogeneous Modeling Languages
02/10/2014 3
5 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
– 50+ variants of StateCharts have been reported!
My favorite toolbox Very « square »: fully formal LOt of TOoling Support
The DSL Approach
6 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
' '
) 8"99 ('/':;< '
02/10/2014 4
7 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
8 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 5
9 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
10 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 6
11 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
11
12 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
A Model is a simplified representation of an aspect of the World for a specific purpose
02/10/2014 7
13 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
reset()
FSM
name: EString step()
State
input: EString
fire()
Transition
initialState 1
1
* currentState 0..1 source 1
* target 1 incomingTransition 0..1
Context FSM inv: ownedState->forAll(s1,s2| s1.name=s2.name implies s1=s2) class FSM { * () { currentState = initialState }}
class Minimizer { public def FSM minimize (source: FSM) {…} }
14 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
Finite State Machine
<<conformsTo>>
lookup table
02/10/2014 8
15 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
+,-%$$$' %) ,''.)/0%)' ,%%' &#$,%$%' $$/
⇒ need to specialize it!!
if (true) { …
modeltype CDFG { …
reachability end } modeltype Datapath extends CDFG { …
revert super() end } 16 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 9
17 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
Guy et al. – On Model Subtyping
Animal a = Animal.new Food f = Food.new a.eat(f) Animal a = Cow.new Food f = Food.new a.eat(f) Animal a = Cow.new Food f = Grass.new a.eat(f) Animal a = Cow.new Food f = Hamburger.new a.eat(f) Animal a = Animal.new Food f = Food.new a.eat(f) Cow a = Cow.new Grass f = Grass.new a.eat(f) Animal a = Animal.new Food f = Food.new a.eat(f)
18 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 10
19 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
20 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
) 1 ) 1( ) 1' D & D 1 ( D 1 D 1 I *
) 1 ) 1( ) 1 ) 1 I + * ) 1 :(< ) &+( (9 ( ( (
(
MT1 MT2
same name
can only corresponds to another read only property
same name
02/10/2014 11
21 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
Match ?
<<match>> <<match>> <<match>> <<match>>
22 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
A Basic FSM Operation Applied on a Final States FSM
modeltype basic_fsm_type { basic_fsm :: FSM , basic_fsm :: State , basic_fsm :: Transition } modeltype finalstates_fsm_type { finalstates_fsm :: FSM , finalstates_fsm :: State , finalstates_fsm :: Transition , finalstates_fsm :: FinalState } class Serializer<MT : basic_fsm_type> {
fsm.ownedState.each{s| stdio.writeln(“State :" + s.name) s.outgoingTransition.each{t| var outputText : String if (t.output != void and t.output != “”) then
else
end stdio.writeln(“Transition :" + t.source.name + “-(“ + t.input + "/" + outputText + ") ->" + t.target.name) } } end }
Basic FSM Model Type Final States FSM Model Type
02/10/2014 12
23 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 13
25 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
56 65 ,7-)' $% & &
26 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
' G ( ' * '' #$ % & & $ J ( ' '
02/10/2014 14
27 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
1 7 % I ?' 2 K +I ?'
28 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 15
29 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
30 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 16
31 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
MT2 MT1
32 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
1( (*(= & (*(=G!
1( (*(= '& (*(=G !
) &9'
=
MT2 MT1 MT2’
02/10/2014 17
33 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
'
L'
L8
L'L8
B1 <# B2 A1 <# A2 <<totalIso>> <<totalIso>> <<partialIso>> A1’ <# A2 <<totalIso>> B1 <# B2 f(A1) <<totalIso>> <<totalNoniso>> <<partialNoniso>>
34 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 18
35 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
( 36 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
!$"#$"#
02/10/2014 19
37 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
) 1'(2 ) 1) ''**2 ) 1 ') !''2 ) 1 ')! ''2
38 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
– the set of services it offers to other language units and the set of services it requires from other language units.
– introduced by components-based software engineering approaches. – But... What is the meaning of “provided and required services" in the context of software languages?
– Extends vs. uses
02/10/2014 20
39 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
) (*(:9* (!< ) ( ':* <
40 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 21
41 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
) M*( '
.-/> K' /''0''
) M*('
' *( . 6 '' Variability Variability
42 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
02/10/2014 22
43 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES
) 099- 9+ , ) 3+69?' 9+,
44 02/10/2014
INSTITUT DE RECHERCHE EN INFORMATIQUE ET SYSTEMES ALEATOIRES