=Paper=
{{Paper
|id=None
|storemode=property
|title=
Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars
|pdfUrl=https://ceur-ws.org/Vol-1112/09-paper.pdf
|volume=Vol-1112
|dblpUrl=https://dblp.org/rec/conf/models/Gottmann0EEM13
}}
==
Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars
==
Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars Susann Gottmann1 , Frank Hermann1 , Claudia Ermel2 , Thomas Engel1 , and Gianluigi Morelli3 1 Interdisciplinary Centre for Security, Reliability and Trust, Université du Luxembourg, Luxembourg firstname.lastname@uni.lu 2 Technische Universität Berlin, Germany firstname.lastname@tu-berlin.de 3 SES, Luxembourg firstname.lastname@ses.com Abstract. The development and maintenance of satellite control software are very complex, mission-critical and cost-intensive tasks that require expertise from di↵erent domains. In order to adequately address these challenges, we propose to use visual views of the software to provide concise abstractions of the system from di↵erent perspectives. This paper introduces a visual language for process flow models of satellite con- trol procedures that we developed in cooperation with the industrial partner SES for the satellite control language SPELL. Furthermore, we present a general and formal bidirectional engineering approach for automatically translating satellite control procedures into corresponding process flow visualisations. The bidirec- tional engineering framework is supported by a visual editor based on Eclipse GMF, the transformation tool HenshinTGG, and additional extensions to meet requirements set up by the specific application area of satellite control languages. Keywords: model transformation, model synchronisation, triple graph gram- mars, bidirectional engineering, Eclipse Modeling Framework (EMF) 1 Introduction Development and maintenance of satellite control software are very complex, mission- critical and cost-intensive tasks demanding expertise from di↵erent domains. We ad- dress these challenges by a general approach we developed in a joint research project with the industrial partner SES (Société Européenne des Satellites, http://www. ses.com/). SES is a world-leading satellite operator currently operating a fleet of 53 satellites of di↵erent vendors. The satellite control programming language SPELL (Satellite Procedure Execution Language & Library) [23] was initiated by SES to be- come a new standard. It is an open-source package based on Python for the development and operation of satellite control procedures. The main goal of the research project is to develop the visual modelling language SPELLFlow, which represents the control flow of SPELL procedures. Satellite engi- neers and operators at SES are currently working with the SPELL source code. In the Proceedings of MPM 2013 67 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars development of SPELL source code, engineers already work with a visual representa- tion of the desired source code (as printout), but it is completely uncoupled from the SPELL development and execution environment. In order to enhance the daily work and reduce cost-intensive errors, a visualisation, related to the one used by satellite en- gineers, is desired with further improvements: It abstracts from the source code and highlights important commands for providing a more intuitive way of input. However, it shall not lose detailed information, which will be hidden at the beginning and can be shown, if the user desires. So, we developed a layered concept (c.f. Sec. 3). SPELLFlow is adapted to the following domain specific requirements set up by SES: (1) Provide a hierarchical visual model defining di↵erent layers of abstraction for highlighting more important information, but without losing detailed information. (2) Emphasise certain SPELL statements, e.g., commands for sending and receiving telemetry data. (3) The bidirectional engineered model will be used as a concise visual view on the source code. Hence, the engineering process between SPELL and SPELLFlow has to yield correct visual models and has to retain functional behaviour, i.e., the translation terminates and yields the same result for identical inputs. For the translation we use triple graph grammars (TGGs) [21,22], a bidirectional formal technique in the field of graph transformation. Several correctness properties are ensured due to the usage of TGGs (syntactical correctness of translation results, func- tional behaviour, completeness of translation, i.e., every input graph can be translated). In the former successful joint research project PIL2SPELL [16] with SES, we de- veloped an automated translation based on TGGs from satellite procedures written in the proprietary satellite operation language PIL of the satellite manufacturer ASTRIUM into SPELL. In the current project, we will reuse results, like the SPELL grammar for the conversion from concrete syntax of SPELL into the abstract syntax graph. At a later stage, we will provide an extension to a model synchronisation framework based on [15], which will be integrated at SES into the daily work of satellite developers and controllers. The bidirectional engineering framework is supported by the transformation tool HenshinTGG [8,13]. A visual editor SPELLFlowEditor based on Eclipse GMF [2] was generated and extended to the specific requirements of SES. Sec. 2 introduces the running example. Sec. 3 presents the visual language SPELLFlow and the approach for the translation. Sec. 4 summarises the applied for- mal techniques. In Sec. 5 we discuss related work and conclude in Sec. 6. 2 Running Example 1 def fib(n): 10 return 2 a = 0 11 #ENDDEF 3 b = 1 12 4 for i in range(n): 13 Step(’1’, ’User Input’) 5 sum = a + b 14 nr = Prompt(’Number: ’, NUM) 6 b = a 15 fib(nr) 7 a = sum 16 if(Prompt(’Restart?’,YES_NO) == YES): 8 #ENDFOR 17 Goto(’1’) 9 Prompt(’Result: ’ + a, OK) 18 #ENDIF Fig. 1. Example Procedure in SPELL syntax Proceedings of MPM 2013 68 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars Throughout the paper, we use the SPELL source code in Fig. 1 as running example. It is not satellite-specific but well-known and complex enough to explain all details of the approach. The program prints the Fibonacci number of a given user input. Lines 1 - 11 depict the subroutine fib(n), which determines the Fibonacci number for the given parameter n and outputs the result. In line 13, the main program starts with the SPELL-specific command Step. This command indicates a label (first parameter) used for jumps and provides a description (second parameter). Line 14 asks for user input to be given as parameter to the subroutine in line 15. Afterwards, the user is able to decide, whether she wants to restart the procedure. If the user answers the prompt with YES, then the application jumps back to line 13 using the Goto command. 3 Methodology This section describes the general approach for the bidirectional engineering of satel- lite control procedures written in SPELL into its flow visualisation and vice versa, We introduce the desired visualisation, which is developed in cooperation with SES and present the approach for implementing the bidirectional translation. Desired Visualisation In Sec. 1, we introduced requirements for the visualisation. To fulfil requirement 1 (hier- archical visual model), we developed a layered model containing di↵erent abstractions. In practice, it represents the call-hierarchy of a diagram out of another diagram, i.e., we provide the possibility to go from one more abstract layer to an underlying one which contains more fine-grained details. The first layer shows only relevant control structure parts of the main procedure - with the industrial partner SES, we elaborated special rules for defining the first layer out of the source code: the first branch of if, for, while or try statements, function calls, Goto and Step commands shall be situated on the first layer. The second layer will contain more detailed information, e.g., further branches, body of functions called on the previous layer. In general, the richness of detail is increasing with a growing layer depth. In the visual representation, shapes for statements of the same type which directly follow each other, are merged (see Ex. 1). Requirement 2 (focus on telemetry data) is realised by specific shapes for very im- portant SPELL statements (e.g., send and receive telemetry commands, steps, prompts). Example 1 (SPELLFlow - concrete syntax). Fig. 2 illustrates the visualisation of the SPELL procedure ( Fig. 1). Note, that we use the diagram number on the right top of each box in the following description. The first layer (diagram 1) contains the main pro- cedure according to the rules mentioned before. The box following Step 1 : User Input belongs to the Step command and links to another diagram (number 2) on second layer, which contains a statement (assignment) that is allocated to this step but should not occur on first layer. If there are further statements, which should not occur on the first layer, boxes with + icons are shown signalling links to further layers. The Goto is visualised by a pentagon shape which links to the target statement - the step statement. In diagram 1, the box Call fib(nr) indicates a function call. It links to Proceedings of MPM 2013 69 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars First Layer (Main) 1 Second Layer (Step 1) 2 Third Layer (EXPR) 4 nr = Number Prompt a + b fst snd Step 1 : User Input ... Second Layer (fib(n)) 3 Call fib(nr) do a = 0, b = 1 for i in range(n) sum = EXPR if Prompt Restart? 1 true end false return Result a b = a, a = sum Fig. 2. Desired visualisation for the example procedure in SPELL diagram 3, which is situated on second layer. The content of the function is represented by diagram 3. The shapes of statements of the same type are merged, e.g., in box b = a, a = sum. The Prompt statement gets a special shape (rhomboid), and expres- sions (hexagon), that are at least binary. Expressions are depicted explicitly in separate diagrams on the next layer. Consequently, hexagon a + b links to diagram 4, which shows the expression in full detail on third layer. General Bidirectional Engineering Approach The approach for bidirectional engineering of SPELL GUI / SPELL development SPELL ( Fig. 3) from source code to its visualisa- environment (tool support) tion and vice versa will be integrated in two SES apply apply edit edit applications: the SPELL execution environment , which is used for operating satellites and the SPELL SPELLFlow concrete syntax concrete syntax SPELL development environment, in which the SPELL programmer gets the possibility to imple- Xtext EMF ment SPELL procedures in the source code view and also in using the visualisation of SPELLFlow SPELL SPELLFlow abstract syntax TGG abstract syntax models for creating a skeleton as a way of code graph (ASG) graph (ASG) generation. Both SPELL environments are repre- sented by the rounded rectangle on top of Fig. 3. Fig. 3. Bidirectional engineering from Currently, SES uses SPELL source code - the con- SPELL to SPELLFlow and vice versa crete syntax of SPELL. For the bidirectional engi- neering process from SPELL source code to visual SPELL models (SPELLFlow), we use the Eclipse tool HenshinTGG, which is based on EMF [3]. The concrete syntax of SPELL will be imported in HenshinTGG using Xtext [4] which results in an abstract syntax graph (ASG) of the SPELL source code. We use HenshinTGG to define triple rules and generate forward translation rules (for the translation from SPELL ASG to SPELLFlow ASG) and generate backward translation rules (for the translation from the SPELLFlow ASG to the SPELL ASG). Using EMF, the abstract syntax graph of SPELLFlow is transferred to the concrete syntax, an XMI file, which can be imported into the SPELLFlowEditor to visualise the flow diagram. The SPELLFlowEditor for Proceedings of MPM 2013 70 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars Fig. 4. Abstract syntax graph of the running example the visualisation currently exists as a prototype and will be integrated into both SPELL environments. Example 2. In Fig. 4 the abstract syntax graph (ASG) of the running example is illus- trated. Due to the complexity, we highlight a detail of the ASG which represents parts of source code lines 13 and 14 (step and assignment statements, see Fig. 1). The ASG is a graph typed over the source part of the type graph. The types are indicated by ”‘:”’, e.g., stmt LST elem is the type of the second node from top. 4 Formal Framework and Application In the following section, we briefly introduce the main concepts for model transforma- tions based on TGGs [5] on the basis of the running example and the synchronisation framework [15] that we use in the project. A triple graph is an integrated model, i.e., a model which is composed of a source model, a target model and correspondences between these models. It consists of three graphs: the source, correspondence, and target graphs, and two graph morphisms (map- pings) specifying the correspondences between elements of the source and target model. In Fig. 7 an excerpt of the triple graph for our running example is given. A triple graph morphism defines mappings between triple graphs which preserve the correspondences. Triple graphs are typed over a type triple graph TG via a triple tr / graph morphism. Triple graph morphisms between triple graphs have L R to preserve the typing. TG can be seen as the meta-model. Triple m ✏ (PO) ✏ n graphs can have attributes and node type inheritance. For this, we G t /H use the formal notation presented in [5,6]. A triple rule tr as shown on the first row of Fig. 5 is an inclusion Fig. 5. Tripe rule of triple graphs L ,! R, i.e., all elements in L are uniquely mapped Proceedings of MPM 2013 71 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars Fig. 6. Triple rule T Step assignment Expr-2-AssignmentActivity (left) and derived FT rule (right) to elements in R. Consequently, triple rules are non-deleting. They specify, how a con- sistent triple graph can be extended on all three parts simultaneously resulting again in a consistent triple graph. The rule application is illustrated in Fig. 5. The triple rule tr is applied to triple graph G via a graph morphism m called match. The result is triple graph H, where L is replaced by R in G [6]. Triple rules can be extended by negative application conditions (NACs) defining forbidden context in order to restrict the rule application [5]. Example 3 (Triple Rule). In Fig. 6, a triple rule is illustrated. Elements marked with <++> are created by this triple rule. Unmarked elements are called context elements. This triple rule creates correspondences between an assignment expression following a Step command in the SPELL ASG with an assignment activity in the SPELLFlow ASG. The latter element is situated on a new layer in the target graph. The new layer is indicated by containment edges, i.e., the assignment activity is contained by the step activity. A TGG is a tuple TGG = (TG, S , TR) containing a type triple graph TG, a start graph S , which is usually the empty triple graph, and a set of triple rules T R. A TGG generates all consistent triple graphs. For TG = (TGS TGC ! TGT ), we use LTG , LS , LT to denote the language, i.e., the classes of all graphs typed over TG, TGS , or TGT , respectively. For the translation from the source into the target model, we use a set of operational forward translation rules (FT rules) that are generated automatically out of the set of triple rules [14]. Each FT rule trFT di↵ers only on the source part from the correspond- ing triple rule tr: Each <++> is replaced by a Boolean valued marker. In order to translate a source model to an integrated model, all elements in the source model are initially marked with false. When applying an FT rule, the -marker is set to true, so that the specific rule cannot be applied again on the same elements. So, the source model will be translated stepwise into an integrated model, without modifying the source model. Similar to the generation of FT rules, operational backward transla- tion rules (BT rules) can be created in order to translate backward a target model into the integrated model. Proceedings of MPM 2013 72 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars Fig. 7. Excerpt from triple graph (integrated model) Example 4 (FT/BT Rule and FT-Rule Application). We consider the triple rule in Fig. 6. In the corresponding FT rule, each <++> marker is replaced by a in the source part. In the corresponding BT rule, the marker is replaced in the target part. In general, the translation from a source model into a target model needs the source graph as a basis. In our example, the translation is performed from the SPELL ASG, which is illustrated in Fig. 4. It will be translated stepwise into an integrated model with the set of FT rules. In Fig. 7 we illustrate the application of the FT rule FT Step- assignment Expr-2-AssignmentActivity generated out of the triple rule in Fig. 6. The Step statement is already translated, so that the rule FT Step-assignment Expr-2- AssignmentActivity can be applied. The elements marked with a fat border are required context elements which are mapped by the FT rule. After applying the FT rule, the elements marked with a dashed line are created by this FT rule. In future work, we will apply the 8 G 0 S 2 LS : 8 G 0 T 2 LT : model synchronisation framework based r r on TGGs [15]. The main idea is to prop- GS o / GT GS o / GT agate changes from one domain to the a u:fPpg ✏ b a w:bPpg ✏ b other by reusing the operational forward ✏ ✏ 0S o 0 T 0 S / G0 T G /G G o and backward translation rules. r0 r0 In Fig. 8, we illustrate the forward propagation operation (fPpg) which ap- Fig. 8. Synchronisation operations fPpg, bPpg plies the model update a performed in the source model to the integrated model. On the left side of the figure, we illustrate the fPpg operation and on the right side, we illustrate the symmetric backward propagation operation bPpg. The forward operation consists of three steps: The forward alignment step constructs a new correspondence graph by deleting all correspondence elements which became invalid by the source model update a. The deletion operation creates a consistent integrated model in removing parts which became inconsistent by update a. The forward addition operation executes the opera- tional forward rules, until all untranslated elements are translated. Due to the definition Proceedings of MPM 2013 73 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars SPELL - concrete syntax SPELL2SPELLFlow - triple graph SPELLFlow - concrete syntax First Level (Main) 1 Step 1 : User Input ... Second Level (Step 1) 2 Number nr = Prompt Fig. 9. Excerpt: Summary of bidirectional engineering process of this operation, the resulting integrated model is consistent. The bPpg operation is symmetric. In [15], we have shown for this model synchronisation framework that also correctness and completeness properties hold. However, translating all updates performed synchronously in the source and tar- get model to the integrated model can cause conflicts. In [7], an appropriate conflict resolution is discussed. Due to the well-defined formal frameworks we use for defining the translation and later synchronisation, requirement 3 (concise and correct visual models and functional behaviour) is fulfilled. The model is concise, because we defined a hierarchical (multi- layer) view on the SPELL source code, especially the main layer of SPELLFlow pro- vides an abstract view on the SPELL source code. The correctness and completeness w.r.t. correspondence patterns between SPELL and SPELLFlow is ensured by Theorem 8.2 in [15]. To show functional behaviour, we use the automatic critical pair analysis provided by HenshinTGG [13,14]. In Fig. 9, we show an overview of the whole bidirectional engineering process for an excerpt of our running example. The SPELL source code is parsed using Xtext yielding the SPELL ASG (left). This ASG is translated into an integrated model (mid- dle) represented by a triple graph in using the set of FT rules. The target part is the SPELLFlow ASG, which is exported as an XMI file. This XMI file is imported into the SPELLFlowEditor which displays the desired SPELLFlow digram (right) in concrete syntax. To generate source code out of the visualisation, we will perform the same pro- cess in the backward direction and apply the set of BT rules for the translation. At a later stage, we will apply the presented synchronisation framework. 5 Related Work TGGs were introduced in [21] and since then refined and extended by several works [19,12,22]. Many works focus on defining and preserving correctness properties and functional behaviour of TGGs [5,14]. Based on the delta-lenses framework [24], TGGs were extended by bidirectional model synchronisation frameworks [10,15]. These results will be reused in the presented approach. In [17,1], a new type of TGGs was introduced: view triple graph grammars (VTGGs), in order to model domain-specific views of a source model. The authors present di↵erent views, e.g., domain-specific views or views presenting di↵erent ab- straction layers, and describe an appropriate model transformation technique satisfying Proceedings of MPM 2013 74 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars every type of view. VTGGs are very promising for the approach presented in this paper, though the definition of VTGGs as given in [1] is too restrictive for our approach and needs to be relaxed. The Atlas Transformation Language (ATL) [18] is a widely-used framework for specifying model transformations in a declarative manner. However, the approach only supports the specification of unidirectional transformations and requires to specify each direction of bidirectional model transformations separately. Therefore, in contrast to TGGs, the approach does not allow to generate operational translation rules for forward and backward model transformations from one consistent specification. Several works deal with model visualisation and visualisation languages. In [9], a general approach for defining a visualisation language and its simulation is given based on typed algebraic graph transformation. In [11], an overview of di↵erent soft- ware visualisation approaches and important properties for an appropriate visualisation are discussed. SPELLFlow matches most of these requirements. Koschke [20] presents a tool suite for software visualisation in reverse engineering. There, di↵erent visualisa- tions are provided as additional information. In contrast, it is planned that SPELLFlow will replace the source code view completely. Both papers present surveys on software visualisation where the majority of interviewees (more than 80% in each survey) agree that software visualisation is at least important. 6 Conclusion In this paper we introduced a new visual modelling language (SPELLFlow) for the vi- sualisation of procedures written in the satellite control language SPELL. The require- ments for the syntax and semantics of the visual language SPELLFlow were developed in cooperation with the industrial partner SES. We presented an approach for the auto- matic generation of SPELLFlow models from SPELL programs, and the generation of SPELL source code from SPELLFlow models. This bidirectional engineering approach is based on the formal framework of TGGs and supported by the tool HenshinTGG and a visual editor based on Eclipse GMF which we developed for SPELLFlow. According to the requirements set up by SES, we will apply the synchronisation framework presented in [15] using HenshinTGG. Finally, we will evaluate our imple- mentations regarding efficiency and usability in order to integrate the implementations in the daily work of satellite controllers and developers at SES. Acknowledgements. Supported by the Fonds National de la Recherche, Luxembourg (3968135). References 1. Anjorin, A., Rose, S., Deckwerth, F., Schürr, A.: Asymmetric delta lenses with view triple graph grammars (to appear). ECEASST pp. 1–15 (2013) 2. Eclipse Consortium: Eclipse Graphical Modeling Framework (GMF) (2013), http:// www.eclipse.org/modeling/gmp/ Proceedings of MPM 2013 75 Towards Bidirectional Engineering of Satellite Control Procedures Using Triple Graph Grammars 3. Eclipse Consortium: Eclipse Modeling Framework (EMF), Version 2.8.3 (2013), http: //www.eclipse.org/emf 4. The Eclipse Foundation: Xtext, Version 2.3.1 (2013), http://www.eclipse.org/ Xtext/ 5. Ehrig, H., Ermel, C., Hermann, F., Prange, U.: On-the-Fly Construction, Correctness and Completeness of Model Transformations based on Triple Graph Grammars. In: Proc. MOD- ELS’09. LNCS, vol. 5795, pp. 241–255. Springer (2009) 6. Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of Algebraic Graph Transfor- mation. EATCS Monographs in Theor. Comp. Science, Springer (2006) 7. Ehrig, H., Ermel, C., Taentzer, G.: A Formal Resolution Strategy for Operation-Based Con- flicts in Model Versioning Using Graph Modifications. In: Proc. FASE’11. LNCS, vol. 6603, pp. 202–216. Springer (2011) 8. Ermel, C., Hermann, F., Gall, J., Binanzer, D.: Visual Modeling and Analysis of EMF Model Transformations Based on Triple Graph Grammars. ECEASST 54, 1–14 (2012) 9. Ermel, C.: Simulation and animation of visual languages based on typed algebraic graph transformation. Ph.D. thesis, Technische Universität Berlin (2006) 10. Giese, H., Wagner, R.: From model transformation to incremental bidirectional model syn- chronization. SoSyM 8, 21–43 (2009) 11. Gracanin, D., Matkovic, K., Eltoweissy, M.: Software visualization. ISSE 1(2), 221–230 (2005) 12. Greenyer, J., Kindler, E.: Comparing relational model transformation technologies: imple- menting Query/View/Transformation with Triple Graph Grammars. SoSyM 9, 21–46 (2010) 13. EMF Henshin, Version 0.9.6 (2013), http://www.eclipse.org/henshin/ 14. Hermann, F., Ehrig, H., Golas, U., Orejas, F.: Efficient Analysis and Execution of Correct and Complete Model Transformations Based on Triple Graph Grammars. In: Proc. MDI’10. pp. 22–31. MDI ’10, ACM (2010) 15. Hermann, F., Ehrig, H., Orejas, F., Czarnecki, K., Diskin, Z., Xiong, Y., Gottmann, S., Engel, T.: Model synchronization based on triple graph grammars: correctness, completeness and invertibility. SoSyM pp. 1–29 (2013) 16. Hermann, F., Gottmann, S., Nachtigall, N., Braatz, B., Morelli, G., Pierre, A., Engel, T.: On an Automated Translation of Satellite Procedures Using Triple Graph Grammars. In: Proc. ICMT’13, LNCS, vol. 7909, pp. 50–51. Springer (2013) 17. Jakob, J., Königs, A., Schürr, A.: Non-materialized Model View Specification with Triple Graph Grammars. In: Graph Transformations, LNCS, vol. 4178, pp. 321–335. Springer (2006) 18. Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: A model transformation tool. Science of Computer Programming 72, 31–39 (2008) 19. Kindler, E., Wagner, R.: Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios. Tech. Rep. TR-ri-07-284, Department of Computer Science, Uni- versity of Paderborn, Germany (2007) 20. Koschke, R.: Software Visualization for Reverse Engineering. In: Revised Lectures on Soft- ware Visualization, International Seminar. pp. 138–150. Springer (2002) 21. Schürr, A.: Specification of Graph Translators with Triple Graph Grammars. In: Tinhofer, G. (ed.) Proc. WG’94. LNCS, vol. 903, pp. 151–163. Springer (1994) 22. Schürr, A., Klar, F.: 15 years of triple graph grammars. In: Proc. ICGT’08. pp. 411–425. No. 5214 in LNCS, Springer (2008) 23. SES Engineering: SPELL - Satellite Procedure Execution Language & Library, Version 2.3.13 (2013), http://code.google.com/p/spell-sat/ 24. Xiong, Y., Song, H., Hu, Z., Takeichi, M.: Supporting Parallel Updates with Bidirectional Model Transformations. In: Proc. ICMT’09. pp. 213–228. Springer (2009) Proceedings of MPM 2013 76