TGGs for Transforming UML to CSP: Contribution to the ACTIVE 2007 Graph Transformation Tools Contest. Technical Report tr-ri

Size: px
Start display at page:

Download "TGGs for Transforming UML to CSP: Contribution to the ACTIVE 2007 Graph Transformation Tools Contest. Technical Report tr-ri"

Transcription

1 TGGs for Transforming UML to CSP: Contribution to the ACTIVE 2007 Graph Transformation Tools Contest Technical Report tr-ri Joel Greenyer, Jan Rieke, and Oleg Travkin Department of Computer Science University of Paderborn D Paderborn Germany [jgreen jrieke Ekkart Kindler Informatics and Mathematical Modelling Technical University of Denmark (DTU) DK-2800 Kgs. Lyngby Denmark January 2008 Abstract Along with the AGTIVE 2007 conference, a Graph Transformation Tools Contest invited tool implementers to present their solutions in order to compare the principles and particular strengths and weaknesses of today s graph transformation tools. This paper documents our contribution to the Tools Contest. The second transformation problem, a transformation from UML activity diagrams to CSP processes, i. e. a transformation between two models, is a typical application for Triple Graph Grammars (TGGs). We present our solution, including the TGG rules and the implementation of our TGG interpreter. Moreover, we point out the advantages of our solution as well as some restrictions of the current implementation. This paper only briefly states the transformation problem (the details can be found in the paper by the contest organizers [1]) and focuses on our TGG approach and the discussion of the rules. For a general and detailed discussion of TGGs, we refer to [5].

2 ii

3 1 1 Introduction Triple Graph Grammars (TGGs) allow to define the relation between two models in a descriptive way. TGGs have been defined by Schürr [7] where the models where represented as graphs. In the original version of TGGs, all nodes had the same type and nodes had no attributes. But, these initial limitations have been overcome in many extensions of TGGs. The main advantage of TGGs is that the relation between two models is defined in a descriptive, rule-based way. These rules can then be used for different purposes: transforming one model into an other (in both directions), integrating two existing models and showing the relations between them, and synchronizing models (meaning that the relation between the two models is maintained whenever a change is made to one of them). The benefit is that there is a single set of rules for all these application scenarios. Today, there are different tools which take a set of TGG rules and then perform these tasks. Some translate the TGG rules to program code, which is then executed in order to perform the task; we call these approaches compiled approaches. Other tools simply take the rules and interpret them; we call these approaches interpreted approaches. Here, we cannot go into the details of the different extensions of TGGs, the different approaches, and the different tools. For an overview of the idea, the purpose, the underlying concepts, and the tools for TGGs, we refer to [5]. The AGTIVE 2007 Tool Contest 1 consists of three different tasks. The second task is a transformation from UML activity diagrams to CSP processes. Though this task does not require transformations in both directions or integration or synchronization of models, where TGGs are at their best, this transformation task can be easily achieved by TGGs. Moreover, we show that the rules are quite simple and closely related to the informal presentation of the transformation in the task definition [1]. In our contribution to the contest, we use a TGG interpreter, which was first developed within a student project at Paderborn University [2, 6] and based on that experience reimplemented in a masters thesis [3]. Though it is in a stable state, we are still improving and extending it (governed by some principles discussed in [5, 4]). Maybe, one of the main advantages of this TGG interpreter is that it is based on Eclipse 2 and, in particular, the EMF technology. This means that the meta model for the two involved models can be standard EMF, resp. Ecore models. Since Ecore is now widely used, this should make it easy for a large group of people (who are using Eclipse/EMF anyway) to use our TGG interpreter for there transformation tasks. This paper is organized as follows. In Section 2, we introduce the meta models of UML activity diagrams and CSP and explain and justify some minor changes which we made to the meta models as presented in original problem definition of the AGTIVE 2007 Tool contest. In Section 3, we introduce the relation between the activity diagram and the CSP models and show how this relation can be expressed with TGG rules. We conclude the paper with a 1 See 2 For information on Eclipse, we refer to the Eclipse web pages:

4 2 2 THE META MODELS discussion in Section 4. Appendix A contains some brief instructions how to download and set up the tool environment and how to start the transformation. 2 The meta models In our solution, we use the meta models as they were presented in the task definition [1]. For technical reasons, we introduced some minor changes which are discussed and justified below. 2.1 Activity diagrams Figure 1 shows the meta model for UML activity diagrams. It shows that an ActivityDiagram consists of ActivityEdges and of ActivityNodes. We furthermore distinguish seven different kinds of ActivityNodes: InitialNode, Action, ForkNode, etc. These are represented as classes derived from ActivityNode. Figure 1: The meta model for activity diagrams Except for the newly introduced class ActivityDiagram, this is exactly the meta model as presented in [1]. We introduced the this additional class for the following reasons: First of all, a meta model for activity diagrams should explicitly show this concept. But, more importantly, EMF needs a so-called root object from which all objects of some diagram are reachable by compositions 3 ; 3 A composition relationship has some special technical implications in EMF and is called a containment in EMF terms.

5 2.2 CSP processes 3 that is why we also introduced the composition relation to the edges and nodes. An example of how a simple activity diagram is represented according to this meta model is shown in Figure 2. On the left-hand side, we see the graphical representation of an activity diagram in so-called concrete syntax. On the righthand side, we see the same diagram in its abstract syntax, represented as an UML object diagram. Activity Diagram :ActivityDiagram break MOVE HOLD :InitialNode source :ActivityEdge name= MOVE target :Action name= break source :ActivityEdge name= HOLD target :FinalNode Figure 2: A simple activity diagram and the corresponding abstract syntax The activity diagram has two ActivityEdges which connect an InitialNode with an Action and an Action with a FinalNode. The action is simply called break here and the two ActivityEdges are labeled with MOVE and HOLD. The attribute values are reflected accordingly in the object diagram. 2.2 CSP processes This CSP meta model describes the format of a abstract syntax tree for textual CSP documents rather than describing actual CSP models. To explain this, let us first have a look at small example CSP process and its corresponding abstract syntax object diagram shown in Figure 3. CSP Document :CSPContainer :ProcessAssignment :ProcessAssignment MOVE = break -> HOLD HOLD = accel -> MOVE processidentifier :Process name= MOVE process :Prefix processidentifier :Process name= HOLD process :Prefix event targetprocess event targetprocess :Event name= break :Process name= HOLD :Event name= accel :Process name= MOVE Figure 3: A CSP process description and the corresponding abstract syntax On the left-hand side, we see a short process description of some system. In CSP terms, MOVE and HOLD represent processes of a system, and break and accel are events which can occur in this system. The expression break HOLD, pronounced break then HOLD says that if the event break occurs, the system behaves as described by the process HOLD. This expression is called a prefix expression and, here, describes what happens in the MOVE process. So the process assignment MOVE=break HOLD means that the system has a process

6 4 2 THE META MODELS MOVE, in which the event break can occur and then the system behaves as described by the process HOLD. The object diagram on the right-hand side of Figure 3 represents the abstract syntax of these expressions: A CSPContainer, representing the CSP document, contains the two ProcessAssignments. Each ProcessAssignment assigns a Prefix expression to a Process. The Prefix expression consists of the Event and another Process. Now note that the two processes MOVE and HOLD occur twice in the process assignments and occur twice as well in the abstract syntax diagram. Their identity is implied by the equality of the name attribute. Thus, the CSP model here closely resembles the textual syntax and is therefore a model for the abstract syntax tree of the textual notation. But, if we want to use this model in a tool which performs some tasks with a given CSP specification, an analysis of all occurrences of semantically identical process objects would be necessary. Therefore, a more application friendly model would have only one instance for each process of a CSP specification. For clarity, we refer to Process instances as process variables from now on. However, we do not want to deviate from the given task, but take a look at the CSP meta model in Figure 4. In contrast to the meta model for activity diagrams, the CSP meta model has a class for the root element already, Csp- Container. This container contains a set of ProcessAssignments. The left-hand side of the assignment statement is the defined process (processidentifier) and the right-hand side refers to a ProcessExpression (process). The process expression can be one of the CSP expressions: A Prefix expression (as we have seen in Figure 3), a Condition or Concurrency expression, or a SKIP expression. All these expressions are explained in more detail shortly in Section 3. Figure 4: The meta model for CSP processes

7 2.3 Correspondence nodes 5 The meta model shown here differs from the meta model given by the task description only in the following two points: First, we added Skip as a possible construct of a ProcessExpression, which was obviously forgotten in the task definition. Second, we added an association from CspContainer to Process called initial. The reason for this is that in the task definition, the activity diagram is translated to a set of processes; but, it is not clear where to start. The additional association now refers to this Process explicitly to represent the system s initial behavior. 2.3 Correspondence nodes When defining the relation between activity diagrams and CSP processes, we establish the relation by additional nodes that refer to elements of both diagrams. These nodes are called correspondence nodes. The exact meaning becomes clearer when we see the rules for defining the relation in Section 3. For sake of completeness, however, we define the types of possible correspondence nodes in Figure 5. Figure 5: The meta model for correspondence nodes Note that these classes have associations to the classes of both models, which are not shown in this diagram. 3 Defining the relation - the TGG rules In this section, we define the actual relation between activity diagrams and CSP processes. Again, we follow the lines of the task description (Sect. 3 of [1]) with some minor deviations which we believe make the relation clearer. We explain the meaning of the TGGs along with presenting them.

8 6 3 DEFINING THE RELATION - THE TGG RULES 3.1 The axiom The most trivial relation between an activity diagram and a CSP process description is that an ActivityDiagram corresponds to a CSPContainer, that is, the two root objects correspond to each other. This is also the starting point of every transformation and, thus, also is called the axiom in TGGs. This axiom is shown in Figure 6. On the left-hand side, it shows an root object of an activity diagram; on the right-hand side, it shows an root object of a CSP process, and in the middle part it shows a correspondence node relating the two. Since sides or positions in a diagram have no meaning, the domain to which the different nodes belong to are explicitly associated with a node defining the domain to which it belongs. We have the domain activity for the objects of an activity diagram and the domain csp for the CSP processes; in addition, we have the domain for the correspondence objects. Figure 6: The axiom Starting from this axiom, we now discuss the further constructs occurring in activity diagrams and show how the corresponding statements are created in the CSP process accordingly Edges The basic idea of the transformation in [1] is that every edge of an activity diagram is translated to a process assignment and for the corresponding process variable (which appears in front of the assignment symbol). The actual expression assigned to the process variable depends on the node to which the edge points and will be filled in by other rules later. This idea is shown in Figure 7. On the left-hand side, it shows an edge of the diagram; the right-hand side shows A A =. Figure 7: Idea: Transforming an edge the corresponding equation in CSP where the right-hand side of the equation is still left open as indicated by the dot. This part of the equation will be filled 4 Actually, we present these rules from the transformation point of view, since this was the task; in general TGGs do not need this direction since they work in both directions (see [5] for more details).

9 3.3 Initial node 7 in by other rules later. Now, we assume that this edge was just added to the activity diagram, which is indicated by the green color and the additional label ; we also indicate, on the right-hand side, that the corresponding equation must be added to the CSP part. This idea can be expressed by a TGG rule which is shown in Figure 8. This is not more than a translation of the informal rule from Figure 7, converting the concrete syntax to the abstract syntax according to the meta models for activity diagrams and CSP processes. On the top, it shows a corresponding Figure 8: TGG rule for an edge pair of an activity diagram and a CSP container, which are supposed to exist already. Therefore, they are shown as black context nodes (and are not labeled with ). Below that, it shows the newly added parts, indicated in green and labeled with : For the domain activity, this is the ActivityEdge, for the domain csp, it is the new ProcessAssignment with the corresponding process for the left-hand side of the assignment. Moreover, there is a new correspondence node as a manifestation of the relation between these concepts. The node with the rounded edges is an additional constraint which guarantees that the values for both name attributes of the edge and the process variable are the same. 3.3 Initial node Next, we deal with the rules for nodes. We start with the rule for the InitialNode. Figure 9 shows the idea of this transformation. We assume that the edge exists already (shown in black) and now the initial node is added as the edge s source node (shown in green and labeled with ). In that case, we mark the corresponding process variable as the initial process 5. Figure 10 shows this idea in terms of a TGG rule. The newly inserted InitialNode corresponds to the newly introduced association initial in the CSP 5 Note that this piece of concrete syntax is our ad-hoc invention for representing the initial process; but, we explicitly added it to the meta model.

10 8 3 DEFINING THE RELATION - THE TGG RULES A A Figure 9: Idea: Transforming the initial node part. Again, we add a correspondence node that keeps track of the relation of these two parts of both models. Figure 10: TGG rule for the initial node 3.4 Actions The idea for transforming an action is very similar. It is shown in Figure 11. We assume that edges A and B are there already and now an action is added between them (again shown in green and labeled with ). Now, we can give the right-hand side of the process assignment for process A, which is a prefix expression of the action followed by the process for B (formalized as a CSP prefix expression). This is shown on the right-hand side. Since this part is to be added, it is indicated in green and labeled with again. The corresponding TGG rule is shown in Figure 14. On the left-hand side (in domain activity), we see the added action between the two arcs. On the right-hand side (in the csp domain), we see the a CSP prefix expression which represents the execution of the action followed by the process B (or a reference to it). This process expression is made the right-hand side of the process assignment defining process A. The two constraints in the rounded boxes guarantee that the name of the action in the activity diagram carries over to the name of the event in CSP, and the name of the edge B carries over to the process B. Note that we exploit that for every edge of the activity diagram, there is a correspondence node which has the corresponding process assignment on the

11 3.4 Actions 9 A action A = action > B B Figure 11: Idea: Transforming an action Figure 12: TGG rule for an action

12 10 3 DEFINING THE RELATION - THE TGG RULES other side. This way, we can refer to it and add the actual definition now, the right-hand side of the assignment. 3.5 Final node The idea for the transformation of the final node is shown in Figure 13. The process definition for the processes corresponding to the incoming edge will be completed by terminating it: The right-hand side of the assignment is SKIP (the process that terminates right away). This will be inserted to the process assignment for process A. A A = SKIP Figure 13: Idea: Transforming the final node The corresponding TGG rule is shown in Figure 14. Figure 14: TGG rule for the final node It could happen that a final node has more than one incoming edge. In that case, the above rule does not work. Since the final node is used as new for the first rule. In the second, it is not new anymore. Therefore, we need an additional rule which just uses a new connection of an edge to the final node and produces the corresponding assignment to SKIP for that process. This rule is shown in Figure 15. It is the same as above except that the final node is not green (not marked by anymore). Actually, there is a concept for unifying these two rules to a single one (we call this concept grey nodes). But, this is not yet fully supported by the current implementation of our TGG interpreter. Therefore, we use two rules here instead.

13 3.6 Merge node 11 Figure 15: TGG rule for additional edges to final node 3.6 Merge node The idea for the merge node is shown in Figure 16. For every incoming edge that is attached to it, we introduce an assignment which assigns the process corresponding to the outgoing edge to the process of the ingoing edge. A C A = C Figure 16: Idea: Transforming the merge node Figure 17 shows the corresponding TGG rule for this transformation. But, as for final nodes, a merge node can have several incoming arcs. Therefore, we need an additional rule that deals with all further arcs (when the merge node is there already). This rule is shown in Figure 18.

14 12 3 DEFINING THE RELATION - THE TGG RULES Figure 17: TGG rule for first edges to merge node Figure 18: TGG rule for additional edges to merge node

15 3.7 Decision node Decision node Figure 19 shows the general idea of the translation of a decision node. All the outgoing edges of the decision node are combined into a large CSP expression (a choice) which is becomes the right-hand side of the process assignment corresponding to the incoming edge A of the decision node. A B[x] C[y] D[else] A = B <x> ( C <y> D ) Figure 19: Idea: Transforming the decision node The problem, however, is that the number of outgoing arcs is not fixed. Therefore, we need to have rules that build the expression on the right-hand side successively. To do this, we have three rules: One for the first outgoing edge of the decision node, one for all further outgoing edges (except for the last one), and one for the last outgoing edge. Figure 20 shows the idea of these three rules. The first rule creates the left-most part of the expression, but leaves the right-hand side of the condition expression open (to be filled in by the next edge). The second rule (for all intermediate edges) fills in the open part (right-hand side) of the expression from the previous rule and constructs another condition expression within it; again the right-hand side of that new condition expression is left open. This way, for all the remaining outgoing edges, the expression is growing into an increasingly nested condition expression. For the last edge (with guard else), the rule completes the condition expression by filling in only that process into the still open right-hand side of the previous condition expression, thus marking the last of the nested condition expressions. Figures show the corresponding TGG rules. Basically, these are straight-forward translations of the rules from Figure 20. In the second and third rule, we use a stereotype ( next and last ) which makes sure that the correct rule is applied 6. Note that, in the first rule, we only have a comment (not a stereotype) because the decision node is new here. Therefore, we know by this information already that the respective edge must be the first one that we consider. 6 Note that this has no actual meaning for the semantics, but guarantees that the interpreter does not run into deadends and, therefore, avoids deadlocks and increases efficiency.

16 14 3 DEFINING THE RELATION - THE TGG RULES A B[x] A = B <x>. A X <xx> ( C <y>. ) C[y] A D[else] X <xx> D Figure 20: Idea: Transforming the decision node (details)

17 3.7 Decision node 15 Figure 21: 1. TGG rule for the decision node Figure 22: 2. TGG rule for the decision node

18 16 3 DEFINING THE RELATION - THE TGG RULES Figure 23: 3. TGG rule for the decision node

19 3.8 Fork nodes Fork nodes The rules for the fork nodes follow the same principles as the rules for the decision node. The main difference is that the CSP choice is now replaced by the CSP parallel operator. Therefore, we do not explain these rules here anymore. The three rules are shown in Figures Figure 24: 1. TGG rule for the fork node Figure 25: 2. TGG rule for the fork node

20 18 3 DEFINING THE RELATION - THE TGG RULES Figure 26: 3. TGG rule for the fork node

21 3.9 Join node Join node The rules for the join node are also similar to this idea. All the incoming edges perform a synchronization and then stop, except for one which continues with the process for the outgoing edge. This gives rise to two rules which are shown in Figures 27 and 28. Figure 27: 1. TGG rule for the join node Figure 28: 2. TGG rule for the join node

22 20 4 DISCUSSION 4 Discussion The rules and the TGG interpreter are made available online and can be installed on Eclipse. The installation is explained in more detail in Sect. A. Before coming to these very technical issues, we briefly discuss our approach and its main benefits. As shown, at least for the first rules in more detail, TGGs can be used to define a relation between two models in an intuitive way. The rules are only a more technical representation (in abstract syntax) of the rules given in the informal presentation of the problem. Termination is never a problem with TGGs, provided that every rule has at least one green part in every domain. But, it could happen that not the complete source model can be translated to the target because the source cannot be completely matched by the rules. In that case, the translation would not be correct. If we assume that there is only one initial node, and that every action node has exactly one incoming and on outgoing edge (which is not required in UML, but was required in the task description), our rules will always be able to completely match the activity diagram and the transformation will thus be correct. Actually our translation is not deterministic. This, however, is not a problem of our TGG rules, but is in the nature of the problem. E. g. for the decision node there are different expression that reflect that decision (depending on the order of the edges, a multiway choice can be translated into a combination of binary choices in many different ways). Likewise the order of processes in the parallel expression constructed for the fork node is not fixed in our rules. Since this was in the nature of the problem, we did not bother to make this deterministic. But all the generated expressions, are equivalent (following the assumption from the task description that all conditions are disjoint). The generated CSP models do not always exactly reflect the semantics of activity diagrams 7. But, again, this is not a problem of TGGs, but a problem inherent to the transformation proposed in the task definition. Since we did not want to spent our time on sophisticated semantical considerations of UML activity diagrams and CSP processes, we did not correct these problems and did not work on a semantically correct transformation. Rather, we defined the transformation as proposed in the task definition. Since we did not want to go into these semantical considerations (and we did not want to come up with just another semantics for activity diagrams) a verification that this translation is correct did not make much sense and we did not do any of that kind. The task description also mentions control mechanisms that would be used on top of a transformation mechanism. Actually, we did not need 7 When loops and forks are not properly nested, there are some problems with the transformation as proposed in the transformation task.

23 REFERENCES 21 that (except for the stereotypes) for our TGG rules; which is very much in the spirit of TGG rules, since such additional control mechanisms often spoil the benefits of TGGs (see [5] for a detailed discussion). Though TGGs work nicely on this example, we did not fully exploit the power of TGGs here, since the proposed problem was a transformation problem only. The much more important features of TGGs for integrating models or for synchronizing them don t show in this example. One other important issue is performance of the transformations. For small examples the transformation engine works reasonably well. But, we did not yet experiment with larger examples. If there should be problems with efficiency, we still have the possibility to use a compiled approach of TGGs, which typically is much faster. Moreover, our current research also investigates evaluation strategies in order to improve the performance of the TGG interpreter. This, however, is subject to future research. References [1] Dénes Bisztray, Karsten Ehrig, and Reiko Heckel. Case study: UML to CSP transformation. AGTIVE 2007 Transformation Contest, July [2] A. Gepting, J. Greenyer, E. Kindler, A. Maas, S. Munkelt, C. Pales, T. Pivl, O. Rohe, V. Rubin, M. Sanders, A. Scholand, C. Wagner, and R. Wagner. Component tools: A vision of a tool. In Proc. of the 11th Workshop on Algorithms and Tools for Petri Nets (AWPN), Technical Report tr-ri , Paderborn University, Department of Computer Science, pages 37 42, September [3] Joel Greenyer. A study of technologies for model transformation: Reconciling TGGs with QVT. Master s thesis, Department of Computer Science, University of Paderborn, July [4] Joel Greenyer and Ekkart Kindler. Reconciling TGGs with QVT. In G. Engels, B. Opdyke, D. C. Schmidt, F. Weil (eds.) Proc. of MODELS 2007, Model Driven Engineering Languages and Systems, 10 th International Conference, Nashville, USA. Lecture Notes in Computer Science 4735, pages 16 30, Springer, September [5] E. Kindler and R. Wagner. Triple graph grammars: Concepts, extensions, implementations, and application scenarios. Technical Report tr-ri , Department of Computer Science, University of Paderborn, Department of Computer Science, University of Paderborn, June [6] Ekkart Kindler, Vladimir Rubin, and Robert Wagner. An adaptable TGG interpreter for in-memory model transformation. In Proc. of FUJABA Days 2004, Darmstadt, Germany. Pages 35 38, September 2004.

24 22 REFERENCES [7] Andy Schürr. Specification of graph translators with triple graph grammars. In Ernst W. Mayr, Gunther Schmidt, and Gottfried Tinhofer, editors, Graph-Theoretic Concepts in Computer Science, 20 th International Workshop, WG 94, Herrsching, Germany, Proceedings, Lecture Notes in Computer Science 903, pages , June 1995.

25 23 A Appendix: Getting started At last, we give a brief overview on how to obtain, install, and to use our tool along with the TGG rules and some example models. A.1 Preparations Install Eclipse 3.3, GMF and all its dependencies. You can follow the tutorial at Then install the Activity2CSP feature (from the update site de/cs/ag-schaefer-static/downloads/agtive2007case-tgguml2csp/). We have prepared a few examples which you can download as a compressed Eclipse project here agtive2007case-tgguml2csp/examples.zip This project includes the set of TGG rules used for our model transformation. Import the project into your Eclipse workspace by using File Import Existing Projects into Workspace Select Archive file. A.2 Using the Examples When you open /examples/example ForkJoin.activity diagram, you can see a sample activity diagram in a visual editor 8. The diagram visualizes the model /examples/example ForkJoin.activity. When opening /examples/example ForkJoin.csp, you will see the corresponding CSP model in a CSP Tree Model Editor. This model is still empty (with the exception of the empty root model element), because it will be filled by the transformation results. In the /configuration folder you find the prepared TGG interpreter configuration files which are needed to run the transformation. Also, this is the location of the correspondence model resources which will additionally be created when the transformation result is stored. To transform an activity diagram model, for example the Example ForkJoin.activity, right-clicking on the corresponding.interpreter file (having the same file prefix) and then select TGGInterpreter Start TGGInterpreter. After the transformation is completed, save the generated CSP model. You can now open the (modified) /examples/example ForkJoin.csp with the CSP Editor. Additionally, you may transform this model file to a CSP text file by right-clicking on it, selecting the CSP export context menu action 9. A.3 Creating a new model To create a custom activity diagram model, you can simply modify one of the provided examples or create a new activity diagram model. In case you 8 The Activity Diagram Editor is neither completed nor bug-free and should only provide a more user-friendly view of the diagram. 9 You will have to refresh the folder where you generated the file in order to see it.

26 24 A APPENDIX: GETTING STARTED want to specify a new model, note that you also need to create a target CSP model resource which has a CSPContainer object as its root, but is empty otherwise. To create the new activty diagram (resp. CSP) model, click File New Other... Example EMF Model Creation Wizards Activity Model (/ Csp Model ) and select Diagram (/ Container ) as Model Object. Fill the.activity model using the tree editor or use the graphical editor (select Initialize activity diagram diagram file in the context menu). To transform the created model, you have to create a new.interpreter configuration file. Use the povided wizard: File New Other... TGG Interpreter Wizard New TGG Interpreter Configuration Wizard. First select a name for the.interpreter configuration file, then select the source model (your created activity file). On the third page select the CSP file. On the next page, select our transformation rule set at /TGG/Activity2Csp.tgg. Make sure you select only this single file. Click Next and then Refresh. Select TCorrespondenceRoot as Container and click Finish. Use the created.interpreter file as described above.

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios Technical Report tr-ri-07-284 Ekkart Kindler and Robert Wagner Department of Computer Science University of Paderborn

More information

Comparing Relational Model Transformation Technologies Implementing QVT with Triple Graph Grammars

Comparing Relational Model Transformation Technologies Implementing QVT with Triple Graph Grammars Noname manuscript No. (will be inserted by the editor) Comparing Relational Model Transformation Technologies Implementing QVT with Triple Graph Grammars Joel Greenyer 1, Ekkart Kindler 2 1 Software Engineering

More information

Reconciling TGGs with QVT

Reconciling TGGs with QVT Faculty for Computer Science Software Engineering Group Warburger Straße 100 33098 Paderborn Germany A Study of Model Transformation Technologies: Reconciling TGGs with QVT Diploma Thesis by Joel Greenyer

More information

UNIVERSITÄT PADERBORN. ComponentTools

UNIVERSITÄT PADERBORN. ComponentTools UNIVERSITÄT PADERBORN ComponentTools Component Library Concept Project Group ComponentTools pg-components@uni-paderborn.de Alexander Gepting, Joel Greenyer, Andreas Maas, Sebastian Munkelt, Csaba Pales,

More information

Termination Analysis of the Transformation UML to CSP

Termination Analysis of the Transformation UML to CSP Magyar Kutatók 8. Nemzetközi Szimpóziuma 8 th International Symposium of Hungarian Researchers on Computational Intelligence and Informatics Termination Analysis of the Transformation UML to CSP Márk Asztalos,

More information

Model-Independent Differences

Model-Independent Differences Model-Independent Differences Patrick Könemann Technical University of Denmark, Informatics and Mathematical Modelling Richard Petersens Plads, DK-2800 Kgs. Lyngby, Denmark pk@imm.dtu.dk Abstract Computing

More information

A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink

A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink Holger Giese, Matthias Meyer, Robert Wagner Software Engineering Group Department of Computer Science University of Paderborn

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

Towards a UML Profile for Service-Oriented Architectures 1

Towards a UML Profile for Service-Oriented Architectures 1 Towards a UML Profile for Service-Oriented Architectures 1 Reiko Heckel, Marc Lohmann, and Sebastian Thöne Faculty of Computer Science, Electrical Engineering and Mathematics University of Paderborn, Germany

More information

Proceedings of the Sixth International Workshop on Graph Transformation and Visual Modeling Techniques (GT-VMT 2007)

Proceedings of the Sixth International Workshop on Graph Transformation and Visual Modeling Techniques (GT-VMT 2007) Electronic Communications of the EASST Volume 6 (2007) Proceedings of the Sixth International Workshop on Graph Transformation and Visual Modeling Techniques (GT-VMT 2007) Rule-Level Verification of Business

More information

epnk: A generic PNML tool Users and Developers Guide

epnk: A generic PNML tool Users and Developers Guide epnk: A generic PNML tool Users and Developers Guide Ekkart Kindler Denmark s Technical University DTU Informatics DK-2800 Kgs. Lyngby Denmark eki@imm.dtu.dk February 17, 2011 version 0.9.1 IMM-Technical

More information

A Simulator for high level Petri Nets: Model based design and implementation

A Simulator for high level Petri Nets: Model based design and implementation A Simulator for high level Petri Nets: Model based design and implementation Mindaugas Laganeckas Kongens Lyngby 2012 IMM-M.Sc.-2012-101 Technical University of Denmark Informatics and Mathematical Modelling

More information

BPMN2BPEL transformation with Fujaba - a Case Study

BPMN2BPEL transformation with Fujaba - a Case Study BPMN2BPEL transformation with Fujaba - a Case Study Ruben Jubeh SE, Kassel University Wilhelmshöher Allee 73 34121 Kassel ruben.jubeh@uni-kassel.de ABSTRACT We have modeled a BPMN to BPEL synthesis transformation

More information

Detailed Description and User Guide

Detailed Description and User Guide Overview The aim of this Use Case is to implement a set of mappings already defined between a pair of metamodels using the ATL language. More specifically, we want to implement the transformation for obtaining

More information

Automatic Generation of Graph Models for Model Checking

Automatic Generation of Graph Models for Model Checking Automatic Generation of Graph Models for Model Checking E.J. Smulders University of Twente edwin.smulders@gmail.com ABSTRACT There exist many methods to prove the correctness of applications and verify

More information

AGG: A Graph Transformation Environment for Modeling and Validation of Software

AGG: A Graph Transformation Environment for Modeling and Validation of Software AGG: A Graph Transformation Environment for Modeling and Validation of Software Gabriele Taentzer Technische Universität Berlin, Germany gabi@cs.tu-berlin.de Abstract. AGG is a general development environment

More information

An Approach to Formalize UML Sequence Diagrams in CSP

An Approach to Formalize UML Sequence Diagrams in CSP 2010 3rd International Conference on Computer and Electrical Engineering (ICCEE 2010) IPCSIT vol. 53 (2012) (2012) IACSIT Press, Singapore DOI: 10.7763/IPCSIT.2012.V53.No.2.17 An Approach to Formalize

More information

Detecting and Preventing Power Outages in a Smart Grid using emoflon

Detecting and Preventing Power Outages in a Smart Grid using emoflon Detecting and Preventing Power Outages in a Smart Grid using emoflon Sven Peldszus, Jens Bürger, Daniel Strüber {speldszus,buerger,strueber}@uni-koblenz.de University of Koblenz and Landau Abstract We

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis SETra 2004 Preliminary Version Detecting Structural Refactoring Conflicts Using Critical Pair Analysis Tom Mens 1 Software Engineering Lab Université de Mons-Hainaut B-7000 Mons, Belgium Gabriele Taentzer

More information

The Implications of Optimality Results for Incremental Model Synchronization for TGGs Holger Giese, Stephan Hildebrandt

The Implications of Optimality Results for Incremental Model Synchronization for TGGs Holger Giese, Stephan Hildebrandt The Implications of Optimality Results for Incremental Model Synchronization for TGGs Bi-directional transformations (BX) Theory and Applications Across Disciplines (13w5115) December 1-6, 2013 Holger

More information

How useful is the UML profile SPT without Semantics? 1

How useful is the UML profile SPT without Semantics? 1 How useful is the UML profile SPT without Semantics? 1 Susanne Graf, Ileana Ober VERIMAG 2, avenue de Vignate - F-38610 Gières - France e-mail:{susanne.graf, Ileana.Ober}@imag.fr http://www-verimag.imag.fr/~{graf,iober}

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Proseminar. (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker. Model-Driven Software Engineering. Software Engineering Group

Proseminar. (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker. Model-Driven Software Engineering. Software Engineering Group Proseminar Model-Driven Software Engineering (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker Model-Driven Software Engineering Software Engineering Group 1 Outline Basic Requirements Preliminary Dates

More information

AMFIBIA: A Meta-Model for the Integration of Business Process Modelling Aspects

AMFIBIA: A Meta-Model for the Integration of Business Process Modelling Aspects Downloaded from orbit.dtu.dk on: Mar 31, 2018 AMFIBIA: A Meta-Model for the Integration of Business Process Modelling Aspects Axenath, Björn; Kindler, Ekkart; Rubin, Vladimir Published in: International

More information

A Graphical Specification of Model Composition With Triple Graph Grammars

A Graphical Specification of Model Composition With Triple Graph Grammars A Graphical Specification of Model Composition With Triple Graph Grammars Adil Anwar 1, Amine Benelallam 2, Akram Idani 3, Bernard Coulette 4, and Mahmoud Nassar 2 1 Siweb, Computer Science Department,

More information

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen Formal semantics of loosely typed languages Joep Verkoelen Vincent Driessen June, 2004 ii Contents 1 Introduction 3 2 Syntax 5 2.1 Formalities.............................. 5 2.2 Example language LooselyWhile.................

More information

Rule Based Bi-Directional Transformation of UML2 Activities into Petri Nets

Rule Based Bi-Directional Transformation of UML2 Activities into Petri Nets Rule Based Bi-Directional Transformation of UML2 Activities into Petri Nets A. Spiteri Staines Abstract Many modern software models and notations are graph based. UML 2 activities are important notations

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

Consolidation of Interacting BPEL Process Models with Fault Handlers

Consolidation of Interacting BPEL Process Models with Fault Handlers Consolidation of Interacting BPEL Process Models with Fault Handlers Sebastian Wagner, Oliver Kopp, and Frank Leymann Institute of Architecture of Application Systems, University of Stuttgart, Germany

More information

The TTC 2015 Model Execution Case

The TTC 2015 Model Execution Case The TTC 2015 Model Execution Case Tanja Mayerhofer and Manuel Wimmer Business Informatics Group, Vienna University of Technology, Austria {mayerhofer,wimmer}@big.tuwien.ac.at Abstract. This paper describes

More information

Eclipse JWT Java Workflow Tooling. Workflow Editor (WE): Installation and Usage Tutorial

Eclipse JWT Java Workflow Tooling. Workflow Editor (WE): Installation and Usage Tutorial Eclipse JWT Java Workflow Tooling Title of this document Workflow Editor (WE): Installation and Usage Tutorial Document information last changes component version 13.02.2008 0.4.0 Document created by Florian

More information

Tiger EMF Model Transformation Framework (EMT)

Tiger EMF Model Transformation Framework (EMT) Tiger EMF Model Transformation Framework (EMT) Version 1.2.0 User Manual TU Berlin EMT Project Team: Enrico Biermann, Karsten Ehrig, Claudia Ermel, Christian Köhler, Günter Kuhns, Gabi Taentzer Email:

More information

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Electronic Communications of the EASST Volume X (2010) Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010) Teaching Model Driven Language Handling Terje

More information

Analysis of UML Activities using Dynamic Meta Modeling

Analysis of UML Activities using Dynamic Meta Modeling Analysis of UML Activities using Dynamic Meta Modeling Gregor Engels, Christian Soltenborn, and Heike Wehrheim Universität Paderborn, Institut für Informatik, 33098 Paderborn, Germany {engels,christian,wehrheim}@upb.de

More information

Static analysis and testing of executable DSL specification

Static analysis and testing of executable DSL specification Static analysis and testing of executable DSL specification Qinan Lai 1, Andy Carpenter 1 1 School of Computer Science, the University of Manchester, Manchester, UK {laiq,afc}@cs.man.ac.uk Keywords: Abstract:

More information

Appendix D: Mapping BPMN to BPD Profile

Appendix D: Mapping BPMN to BPD Profile Appendix D: Mapping BPMN to BPD Profile Members of bpmi.org and the OMG are interested in the unification of the UML 2.0 and BPMN notation for the support of the business user. This draft mapping is in

More information

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Somayeh Azizi 1, Vahid Panahi 2 Computer science department, Sama Technical and vocational, Training

More information

CISC836: Models in Software Development: Methods, Techniques and Tools

CISC836: Models in Software Development: Methods, Techniques and Tools CISC836: Models in Software Development: Methods, Techniques and Tools Topic 3: Expressing Software Models Expressing SW models: Overview 1. Examples of software modeling languages 1. UML (for modeling

More information

Behaviour in Model-based Software Engineering:

Behaviour in Model-based Software Engineering: Behaviour in Model-based Software Engineering: A flexible coordination language based on AMFIBIA Author: Yang Li Supervisor: Ekkart Kindler March 21, 2011 ii Contents 1 Introduction 1 1.1 Example................................

More information

3.7 Denotational Semantics

3.7 Denotational Semantics 3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These

More information

A UML 2 Profile for Variability Models and their Dependency to Business Processes

A UML 2 Profile for Variability Models and their Dependency to Business Processes A UML 2 Profile for Variability Models and their Dependency to Business Processes Birgit Korherr and Beate List Women s Postgraduate College for Internet Technologies Institute of Software Technology and

More information

Supporting Modeling in the Large in Fujaba

Supporting Modeling in the Large in Fujaba Supporting Modeling in the Large in Thomas Buchmann Angewandte Informatik 1 Universität Bayreuth D-95440 Bayreuth thomas.buchmann@unibayreuth.de Alexander Dotor Angewandte Informatik 1 Universität Bayreuth

More information

Dresden OCL2 in MOFLON

Dresden OCL2 in MOFLON Dresden OCL2 in MOFLON 10 Jahre Dresden-OCL Workshop Felix Klar Felix.Klar@es.tu-darmstadt.de ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering and Information Technology

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Exploiting Visual Languages Generation and UML Meta Modeling to Construct Meta-CASE Workbenches

Exploiting Visual Languages Generation and UML Meta Modeling to Construct Meta-CASE Workbenches Electronic Notes in Theoretical Computer Science 72 No. 3 (2003) URL: http://www.elsevier.nl/locate/entcs/volume72.html 11 pages Exploiting Visual Languages Generation and UML Meta Modeling to Construct

More information

A Brief Introduction to Coloured Petri Nets

A Brief Introduction to Coloured Petri Nets A Brief Introduction to Coloured Petri Nets Kurt Jensen Computer Science Department, University of Aarhus NyMunkegade, Bldg. 540, DK-8000 AarhusC, Denmark E-mml: kjensen9 WWV~: http://www.daimi.aau.dk/~kjensen/

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

A GrGen.NET solution of the Model Migration Case for the Transformation Tool Contest 2010

A GrGen.NET solution of the Model Migration Case for the Transformation Tool Contest 2010 A GrGen.NET solution of the Model Migration Case for the Transformation Tool Contest 2010 Sebastian Buchwald Edgar Jakumeit June 3, 2010 1 Introduction The challenge of the Model Migration Case [1] is

More information

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations Agris Sostaks, Elina Kalnina, Audris Kalnins, Edgars Celms, and Janis Iraids Institute of Computer Science and Mathematics,

More information

Integrating decision management with UML modeling concepts and tools

Integrating decision management with UML modeling concepts and tools Downloaded from orbit.dtu.dk on: Dec 17, 2017 Integrating decision management with UML modeling concepts and tools Könemann, Patrick Published in: Joint Working IEEE/IFIP Conference on Software Architecture,

More information

WoPeD Workflow Petri Net Designer

WoPeD Workflow Petri Net Designer WoPeD Workflow Petri Net Designer Thomas Freytag University of Cooperative Education (Berufsakademie) Department of Computer Science D-76052 Karlsruhe freytag@ba-karlsruhe.de Abstract. WoPeD (WoPeD Petrinet

More information

Introduction to MDE and Model Transformation

Introduction to MDE and Model Transformation Vlad Acretoaie Department of Applied Mathematics and Computer Science Technical University of Denmark rvac@dtu.dk DTU Course 02291 System Integration Vlad Acretoaie Department of Applied Mathematics and

More information

Towards a Framework for Modelling and Verification of Relay Interlocking Systems

Towards a Framework for Modelling and Verification of Relay Interlocking Systems Downloaded from orbit.dtu.dk on: May 02, 2018 Towards a Framework for Modelling and Verification of Relay Interlocking Systems Haxthausen, Anne Elisabeth Published in: Modeling, Development and Verification

More information

Issues on Decentralized Consistency Checking of Multi-lateral Collaborations

Issues on Decentralized Consistency Checking of Multi-lateral Collaborations Issues on Decentralized Consistency Checking of Multi-lateral Collaborations Andreas Wombacher University of Twente Enschede The Netherlands a.wombacher@utwente.nl Abstract Decentralized consistency checking

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

More information

Petri-net-based Workflow Management Software

Petri-net-based Workflow Management Software Petri-net-based Workflow Management Software W.M.P. van der Aalst Department of Mathematics and Computing Science, Eindhoven University of Technology, P.O. Box 513, NL-5600 MB, Eindhoven, The Netherlands,

More information

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations 1 MDD with OMG Standards MOF, OCL, QVT & Graph Transformations Andy Schürr Darmstadt University of Technology andy. schuerr@es.tu-darmstadt.de 20th Feb. 2007, Trento Outline of Presentation 2 Languages

More information

Proceedings of the 7th International Workshop on Graph Based Tools (GraBaTs 2012)

Proceedings of the 7th International Workshop on Graph Based Tools (GraBaTs 2012) Electronic Communications of the EASST Volume 54 (2012) Proceedings of the 7th International Workshop on Graph Based Tools (GraBaTs 2012) Visual Modeling and Analysis of EMF Model Transformations Based

More information

State Machine Diagrams

State Machine Diagrams State Machine Diagrams Introduction A state machine diagram, models the dynamic aspects of the system by showing the flow of control from state to state for a particular class. 2 Introduction Whereas an

More information

ModelicaML: Getting Started Issue April 2012

ModelicaML: Getting Started Issue April 2012 ModelicaML: Getting Started Issue 1.6.5 13. April 2012 Wladimir Schamai EADS Innovation Works (Hamburg, Germany) Linkoping University (Linkoping, Sweden) Abstract: This document provides a short introduction

More information

Lecture 5: Declarative Programming. The Declarative Kernel Language Machine. September 12th, 2011

Lecture 5: Declarative Programming. The Declarative Kernel Language Machine. September 12th, 2011 Lecture 5: Declarative Programming. The Declarative Kernel Language Machine September 12th, 2011 1 Lecture Outline Declarative Programming contd Dataflow Variables contd Expressions and Statements Functions

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

Statechart Modeling with Fujaba

Statechart Modeling with Fujaba GraBaTs 04 Preliminary Version Statechart Modeling with Fujaba Leif Geiger Albert Zündorf University of Kassel, Software Engineering Research Group, Wilhelmshöher Allee 73, 34121 Kassel, Germany {leif.geiger

More information

CITS5501 Software Testing and Quality Assurance Formal methods

CITS5501 Software Testing and Quality Assurance Formal methods CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005

More information

Transformational pattern system - some assembly required

Transformational pattern system - some assembly required GT-VMT 2006 Transformational pattern system - some assembly required Mika Siikarla 1 and Tarja Systä 2 Institute of Software Systems Tampere University of Technology Tampere, Finland Abstract In the context

More information

Modeling, Testing and Executing Reo Connectors with the. Reo, Eclipse Coordination Tools

Modeling, Testing and Executing Reo Connectors with the. Reo, Eclipse Coordination Tools Replace this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. Modeling, Testing and Executing Reo Connectors with the

More information

Managing test suites for services

Managing test suites for services Managing test suites for services Kathrin Kaschner Universität Rostock, Institut für Informatik, 18051 Rostock, Germany kathrin.kaschner@uni-rostock.de Abstract. When developing an existing service further,

More information

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1 INTRODUCTION TO EMF Creating Model using EMF This is the basic method of creating the Model instance using EMF (Eclipse Modelling Framework). In this tutorial we are going to explain the following, 1.

More information

Towards Better Support for Pattern-Oriented Software Development

Towards Better Support for Pattern-Oriented Software Development Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,

More information

Modeling the Evolution of Aspect Configurations using Model Transformations

Modeling the Evolution of Aspect Configurations using Model Transformations Modeling the Evolution of Aspect Configurations using Model Transformations Uwe Zdun, Mark Strembeck Institute of Information Systems, New Media Lab Vienna University of Economics, Austria {uwe.zdun mark.strembeck}@wu-wien.ac.at

More information

want turn==me wait req2==0

want turn==me wait req2==0 Uppaal2k: Small Tutorial Λ 16 October 2002 1 Introduction This document is intended to be used by new comers to Uppaal and verification. Students or engineers with little background in formal methods should

More information

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No. # 10 Lecture No. # 16 Machine-Independent Optimizations Welcome to the

More information

A graphical user interface for service adaptation

A graphical user interface for service adaptation A graphical user interface for service adaptation Christian Gierds 1 and Niels Lohmann 2 1 Humboldt-Universität zu Berlin, Institut für Informatik, Unter den Linden 6, 10099 Berlin, Germany gierds@informatik.hu-berlin.de

More information

MANAGEMENT OF CROSS-DOMAIN MODEL CONSISTENCY FOR BEHAVIORAL MODELS OF MECHATRONIC SYSTEMS

MANAGEMENT OF CROSS-DOMAIN MODEL CONSISTENCY FOR BEHAVIORAL MODELS OF MECHATRONIC SYSTEMS INTERNATIONAL DESIGN CONFERENCE - DESIGN 2012 Dubrovnik - Croatia, May 21-24, 2012. MANAGEMENT OF CROSS-DOMAIN MODEL CONSISTENCY FOR BEHAVIORAL MODELS OF MECHATRONIC SYSTEMS J. Rieke, R. Dorociak, O. Sudmann,

More information

12 The PEPA Plug-in for Eclipse

12 The PEPA Plug-in for Eclipse 12 The PEPA Plug-in for Eclipse In this lecture note we introduce the tool support which is available when modelling with PEPA. Undertaking modelling studies of any reasonable size is only possible if

More information

Adapting FUJABA for Building a Meta Modelling Framework

Adapting FUJABA for Building a Meta Modelling Framework Adapting FUJABA for Building a Meta Modelling Framework Carsten Amelunxen, Alexander Königs, Tobias Rötschke, Andy Schürr Technische Univeristät Darmstadt Institut für Datentechnik, FG Echtzeitsysteme

More information

Designing and documenting the behavior of software

Designing and documenting the behavior of software Chapter 8 Designing and documenting the behavior of software Authors: Gürcan Güleşir, Lodewijk Bergmans, Mehmet Akşit Abstract The development and maintenance of today s software systems is an increasingly

More information

Security for Multithreaded Programs under Cooperative Scheduling

Security for Multithreaded Programs under Cooperative Scheduling Security for Multithreaded Programs under Cooperative Scheduling Alejandro Russo and Andrei Sabelfeld Dept. of Computer Science and Engineering, Chalmers University of Technology 412 96 Göteborg, Sweden,

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

From Task Graphs to Petri Nets

From Task Graphs to Petri Nets From Task Graphs to Petri Nets Anthony Spiteri Staines Department of Computer Inf. Systems, Faculty of ICT, University of Malta Abstract This paper describes the similarities between task graphs and Petri

More information

Topic 1: What is HoTT and why?

Topic 1: What is HoTT and why? Topic 1: What is HoTT and why? May 5, 2014 Introduction Homotopy type theory (HoTT) is a newly emerging field of mathematics which is currently being developed as a foundation of mathematics which is in

More information

these developments has been in the field of formal methods. Such methods, typically given by a

these developments has been in the field of formal methods. Such methods, typically given by a PCX: A Translation Tool from PROMELA/Spin to the C-Based Stochastic Petri et Language Abstract: Stochastic Petri ets (SPs) are a graphical tool for the formal description of systems with the features of

More information

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Week 02 Module 06 Lecture - 14 Merge Sort: Analysis So, we have seen how to use a divide and conquer strategy, we

More information

Model Refactoring in Eclipse by LTK, EWL, and EMF Refactor: A Case Study

Model Refactoring in Eclipse by LTK, EWL, and EMF Refactor: A Case Study Model Refactoring in Eclipse by LTK, EWL, and EMF Refactor: A Case Study Thorsten Arendt 1, Florian Mantz 1, Lars Schneider 2, Gabriele Taentzer 1 1 Philipps-Universität Marburg, Germany, FB 12 - Mathematics

More information

2.2 Syntax Definition

2.2 Syntax Definition 42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions

More information

EMF Code Generation with Fujaba

EMF Code Generation with Fujaba EMF Code Generation with Fujaba Leif Geiger Universität Kassel Wilhelmshöher Allee 73 34121 Kassel leif.geiger@uni-kassel.de Thomas Buchmann Universität Bayreuth Universitätsstr. 30 95447 Bayreuth thomas.buchmann@unibayreuth.de

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering I. Introduction Introduction Motivation: Software engineering & management Agile development The role of models in software engineering

More information

Ontology-based Model Synchronisation

Ontology-based Model Synchronisation Ontology-based Model Synchronisation Federico Rieckhof, Mirko Seifert, and Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik D-01062, Dresden, Germany federico.rieckhof

More information

Correctness and Completeness of Generalised Concurrent Model Synchronisation Based on Triple Graph Grammars

Correctness and Completeness of Generalised Concurrent Model Synchronisation Based on Triple Graph Grammars Correctness and Completeness of Generalised Concurrent Model Synchronisation Based on Triple Graph Grammars Susann Gottmann 1, Frank Hermann 1, Nico Nachtigall 1, Benjamin Braatz 1, Claudia Ermel 2, Hartmut

More information

Metamodeling. 16. April 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 1

Metamodeling. 16. April 2012 Real-Time Systems Lab Prof. Dr. Andy Schürr Dr. Gergely Varró 1 Metamodeling The slides of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics Group) 16. April 2012

More information

Bachelor of Engineering, IT Thesis

Bachelor of Engineering, IT Thesis Technical University of Denmark Bachelor of Engineering, IT Thesis models Jakob Frydensberg Study no.: s020629 May 2008 Internal Report Number: IMM-B.Eng-2008-5 Supervisor: Hubert Baumeister, IMM, DTU

More information

Solving the TTC 2011 Model Migration Case with UML-RSDS

Solving the TTC 2011 Model Migration Case with UML-RSDS Solving the TTC 2011 Model Migration Case with UML-RSDS K. Lano, S. Kolahdouz-Rahimi Dept. of Informatics, King s College London, Strand, London, UK kevin.lano@kcl.ac.uk In this paper we apply the UML-RSDS

More information

Scenario integration via the transformation and manipulation of higher-order graphs

Scenario integration via the transformation and manipulation of higher-order graphs Scenario integration via the transformation and manipulation of higher-order graphs Hongzhi Liang School of Computing, Queen s University, Canada liang@cs.queensu.ca Abstract. The integration of different

More information

Byzantine Consensus in Directed Graphs

Byzantine Consensus in Directed Graphs Byzantine Consensus in Directed Graphs Lewis Tseng 1,3, and Nitin Vaidya 2,3 1 Department of Computer Science, 2 Department of Electrical and Computer Engineering, and 3 Coordinated Science Laboratory

More information

Specifying Precise Use Cases with Use Case Charts

Specifying Precise Use Cases with Use Case Charts Specifying Precise Use Cases with Use Case Charts Jon Whittle Dept of Information & Software Engineering George Mason University 4400 University Drive Fairfax, VA 22030 jwhittle@ise.gmu.edu Abstract. Use

More information

Interactions A link message

Interactions A link message Interactions An interaction is a behavior that is composed of a set of messages exchanged among a set of objects within a context to accomplish a purpose. A message specifies the communication between

More information

with openarchitectureware

with openarchitectureware Model-Driven Development with openarchitectureware Markus Völter voelter@acm.orgorg www.voelter.de Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de 2006-7 Völter,

More information

Modeling Systems Using Design Patterns

Modeling Systems Using Design Patterns Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk

More information