Modeling Petri-Net Transformations as Graph Transformations

0

No comments posted yet

Comments

Slide 3

In de informatica wordt het wiel bijna dagelijks opnieuw uitgevonden. Verschillende groepen menen dat ze toch net een iets betere taal hebben dan voordien en vandaar worden systemen vaak volledig opnieuw gebouwd en is de integratie van dergelijke systemen vaak een grote nachtmerrie...

Slide 4

Hier (of op latere slide) kan je ook Intel Assembly en PSP MIPS toevoegen! Dit laat je dan (en pas dan) toe om aan te geven dat je binnen compilers niets wijzigt. Hogere abstracties vragen aanpasbaarheid van de compiler, en dus ook een modellering van diens gedrag

Slide 5

Note: Level of Automation: Manual changes can be preserved, or removed (in case of inconsistencies)

Slide 6

Aangeven dat het in SW industrie vaak enkel klopt wat het omzetten van mentale voorstellingen in een computer voorstelling betreft. Neem hier al de voorstelling met associaties en die met attributen! Terugkeren op slide met racegame? En later: manuele veranderingen => input is computer voorstelling en menselijke energie, output is nieuwe software... Zonder link terug naar het origineel...

Slide 7

Aangeven dat het in SW industrie vaak enkel klopt wat het omzetten van mentale voorstellingen in een computer voorstelling betreft. Neem hier al de voorstelling met associaties en die met attributen! Terugkeren op slide met racegame? En later: manuele veranderingen => input is computer voorstelling en menselijke energie, output is nieuwe software... Zonder link terug naar het origineel...

Slide 1

Modeling Petri-Net Transformations as Graph Transformations Information Systems Colloquium Pieter Van Gorp TU/e, 12/12/2008

Slide 2

Presentation Outline Model Driven Engineering Transformations: the Heart & Soul Running Example: BPMN2PN Modeling Model Transformations Improving Modeling Support by Language Extension Tool Independence: Higher Order Transformations Evaluation

Slide 3

Java 1 CORBA BPEL.XML EJB JMS, JCA, WSIF, … CORBA CORBA BPEL.XML BPEL.XML Language Evolution in Software Development VB C++ VB.NET C# Bla 1 Bla 3 Bla 2 The next best thing The next best thing The next best thing ? ? ?

Slide 4

Modeling Language: Keep it Stable specify UML conforms- to

Slide 5

One Step Further: Multiple Software Models, Multiple Levels of Abstraction Purpose of Analysis model: conceptual data modeling Purpose of Design model: Choosing datatypes (linkedlist etc.) Optimizing performance (bidirectional references or not...) Evaluating architecture (MVC, ...) Clean separation between models  iterative development

Slide 6

Transformations in Conventional Software Development Drawbacks Manual!

Slide 7

Transformations in Model-Driven Software Development

Slide 8

Model Driven Engineering Transformations: the Heart & Soul Running Example: BPMN2PN Modeling Model Transformations Improving Modeling Support by Language Extension Tool Independence: Higher Order Transformations Evaluation Presentation Outline

Slide 9

Motivating Example Transformation from BPMN models to Petri-Nets BPMN2PN

Slide 10

Mapping Rules, Conceptually Semantics and analysis of business process models in BPMN Remco M. Dijkman, Marlon Dumas and Chun Ouyang

Slide 11

Mapping Rules, Formalized... Not related to editor or parser... Needs to be implemented manually...

Slide 12

Mapping Rules: AToM Graph Grammar 3 Rules are directly executable

Slide 13

AToM : Generated BPMN Editor 3 Editor is generated from annotated metamodel

Slide 14

AToM : Transformation Rule Editor 3 Additional application conditions... in text. Generic traceability links Multiple formalisms in concrete syntax!

Slide 15

Example Output of AToM BPMN2PN Transformation 3

Slide 16

Model Driven Engineering Transformations: the Heart & Soul Running Example: BPMN2PN Modeling Model Transformations Improving Modeling Support by Language Extension Tool Independence: Higher Order Transformations Evaluation Presentation Outline

Slide 17

Higher Order Transformations From transformation models to industrial repository code (JMI) From extended transformation language to core language Transforming Transformation Models...

Slide 18

Problems Solved, in terms of BMPN2PN example...

Slide 19

BPMN2PN: need for contr.flow constructs Graph Grammar for interactive token animation Underlying ruleset exposes a language problem

Slide 20

Example Rule: part of “firing” Goal of rule: add tokens to output place “state” attribute alternatively: counter-intuitive priorities: http://fenix.cmi.ua.ac.be/~p035491/petrinet_demo/ implicit modeling style for controlling rules model more explicitly using activity diagram ((trans.state=="EmptyingInputs" or trans.state=="FillingOutputs") and \            not arc.fired) or  (trans.state=="testingEmptyInPlace" and \      not atom3i.mutexOn)   trans.state= "FillingOutputs     atom3i.mutexOn= True arc.fired= True   outplace.tokens= outplace.tokens + arc.weight

