12
1 Semo’07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo’07 29 mars 2007 Arnaud Cuccuru , Chokri Mraidha, François Terrier, Sébastien Gérard {firstName.lastName}@cea.fr CEA-List / DTSI / SOL / L-LSP

1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

Embed Size (px)

Citation preview

Page 1: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

1Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Métamodèles et Points de Variation Sémantique

workshop IDM: Semo’0729 mars 2007

Arnaud Cuccuru, Chokri Mraidha, François Terrier, Sébastien Gérard{firstName.lastName}@cea.frCEA-List / DTSI / SOL / L-LSP

Page 2: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

2Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

PVS et IDM

Sémantique d’un langage Projection :

De la syntaxe (ici des métamodèles)… … vers un domaine sémantique Style : Dénotationnel, Axiomatique, Opérationnel

Point de Variation Sémantique (PVS) Aspect sémantique ouvert à interprétation… Projection partielle

“Popularisés” par UML PVS partie “statique”

“Precise semantics of shared aggregation varies by application area and modeler”. Superstructure v2.1.1 p.41

PVS partie “dynamique” “The behavior of an invocation of an operation when a precondition is not satisfied is a semantic variation point”. Super. p.107

PVS partie “temporelle” “No assumptions are made about the time intervals between event occurrence, event dispatching, and consumption”. Super. p.456

Généralisables à l’IDM En particulier au DSML

Page 3: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

3Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Sommaire

Machines à états d’UML 2 Spécialisation avec les mécanismes du MOF

Profile Extension Merge

Spécialisation dans les approches “opérationnelles” Extension Surcharge

Proposition Identification par paramètres template Modularisation par le pattern “strategy” Fixation par liaison des paramètres

Conclusion

Page 4: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

4Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Machine à états d’UML 2

StateMachine

Region

+region

+stateMachine0..1

1..*

Vertex kind : TransitionKind

Transition

/isComposite : Boolean/isOrthogonal : Boolean/isSimple : Boolean/isSubmachineState

State

kind : PseudostateKind

PseudoStateBehavior

Trigger(from Communications)

Constraint

subvertex*

+

+transition*

+outgoing+source

1 *

+incoming+target

1 *

+effect0..1

+guard

0..1

+trigger

0..*

BehaviorStateMachines

*+deferrableTrigger

Page 5: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

5Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Spécialisation avec les mécanismes du MOF

« profile »StateMachineSemanticVariationPoints

eventPolicy : EventSelectionPolicytransitionPolicy : TransitionSelectionPolicy

« stereotype »UnambiguousStateMachine

StateMachine(from

BehaviorStateMachines)

{required}

LIFOFIFO

« enumeration »EventSelectionPolicy

RANDOMSTOCHASTIC

« enumeration »TransitionSelectionPolicy

UnambiguousBehaviorStateMachines

StateMachine(from BehaviorStateMachine)

SpecializedStateMachineA

SpecializedStateMachineB

...

FIFO event selection policy,Random transition selection policy

LIFO event selection policy,Stochastic transition selection policy

UnambiguousBehaviorStateMachinesA

StateMachine

FIFO event selection policy,Random transition selection policy

UnambiguousBehaviorStateMachinesB

StateMachine

...LIFO event selection policy,Stochastic transition selection policy

StateMachine

Region

+region

+stateMachine0..1

1..*

Vertex kind : TransitionKind

Transition

/isComposite : Boolean/isOrthogonal : Boolean/isSimple : Boolean/isSubmachineState

State

kind : PseudostateKind

PseudoStateBehavior

Trigger(from Communications)

Constraint

subvertex*

+

+transition*

+outgoing+source

1 *

+incoming+target

1 *

+effect0..1

+guard

0..1

+trigger

0..*

BehaviorStateMachines

*+deferrableTrigger

« merge » « merge »

« import »

Page 6: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

6Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Spécialisation dans les approches ‘’opérationnelles’’

StateMachine

Region

+region

+stateMachine0..1

1..*

Vertex kind : TransitionKind

Transition

/isComposite : Boolean/isOrthogonal : Boolean/isSimple : Boolean/isSubmachineState

State

kind : PseudostateKind

PseudoStateBehavior

Trigger(from Communications)

Constraint

subvertex*

+

+transition*

+outgoing+source

1 *

+incoming+target

1 *

+effect0..1

+guard

0..1

+trigger

0..*

BehaviorStateMachines

*+deferrableTrigger

+step()-selectRelevantEvents() : Event[*]-selectRelevantTransitions(event : Event) : Transitions[*]-fireTransition(transition : Transition)

-eventSelectionPolicy : ESP-transitionSelectionPolicy : TSP

StateMachine

Vertex

execute()

