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.

Download


Paper 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