Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools

Reverse Engineering

JTransformer allows to reverse engineer its logcial representation to Java code. Usually this is done after modifying the factbase by executing conditional transformations.

The reverse engineered code can either be written to

  • the source project or
  • the so called output project.

The entry point for triggering this is given by the Save factbase operation in the Control Center. The following menu is shown:

Source Project

Writing to the source project means updating the original source code and is done incrementally. This means that JTransformer computes which parts of the factbase have changed, determines the corresponding source locations, generates the reverse engineered code and replaces the old source code of these parts with the generated code. This procedure only changes code whose PEF representation has changed. Thus, writing to the source project is only possible if the factbase has changed.

Before applying the changes to the source project JTransformer presents the changes in an Eclipse refactoring dialog. This dialog offers a comparison view allowing to compare the original source code with the modified code.

Output Project

The output project is project which JTransformer lazily generates for each project for that it is activated. This project is used when generating the reverse engineered code for the complete factbase. Usually it is very helpful if the original source code should not be overriden. The name of the output project is always the name of the source project plus the suffix -output.

The Control Center offers two ways of writing to the output project:

  • Save Incrementally to Output Project(s): Writes only those files to the output project which have been changed since the last writing.
  • Recreate Output Project(s): Deletes the output project first and generates the code for the complete factbase afterwards. This is useful especially if the output project has been modified manually.
research/jtransformer/tutorial/reverse_engineering.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2024