Fast extraction of high-quality framework-specific models from application code

  • Authors:
  • Michał Antkiewicz;Thiago Tonelli Bartolomei;Krzysztof Czarnecki

  • Affiliations:
  • Generative Software Development Lab, University of Waterloo, Waterloo, Canada N2L 3G1;Generative Software Development Lab, University of Waterloo, Waterloo, Canada N2L 3G1;Generative Software Development Lab, University of Waterloo, Waterloo, Canada N2L 3G1

  • Venue:
  • Automated Software Engineering
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Framework-specific models represent the design of application code from the framework viewpoint by showing how framework-provided concepts are instantiated in the code. Retrieving such models quickly and precisely is necessary for practical model-supported software engineering, in which developers use design models for development tasks such as code understanding, verifying framework usage rules, and round-trip engineering. Also, comparing models extracted at different times of the software lifecycle supports software evolution tasks.We describe an experimental study of the static analyses necessary to automatically retrieve framework-specific models from application code. We reverse engineer a number of applications based on three open-source frameworks and evaluate the quality of the retrieved models. The models are expressed using framework-specific modeling languages (FSMLs), each designed for an open-source framework. For reverse engineering, we use prototype implementations of the three FSMLs.Our results show that for the considered frameworks and a large body of application code rather simple code analyses are sufficient for automatically retrieving framework-specific models with high precision and recall. Based on the initial results, we refine the static analyses and repeat the study on a larger set of applications to provide more evidence and confirm the results. The refined static analyses provide precision and recall of close to 100% for the analyzed applications.