Supporting Framework Use via Automatically Extracted Concept-Implementation Templates
MetadataShow full item record
Object-oriented application frameworks allow the reuse of both software design and code and are one of the most effective reuse technologies available today. Frameworks provide domain-specific concepts, which are generic units of functionality. Framework-based applications are constructed by writing completion code that instantiates these concepts. The instantiation of such concepts requires implementation steps in the completion code, such as subclassing framework-provided classes, implementing interfaces, and calling appropriate framework services. Unfortunately, many existing frameworks are difficult to use because of their large and complex APIs and often incomplete user documentation. To cope with this problem, application developers often use existing framework applications as a guide. While existing applications contain valuable examples of concept implementation steps, locating them in the application code is often challenging. To address this issue, this dissertation introduces the notion of concept implementation templates, which summarize the necessary concept implementation steps, and a technique named FUDA (Framework API Understanding through Dynamic Analysis) which automatically extracts such templates from runtime information collected when that concept is invoked in two or more different contexts in one or more sample applications. The experimental evaluation of FUDA with twelve realistic concepts on top of four widely-used frameworks suggests that the technique is effective in producing quality implementation templates for a given concept with high precision and recall from only two sample sample applications and execution scenarios. Moreover, it was observed in a user study with twelve subjects that the choice of templates vs. documentation had much less impact on development time than the concept complexity.