|
|
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...
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
Note: Level of Automation: Manual changes can be preserved, or removed (in case of inconsistencies)
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...
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...
Modeling Petri-Net Transformations as Graph Transformations Information Systems Colloquium Pieter Van Gorp TU/e, 12/12/2008
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
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 ? ? ?
Modeling Language: Keep it Stable specify UML conforms- to
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
Transformations in Conventional Software Development Drawbacks Manual!
Transformations in Model-Driven Software Development
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
Motivating Example Transformation from BPMN models to Petri-Nets BPMN2PN
Mapping Rules, Conceptually Semantics and analysis of business process models in BPMN Remco M. Dijkman, Marlon Dumas and Chun Ouyang
Mapping Rules, Formalized... Not related to editor or parser... Needs to be implemented manually...
Mapping Rules: AToM Graph Grammar 3 Rules are directly executable
AToM : Generated BPMN Editor 3 Editor is generated from annotated metamodel
AToM : Transformation Rule Editor 3 Additional application conditions... in text. Generic traceability links Multiple formalisms in concrete syntax!
Example Output of AToM BPMN2PN Transformation 3
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
Higher Order Transformations From transformation models to industrial repository code (JMI) From extended transformation language to core language Transforming Transformation Models...
Problems Solved, in terms of BMPN2PN example...
BPMN2PN: need for contr.flow constructs Graph Grammar for interactive token animation Underlying ruleset exposes a language problem
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
Existing Solution for Control Flow: Fujaba Just one example... In general: add language constructs for better readibility, analyzability, ...
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.
Problems Revisited Holds for Fujaba too... (< 2006)
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
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)
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”
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), …
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), …
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
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!
31 Language Engineering: The Goal
32 The good News...
33 The Solution
Example Language Extension ...
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!
Evaluation Progres, Fujaba, VMTS, MoTMoT GROOVE, AGG, Tiger, AToM3 GT promising basis... as core language! Innovation possible Hybrid Languages... instead of disconnected transformation DSLs
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.
| URL: |
No comments posted yet
Comments