Behavior

TemplatedBehaviorStateMachines

EventEvenOccurence*

+evenPool{ordered} 1

+type

+currentState{subsets subvertex}

1

« merge »

OperationalBehaviorStateMachines

Page 7: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

7Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

StateMachine

Region

+region

+stateMachine0..1

1..*

Vertex kind : TransitionKind

Transition

/isComposite : Boolean/isOrthogonal : Boolean/isSimple : Boolean/isSubmachineState

State

kind : PseudostateKind

PseudoStateBehavior

Trigger(from Communications)

Constraint

subvertex*

+

+transition*

+outgoing+source

1 *

+incoming+target

1 *

+effect0..1

+guard

0..1

+trigger

0..*

BehaviorStateMachines

*+deferrableTrigger

+step()-selectRelevantEvents() : Event[*]-selectRelevantTransitions(event : Event) : Transitions[*]-fireTransition(transition : Transition)

-eventSelectionPolicy : ESP-transitionSelectionPolicy : TSP

StateMachine

Vertex

execute()

Behavior

TemplatedBehaviorStateMachines

EventEvenOccurence*

+evenPool{ordered} 1

+type

+currentState{subsets subvertex}

1

« merge »

// Local variable declarationsEvent[*] relevantEvents ;Event selectedEvent ;Transition selectedTransition ;

// Selection of the event to handlerelevantEvents := this.selectRelevantEvents() ;selectedEvent := this.selectEventToHandle(relevantEvents) ;

// Selection of the transition to fireselectionTransition := this.selectTransitionToFire(selectedEvent) ;

// the selected transition is firedfireTransition(selectedTransition) ;

OperationalBehaviorStateMachines

Spécialisation dans les approches ‘’opérationnelles’’

Page 8: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

8Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Identification par paramètres templates

+step()-selectRelevantEvents() : Event[*]-selectRelevantTransitions(event : Event) : Transitions[*]-fireTransition(transition : Transition)

-eventSelectionPolicy : ESP-transitionSelectionPolicy : TSP

StateMachine

Vertex

execute()

Behavior

TemplatedBehaviorStateMachines

EventEvenOccurence*

+evenPool{ordered} 1

+type

+currentState{subsets subvertex}

1

BehaviorStateMachines

« merge »

Page 9: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

9Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Identification par paramètres templates

+step()-selectRelevantEvents() : Event[*]-selectRelevantTransitions(event : Event) : Transitions[*]-fireTransition(transition : Transition)

-eventSelectionPolicy : ESP-transitionSelectionPolicy : TSP

StateMachine

Vertex

execute()

Behavior

ESP TSP

TemplatedBehaviorStateMachinesESP > EventSelectionPolicyTSP > TransitionSelectionPolicy

EventEvenOccurence*

+evenPool{ordered} 1

+type

+currentState{subsets subvertex}

1

BehaviorStateMachines

« merge »

Page 10: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

10Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Modularisation par le pattern ‘’Strategy’’

+selectEventToHandle(events : Event[*]) : Event

EventSelectionPolicy

+selecTransitionToFire(transitions Transition[*]) : Transition

TransitionSelectionPolicy

FIFOEventSelectionPoliciy

LIFOEventSelectionPolicy

And many other user specific policies...

RandomTransitionSelectionPolicy

StochasticTransitionSelectionPolicy

Page 11: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

11Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Fixation par liaison des paramètres

TemplatedBehaviorStateMachines

ESP > EventSelectionPolicyTSP > TransitionSelectionPolicy

FIFO_Random_StateMachines

« bind »<ESP->FIFOEventSelectionPolicy,

TSP->RandomTransitionSelectionPolicy>my_FIFO_RandomStateMachine : StateMachine

<ESP->FIFOEventSelectionPolicy,TSP->RandomTransitionSelectionPolicy>

Liaison au niveau M2 Liaison au niveau M1

Page 12: 1 Semo07, Mars 2007 – A. Cuccuru (CEA-List) DTSI Métamodèles et Points de Variation Sémantique workshop IDM: Semo07 29 mars 2007 Arnaud Cuccuru, Chokri

12Semo’07, Mars 2007 – A. Cuccuru (CEA-List)DTSI

Conclusion

Contribution : Principalement méthodologique Identification / résolution explicite des PVS

PVS “fonctionnels” (statique ou dynamique) Identification par paramètres templates Modularisation par strategy classes Résolution explicite par binding

Support des outils (Kermeta, Meta-GME, etc.) : Déclaration des paramètres : OK Liaison des paramètres

Niveau M2 : OK Niveau M1 : KO

Pistes : Extension de Ecore ? Ecore -> UML2, UML2 -> Ecore

Support annoncé Wait and see…