Spreadsheets are commonly used (no surprise there) and comprehension is needed in many scenarios. Comprehension can be hard though, because there is no clear distinction between different layers: data, calculation and visualization.
The use of VBA increases the complexity, as users can introduce user defined functions and form elements and even override existing functionality. Vincenzo’s plan is to firstly reverse engineer the data model. For this, they use an heuristic approach, where information is exploited about how spreadsheets are usually laid out.
When the data model is defined, the approach is to do user Interface and business logic reverse engineering, by recognising elements of the user interface are recognised, and events and their handlers.
Finally, when the calculation parts are extracted, different views are offered to the user:
In other words: The steps are: Extraction, Abstraction and Presentation
Exact is available for download from: https://github.com/reverse-unina/EXACT