Robert Heumüller, Sebastian Nielebock, Frank Ortmeier: Who plays with Whom? ... and How? Mining API Interaction Patterns from Source Code. In: ACM, (Hrsg.): Proceedings of the 7th International Workshop on Software Mining (SoftwareMining ’18), S. 4, ACM, New York, NY, USA, 2018.

Abstract

State-of-science automated software engineering techniques increasingly rely on specification mining to provide API
usage patterns for numerous applications, e.g. context sensitive code-completion, bug-detection or bug-fixing
techniques. While some existing approaches already yield good results with respect to diverse tasks, the focus has
always been on the inference of high-quality, reusable specifications for single APIs. However, in contemporary software
development it is commonplace to combine a multitude of different libraries in order to increase efficiency by avoiding
the reimplementation of the wheel. In contrast to prior research, in this idea paper we propose to explicitly study the
patterns of interaction between multiple different APIs. First, we introduce a method for mining API interactions
patterns from existing applications. Then, we give an overview of our preliminary investigation, in which we applied the
method to a case-study of nearly 500 Android applications. The exemplary results show that there definitely exist
valuable interaction patterns which can be helpful for various traditional and automated software engineering tasks.

BibTeX (Download)

@inproceedings{HeumuellerInteractionPatterns2018,
title = {Who plays with Whom? ... and How? Mining API Interaction Patterns from Source Code},
author = {Robert Heum\"{u}ller and Sebastian Nielebock and Frank Ortmeier},
editor = {ACM},
url = {https://cse.cs.ovgu.de/cse-wordpress/wp-content/uploads/2018/08/paper-mining-api-interactions.pdf},
doi = {10.1145/3242887.3242888},
year  = {2018},
date = {2018-09-03},
booktitle = {Proceedings of the 7th International Workshop on Software Mining (SoftwareMining ’18)},
pages = {4},
publisher = {ACM},
address = {New York, NY, USA},
abstract = {State-of-science automated software engineering techniques increasingly rely on specification mining to provide API  
usage patterns for numerous applications, e.g. context sensitive code-completion, bug-detection or bug-fixing  
techniques. While some existing approaches already yield good results with respect to diverse tasks, the focus has  
always been on the inference of high-quality, reusable specifications for single APIs. However, in contemporary software  
development it is commonplace to combine a multitude of different libraries in order to increase efficiency by avoiding  
the reimplementation of the wheel. In contrast to prior research, in this idea paper we propose to explicitly study the  
patterns of interaction between multiple different APIs. First, we introduce a method for mining API interactions  
patterns from existing applications. Then, we give an overview of our preliminary investigation, in which we applied the  
method to a case-study of nearly 500 Android applications. The exemplary results show that there definitely exist  
valuable interaction patterns which can be helpful for various traditional and automated software engineering tasks.},
keywords = {api interaction, library interaction, specification mining},
pubstate = {published},
tppubtype = {inproceedings}
}