A. Bergmayr, H. Brunelière, J. Cabot, J. García, T. Mayerhofer, M. Wimmer: fREX: fUML-based Reverse Engineering of Executable Behavior for Software Dynamic Analysis, International Workshop on Modeling in Software Engineering (MiSE), Austin, Texas; 16.-17.05.2016, in Proceedings of the 8th International Workshop on Modeling in Software Engineering", ACM, (2016), ISBN: 978-1-4503-4164-6, pages 20 - 26. doi: 10.1145/2896982.2896984
Reverse engineering is still a challenging process, notably because of the growing number, heterogeneity, complexity, and size of software applications. While the analysis of their structural elements has been intensively investigated, there is much less work covering the reverse engineering of their behavioral aspects. To further stimulate research on this topic, we propose fREX as an open framework for reverse engineering of executable behaviors from existing software code bases. fREX currently provides model discovery support for behavior embedded in Java code, employs the OMG’s fUML standard language as executable pivot format for dynamic analysis, and uses model transformations to bridge Java and fUML. Thus, fREX also aims at contributing to explore the relationship between programming languages (e.g., Java) and executable modeling languages (e.g., fUML). In this paper, we describe the proposed fREX framework and its current reverse engineering support covering some core Java features. In addition we discuss how the framework can be used for performing different kinds of dynamic analysis on existing software, as well as how it could be extended in the future.