TRANSLATING ERLANG STATE MACHINES TO UML USING TRIPLE GRAPH GRAMMARS

Authors

DOI:

https://doi.org/10.24193/subbi.2018.1.03

Keywords:

Erlang, triple graph grammar, UML, CASE, state machine, model transformation.

Abstract

In this paper, we present a method that transforms event driven Erlang state machines into high-level state machine models represented in UML. We formalized the transformation system as a triple graph grammar, a special case of graph rewriting. We argue in this paper that using this well-defined formal procedure opens up the way for verifying the transformation system, synchronizing code and formal documentation, and executing state machine models among many other possible use cases. We also provide an example transformation system and demonstrate its application in action on a small Erlang state machine. We also present our evaluation of our full system implementation tested on real world Erlang state machines.

Author Biographies

Dániel LUKÁCS, Eötvös Loránd University, Budapest, Hungary. Email: dlukacs@caesar.elte.hu

Eötvös Loránd University, Budapest, Hungary. Email: dlukacs@caesar.elte.hu

Melinda TÓTH, Eötvös Loránd University, Budapest, Hungary. Email: tothmelinda@caesar.elte.hu

Eötvös Loránd University, Budapest, Hungary. Email: tothmelinda@caesar.elte.hu

References

Visualising Erlang development. https://github.com/haljin/erlesy. Accessed: 2016-06-30.

Eclipse Foundation. Eclipse Modeling Framework (EMF). https://eclipse.org/modeling/emf/. Accessed: 2015.11.30.

Object Management Group. OMG Meta Object Facility (MOF) Core Specification. http://www.omg.org/spec/MOF/. Accessed: 2015.11.30.

Object Management Group. OMG Unified Modeling Language Superstructure. www.omg.org/spec/UML/. Accessed: 2016-06-30.

Arts, T. and Holmqvist, C. In the need of a design... reverse engineering Erlang software. 10th International Erlang User Conference, EUC. 2004.10.

Dévai, G., Kovács, G. F., and Ancsin, A. Textual, executable, translatable UML. Proceedings of 14th International Workshop on OCL and Textual Modeling co-located with 17th International Conference on Model Driven Engineering Languages and Systems (MODELS 2014) Valencia, Spain, September 30, 2014., pages 3-12.

Ehrig, H., Ehrig, K., Prange, U., and Taentzer, G. (2006). Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series). Springer-Verlag New York, Inc., Secaucus, NJ, USA.

Greenyer, J. and Rieke, J. (2012). Applying advanced tgg concepts for a complex transformation of sequence diagram specifications to timed game automata. In Schürr, A., Varró, D., and Varró, G., editors, Applications of Graph Transformations with Industrial Relevance, pages 222–237, Berlin, Heidelberg. Springer Berlin Heidelberg.

Hildebrandt, S., Lambers, L., Holger, G., Rieke, J., Greenyer, J., Schäfer, W., Lauder, M., Anjorin, A., and Schürr, A. (2013). A Survey of Triple Graph Grammar Tools. In Bidirectional Transformations, volume 57, pages 1–18. EC-EASST.

Horpácsi, D. and Kőszegi, J. (2013). Static analysis of function calls in erlang. e-Informatica Software Engineering Journal, 7:65–76.

Horváth, Z., Lövei, L., Kozsik, T., Kitlei, R., Víg, A. N., Nagy, T., Tóth, M., and Király, R. (2009). Modeling semantic knowledge in Erlang for refactoring. In Knowledge Engineering: Principles and Techniques, Proceedings of the International Conference on Knowledge Engineering, Principles and Techniques, KEPT 2009, volume 54(2009) Sp. Issue of Studia Universitatis Babeş-Bolyai, Series Informatica, pages 7–16, Cluj-Napoca, Romania.

Kindler, E. and Wagner, R. (2018). Triple graph grammars: Concepts, extensions, implementations, and application scenarios.

Logan, M., Merritt, E., and Carlsson, R. (2010). Erlang and OTP in Action. Manning Publications Co., Greenwich, CT, USA, 1st edition.

Lukács, D. (2016). Erlang állapotgépek modell alapú és transzformációja UML-re. Scientific Students’ Associations Conference, ELTE, Budapest, Hungary.

Lukács, D., Tóth, M., and Bozó, I. Transforming Erlang finite state machines. In CEUR Workshop Proceedings 2046: pp. 197-218. (2018) Proceedings of the 11th Joint Conference on Mathematics and Computer Science (MACS16). Eger, Hungary, 20-22 May, 2016.

Samek, M. (2009). Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems. Electronics & Electrical. Taylor & Francis.

Schürr, A. (1995). Specification of graph translators with triple graph grammars, pages 151–163. Springer Berlin Heidelberg, Berlin, Heidelberg.

Tóth, M. and Bozó, I. (2012). Static Analysis of Complex Software Systems Implemented in Erlang. In Central European Functional Programming School, volume 7241 of Lecture Notes in Computer Science, pages 440–498. Springer.

Tóth, M., Bozó, I., Horváth, Z., and Tejfel, M. (2010). First order flow analysis for Erlang. In Proceedings of the 8th Joint Conference on Mathematics and Computer Science (MACS), ISBN:978-963-9056-38-1.

Tóth, M., Bozó, I., Kőszegi, J., and Horváth, Z. Static Analysis Based Support for Program Comprehension in Erlang. In Acta Electrotechnica et Informatica, Volume 11, Number 03, October 2011. Publisher: Versita, Warsaw, ISSN 1335-8243 (print), ISSN 1338-3957 (online), pages 3-10.

Downloads

Published

2018-06-19

How to Cite

LUKÁCS, D., & TÓTH, M. (2018). TRANSLATING ERLANG STATE MACHINES TO UML USING TRIPLE GRAPH GRAMMARS. Studia Universitatis Babeș-Bolyai Informatica, 63(1), 33–50. https://doi.org/10.24193/subbi.2018.1.03

Issue

Section

Articles