Slide 21

Existing Solution for Control Flow: Fujaba Just one example... In general: add language constructs for better readibility, analyzability, ...

Slide 22

Fujaba: state of the art 2008+ Leif Geiger. Model Level Debugging with Fujaba. Sixth International Fujaba Days (FD’08), Dresden (Germany), September 18-19, 2008.

Slide 23

Problems Revisited Holds for Fujaba too... (< 2006)

Slide 24

Context for Implementation Argument... We only work on paper! Process Modeling Researchers BPM/CASE Tool Providers Practitioners Our ideas are supported by tools! This requires model import / export for every feature We do want to integrate with industrial tools directly! But we don’t know about JMI/EMF We just generate that  But I can’t deal with the metamodels... I will evaluate my transformation language  Demo: Petri-Net animation, directly executable on the MagicDraw CASE tool

Slide 25

Petri-Net animation in MagicDraw etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. etc. Based on UML metamodel... = Challenge! (would be easier in PROM)

Slide 26

The Transformation Model +: Explicit, no surprizes +: Stimulates documentation +: No Metamodel details here -: Some overspecification (ND) ! current work ! Quite advanced GT constructs applied... Still, tool independent... How? AToM3 required low-level “mutex”

Slide 27

From Transformation Models to Industrial Transformation Code Solution: Higher Order Transformations (Model to Code) ModelTransformer.ftl TransFlow.ftl TransPrimitive.ftl <<success>>, <<failure>>, <<each time>> <<create>>, <<destroy>> JMI, EMF, Java2, ... getClasses(): FCollection remove(), add(LinkedList l), …

Slide 28

Challenge How to add language features without extending code templates for one execution platform? ModelTransformer.ftl TransFlow.ftl TransPrimitive.ftl <<success>>, <<failure>>, <<each time>> <<create>>, <<destroy>> JMI, EMF, Java2, ... getClasses(): FCollection remove(), add(LinkedList l), …

Slide 29

29 Context Requirements of transformation writer 1 Provided by tool 2 Requirements of transformation writer 3 Provided by tool 5 Requirements of transformation writer 2 Provided by tool 1

Slide 30

30 Problem: Lack of Portability and Reuse Implemented on proprietary C repository of Progres. Not available in GreAT, MOLA, VMTS, ... Implemented as part of EMF/JMI based code generation framework. Not available in Progres and others. 1. Cannot apply both in one tool - lack of reuse! 2. Cannot even not switch between tools! - lack of portability!

Slide 31

31 Language Engineering: The Goal

Slide 32

32 The good News...

Slide 33

33 The Solution

Slide 34

Example Language Extension ...

Slide 35

From Transformation Models to Industrial Transformation Code From Extensions to “standardized” Transformation Language Solution: Higher Order Transformations (M2M & M2C) ModelTransformer.ftl TransFlow.ftl TransPrimitive.ftl <<success>>, <<failure>>, <<each time>> <<success>>, <<failure>>, <<each time>> <<create>>, <<destroy>> <<copy>>, <<create>>, <<destroy>> <<success>>, <<failure>>, <<each time>> <<create>>, <<destroy>> JMI, EMF, Java2, ... getClasses(): FCollection remove(), add(LinkedList l), … Improvement of the state-of-the-art Independent of the modeling platform!

Slide 36

Evaluation Progres, Fujaba, VMTS, MoTMoT GROOVE, AGG, Tiger, AToM3 GT promising basis... as core language! Innovation possible Hybrid Languages... instead of disconnected transformation DSLs

Slide 37

Presentation Summary MDE: What? Transformations: Why? Example: BPMN2PN => GT = Promising basis! Example: PetriAnimator (cflow, direct exec.) => Ongoing work: improve GT, based on case studies... HOTs: Tool Interoperability => Collaborative effort!

Summary: In Model Driven Engineering, one aims to model software at various levels of abstraction, from different viewpoints, using appropriate syntactical constructs. Since this inherently leads to information that is conceptually duplicated across different models, one needs an efficient way to (i) automatically translate models to other formalisms, (ii) automate restructurings of models, and (iii) perform other types of transformations. In this talk, Pieter Van Gorp will explain how particular graph transformation language constructs facilitate the definition of automatic model transformations. A set of transformations of process models will serve as a running example. The examples are based on AToM3 (meta-case and graph grammars) and MoTMoT (controlled graph transformation, MOF, UML) and should open a dialogue about PROM.

Tags: uml bpmn petri nets petrinet model graph transformation mde mda

URL:
More by this User
Most Viewed