IEEE Access (Jan 2019)

A Model Driven Reverse Engineering Framework for Generating High Level UML Models From Java Source Code

  • Umair Sabir,
  • Farooque Azam,
  • Sami Ul Haq,
  • Muhammad Waseem Anwar,
  • Wasi Haider Butt,
  • Anam Amjad

DOI
https://doi.org/10.1109/ACCESS.2019.2950884
Journal volume & issue
Vol. 7
pp. 158931 – 158950

Abstract

Read online

Legacy systems are large applications which are significant in performing daily organizational operations and cannot be upgraded easily especially in the absence of architectural and design documentation. Software modernization is an emerging field of software engineering, which transforms the legacy systems into new one according to the specified requirements of stakeholders. It mainly deals with improving the architecture, features, rules and data sources of existing system. It always remained a challenging task to achieve high-level representation of legacy systems. In order to achieve this high-level representation, Reverse Engineering (RE) plays an integral role. The issues of traditional RE are overcome with the help of Model Driven Reverse Engineering (MDRE) such as it generates model-based view of the legacy systems, which is comprehensible and easy to understand for practitioners. MDRE is an active research area but it provides limited tool support to extract and model both structural and behavioral aspects of legacy systems. In this paper, a novel MDRE framework named as “Source to Model Framework (Src2MoF)”is proposed to generate Unified Modeling Language (UML) structural (class) and behavioral (activity) diagrams from the Java source code. Src2MoF is based on the principles of Model Driven Engineering (MDE), which use models as first-class citizens alleviating the complexity of software systems. The contributions of this paper are as follows; first, an Intermediate Model Discoverer (IMD) is developed using source code parser to get the intermediate representation of the system from the existing Java code. Second, an open source transformation engine named “UML model generator” is implemented using Java, which takes these intermediate models as input, and produce high-level UML models of the subject legacy system. Finally, the two benchmark case studies are presented to depict the relevance and usability of Src2MoF.

Keywords