Download presentation
Presentation is loading. Please wait.
Published byEmiliano Blewett Modified over 9 years ago
1
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Model Transformation Lab From UML Activities to Petri nets by VIATRA2
2
Transformation Source domain: UML Activities (core elements) o standard process description language o countless editors available Target domain: Petri nets (basic elements) o mathematical formalism o concurrent behavioural model o efficient analysis tools available
3
UML Activities (core) Activity Action Initial Final Fork Join Control Flow Decision Merge
4
Petri nets AKA Place/Transition Nets Place Token Arc Transition
5
Petri nets State = marking of places State change: firing of a transition o enabled if all incoming places are marked o 1 token removed from each incoming place o 1 token added to each outgoing place Transition not enabled Now enabled
6
Petri nets What do these Petri nets do?
7
LAB Executing the transformation
8
UML Activity Petri net Action Control flow During Enter Exit
9
UML Activity Petri net Initial node (Flow) final node
10
UML Activity Petri net Fork node Join node
11
GT rules – Control Flow Mostly straightforward LHSRHS trace We can prescribe a NAC
12
DEMO Simple GT rules in Viatra2 LHSRHS trace
13
GT rules – Action Straightforward, but big LHSRHS We will use this graph pattern a lot more EnterExit During
14
GT rules – reusing patterns Let’s reuse! LHSRHS placeOfIncomingEdge placeOfOutgoingEdge placeOfIncomingEdge placeOfOutgoingEdge EnterExit During
15
CODE Pattern composition in Viatra2
16
CODE Pattern composition in Viatra2
17
GT rules - Fork LHSRHS LHSRHS Fork
18
CODE Cooperating rules in Viatra2
19
Similarities Fork Node o Create transition, trace back to fork node o Connect the placeOfIncomingEdge to transition o Connect transition to each placeOfOutgoingEdge Join Node o Create transition, trace back to join node o Connect each placeOfIncomingEdge to transition o Connect transition to the placeOfOutgoingEdge Flow Final Node o Create transition, trace back to final node o Connect the placeOfIncomingEdge to transition o Connect transition to each placeOfOutgoingEdge (there is none, this does nothing)
20
Similarities Fork Node o Create transition, trace back to fork node o Connect the placeOfIncomingEdge to transition o Connect transition to each placeOfOutgoingEdge Join Node o Create transition, trace back to join node o Connect each placeOfIncomingEdge to transition o Connect transition to the placeOfOutgoingEdge Flow Final Node o Create transition, trace back to final node o Connect the placeOfIncomingEdge to transition o Connect transition to each placeOfOutgoingEdge (there is none, this does nothing)
21
Trick Fork / Join / Final Node o Create transition, trace back to activity node o Connect each placeOfIncomingEdge to transition o Connect transtition to each placeOfOutgoingEdge Let’s reuse!
22
LAB Transformation program
23
Exercise: what’s missing?
24
Decision and Merge Nodes What PN constructs should they be mapped into? Come up with GT rules Implement in Viatra2 Try activity_complex and activity_prb!
25
Offline exercise („homework”)
26
Where to Extending the transformation system o Domain metamodels, importers, exporters o Native functions (calls to Java) Advanced features o Language features: recursion, injectivity, etc. o Performance optimization o Triggers o Live synchronization o SDE integration
27
Additional material http://wiki.eclipse.org/VIATRA2 http://wiki.eclipse.org/VIATRA2 o Installation o Syntax o How-tos and Examples o Learn about many other features of Viatra2 There is a new release coming up this summer, you have been using a beta version in this lab o Sorry for any hiccups it may have caused o Take it home if you wish! o The unfinished project also!
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.