Use of Compiler Intermediate Representation for Reverse Engineering: A Case Study for GCC Compiler and UML Activity Diagram
Rania Mzid, Rania Mzid, Asma Charfi, Najmeddine Etteyeb
2022
Abstract
Nowadays systems are no longer made from scratch, they use existing third-party components or legacy software. Providing methods/techniques to facilitate the comprehension of existing software is beneficial to increase productivity, especially when dealing with their reuse and/or modernization. Model Driven Engineering (MDE) offers a set of guidelines to manage the complexity of software systems during their development. In that context, the reverse-engineering process aims to describe a source code at higher level of abstraction using automatic transformations. This paper proposes an extensible MDE approach for behavioural reverse engineering. The proposed approach aims to make the reverse transformation independent of the source programming language. Starting from a given source code written in any programming language, the proposed approach integrates an intermediate step based on compiler’s front-end to generate an intermediate representation. Then, it performs a model transformation to extract behavioural aspects from the source code and generates a graph that describes its control flow. The different steps of the approach are automated. We apply the approach to case study using GCC and GIMPLE as intermediate representation and UML activity diagram as control flow graph to show its viability.
DownloadPaper Citation
in Harvard Style
Mzid R., Charfi A. and Etteyeb N. (2022). Use of Compiler Intermediate Representation for Reverse Engineering: A Case Study for GCC Compiler and UML Activity Diagram. In Proceedings of the 10th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-550-0, pages 211-218. DOI: 10.5220/0010821700003119
in Bibtex Style
@conference{modelsward22,
author={Rania Mzid and Asma Charfi and Najmeddine Etteyeb},
title={Use of Compiler Intermediate Representation for Reverse Engineering: A Case Study for GCC Compiler and UML Activity Diagram},
booktitle={Proceedings of the 10th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2022},
pages={211-218},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0010821700003119},
isbn={978-989-758-550-0},
}
in EndNote Style
TY - CONF
JO - Proceedings of the 10th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - Use of Compiler Intermediate Representation for Reverse Engineering: A Case Study for GCC Compiler and UML Activity Diagram
SN - 978-989-758-550-0
AU - Mzid R.
AU - Charfi A.
AU - Etteyeb N.
PY - 2022
SP - 211
EP - 218
DO - 10.5220/0010821700003119