Framework Understanding through Dynamic Analysis (FUDA)

A highly automated approach based on dynamic analysis for understanding how a concept of interest (e.g., context menu) is implemented in example applications of an object-oriented application framework (e.g., Eclipse JFace).

A common practice followed by many application developers is to use existing applications of a framework as a guide to understand how to implement a concept (functionality) of interest on top of that framework. Unfortunately, finding the code that implements the concept of interest might be very difficult since the code can be scattered across and tangled with code implementing other concepts. The FUDA project aims to address this issue by providing a framework comprehension technique that helps application developers learn how to implement a concept of interest on top of a framework. To this end, it introduces the notion of concept-implementation templates which summarize the necessary concept implementation steps in Java pseudocode. The main idea of FUDA is to automatically extract such templates from runtime information collected when that concept is invoked in two or more different sample applications. The experimental evaluation of FUDA suggests that this technique is effective in producing useful implementation templates for a given concept with high precision and recall.

Team Members

News

Tools

The FUDA technique is prototyped as an integrated tool for Java consisting of two parts:

Publications

2012
Heydarnoori, A., K. Czarnecki, W. Binder, and T. Tonelli Bartolomei, "Two Studies of Framework-Usage Templates Extracted from Dynamic Traces", IEEE Transactions on Software Engineering, vol. 38, issue 6, 12/2012. [pdf]
2009
Heydarnoori, A., K. Czarnecki, and T. Tonelli Bartolomei, "Supporting Framework Use via Automatically Extracted Concept-Implementation Templates", 23rd European Conference on Object-Oriented Programming (ECOOP), vol. 5653, Genova, Italy, Springer-Verlag, pp. 344-368, 07/2009. [pdf][pdf]
Heydarnoori, A., "Supporting Framework Use via Automatically Extracted Concept-Implementation Templates", School of Computer Science, vol. PhD, Waterloo, University of Waterloo, pp. 178, 04/2009. [pdf]
2007
Heydarnoori, A., and K. Czarnecki, "Comprehending implementation recipes of framework-provided concepts through dynamic analysis", OOPSLA Companion, Poster Session, Montreal, Quebec, Canada, ACM Press, pp. 819–820, 10/2007.
Heydarnoori, A., and K. Czarnecki, "Mining Implementation Recipes of Framework-Provided Concepts in Dynamic Framework API Interaction Traces", OOPSLA Companion, Tool Demonstration Track, Montreal, Quebec, Canada, ACM Press, pp. 876-877, 10/2007.