Recommending Framework Extension Examples

被引:5
作者
Asaduzzaman, Muhammad [1 ]
Roy, Chanchal K. [1 ]
Schneider, Kevin A. [1 ]
Hou, Daqing [2 ]
机构
[1] Univ Saskatchewan, Dept Comp Sci, Saskatoon, SK, Canada
[2] Clarkson Univ, Elect & Comp Engn Dept, New York, NY USA
来源
2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME) | 2017年
关键词
reuse; API; framework; extension point; extension pattern; code example; graph mining; recommender;
D O I
10.1109/ICSME.2017.80
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The use of software frameworks enables the delivery of common functionality but with significantly less effort than when developing from scratch. To meet application specific requirements, the behavior of a framework needs to be customized via extension points. A common way of customizing framework behavior is by passing a framework related object as an argument to an API call. Such an object can be created by subclassing an existing framework class or interface, or by directly customizing an existing framework object. However, to do this effectively requires developers to have extensive knowledge of the framework's extension points and their interactions. To aid the developers in this regard, we propose and evaluate a graph mining approach for extension point management. Specifically, we propose a taxonomy of extension patterns to categorize the various ways an extension point has been used in the code examples. Our approach mines a large amount of code examples to discover all extension points and patterns for each framework class. Given a framework class that is being used, our approach aids the developer by following a two-step recommendation process. First, it recommends all the extension points that are available in the class. Once the developer chooses an extension point, our approach then discovers all of its usage patterns and recommends the best code examples for each pattern. Using five frameworks, we evaluate the performance of our two-step recommendation, in terms of precision, recall, and F-measure. We also report several statistics related to framework extension points.
引用
收藏
页码:456 / 466
页数:11
相关论文
共 32 条
[1]  
[Anonymous], 2009, P 23 EUR C ECOOP 200
[2]  
[Anonymous], 2007, P 22 IEEE ACM INT C
[3]  
[Anonymous], 1983, P 15 ANN ACM S THEOR, DOI [10.1145/800061.808746, DOI 10.1145/800061.808746]
[4]  
Asaduzzaman M., 2017, P 32 IEEE A IN PRESS
[5]  
Bruch Marcel, 2010, Proceedings of the 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010), P141, DOI 10.1109/MSR.2010.5463347
[6]  
Bruch Marcel., 2006, P 4 OOPSLA WORKSHOP, P55, DOI [10.1145/1188835.1188847, DOI 10.1145/1188835.1188847]
[7]  
CHATTERJEE S, 2009, PROC 12 INT C FUND, V5503, P385
[8]  
Dagenais B., 2008, FSE, P203
[9]  
Dagenais B, 2008, OOPSLA 2008 NASHVILLE, CONFERENCE PROCEEDINGS, P313
[10]  
Flores N., 2008, P 15 C PATT LANG PRO, P111