Métamodèles et Points de Variation Sémantique workshop IDM: Semo’07 29 mars 2007

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

description

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. PVS et IDM. Sémantique d’un langage Projection : - PowerPoint PPT Presentation

Transcript of Métamodèles et Points de Variation Sémantique workshop IDM: Semo’07 29 mars 2007

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

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

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

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)

Constraintsubvertex*

+

+transition*

+outgoing+source1 *

+incoming+target1 *

+effect0..1

+guard0..1

+trigger0..*

BehaviorStateMachines

*+deferrableTrigger

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)

Constraintsubvertex*

+

+transition*

+outgoing+source1 *

+incoming+target1 *

+effect0..1

+guard0..1

+trigger0..*

BehaviorStateMachines

*+deferrableTrigger

« merge » « merge »

« import »

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)

Constraintsubvertex*

+

+transition*

+outgoing+source1 *

+incoming+target1 *

+effect0..1

+guard0..1

+trigger0..*

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

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)

Constraintsubvertex*

+

+transition*

+outgoing+source1 *

+incoming+target1 *

+effect0..1

+guard0..1

+trigger0..*

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

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 »

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 »

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

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

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…