Powered by
7th International Workshop on Software Mining (SoftwareMining 2018),
September 3, 2018,
Montpellier, France
7th International Workshop on Software Mining (SoftwareMining 2018)
Frontmatter
Message from the Chairs
The Seventh International Workshop on Software Mining (SoftwareMining-2018) aims to bridge research in the data mining community and software engineering community by providing an open and interactive forum for researchers who are interested in software mining to discuss the methodologies and technical foundations of software mining, approaches and techniques for mining various types of software-related data, applications of data mining to facilitate specialized tasks in software engineering. The participants of diverse background in either data mining or software engineering can benefit from this workshop by sharing their expertise, exchanging ideas and discussing new research results.
Software Mining
Extracting Implicit Programming Rules: Comparing Static and Dynamic Approaches
Tarannum Shaila Zaman and Tingting Yu
(University of Kentucky, USA)
Programs often follow implicit programming rules, such as, function call A must be followed by function call B. Rules of such kinds are rarely documented by developers. Nevertheless, programming rules play an important role in software testing and maintenance. For example, the rules can be used as test oracles to detect violations. If a programmer can be notified of
these rules before updating the source code, the chances of generating defects due to rule
violations might be minimized. Prior works have used static and dynamic analysis techniques to extract implicit programming rules, but none compares the effectiveness of the two techniques.
In this paper, we have undertaken an empirical study to compare the two techniques when they are being used for extracting programming rules. Our results indicate that the performance of the dynamic analysis technique depends on the number and the diversity of the traces. Moreover, the dynamic analysis technique generates more precise rules than the static analysis technique if a diverse and sufficient number of test cases are provided.
@InProceedings{SoftwareMining18p1,
author = {Tarannum Shaila Zaman and Tingting Yu},
title = {Extracting Implicit Programming Rules: Comparing Static and Dynamic Approaches},
booktitle = {Proc.\ SoftwareMining},
publisher = {ACM},
pages = {1--7},
doi = {10.1145/3242887.3242889},
year = {2018},
}
Publisher's Version
Who Plays with Whom? ... and How? Mining API Interaction Patterns from Source Code
Robert Heumüller,
Sebastian Nielebock, and
Frank Ortmeier
(Otto von Guericke University Magdeburg, Germany)
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.
@InProceedings{SoftwareMining18p8,
author = {Robert Heumüller and Sebastian Nielebock and Frank Ortmeier},
title = {Who Plays with Whom? ... and How? Mining API Interaction Patterns from Source Code},
booktitle = {Proc.\ SoftwareMining},
publisher = {ACM},
pages = {8--11},
doi = {10.1145/3242887.3242888},
year = {2018},
}
Publisher's Version
Within-Ecosystem Issue Linking: A Large-Scale Study of Rails
Yang Zhang, Yue Yu, Huaimin Wang,
Bogdan Vasilescu, and Vladimir Filkov
(National University of Defense Technology, China; Carnegie Mellon University, USA; University of California at Davis, USA)
Social coding facilitates the sharing of ideas within and between projects in an open source ecosystem. Bug fixing and triaging, in particular, are aided by linking issues in one project to potentially related issues within it or in other projects in the ecosystem. Identifying and linking to related issues is in general challenging, and more so across projects. Previous studies, on a limited number of projects have shown that linking to issues within a project associates with faster issue resolution times than cross-project linking. In this paper, we present a mixed methods study of the relationship between the practice of issue linking and issue resolution in the Rails ecosystem of open source projects. Using a qualitative study of issue linking we identify a discrete set of linking outcomes together with their coarse-grained effects on issue resolution. Using quantitative study of patterns in developer linking within and across projects, from a large-scale dataset of issues in Rails and its satellite projects, we find that developers tend to link more cross-project or cross-ecosystem issues over time. Furthermore, using models of issue resolution latency, when controlled for various attributes, we do not find evidence that linking across projects will retard issue resolution, but we do find that it is associated with more discussion.
@InProceedings{SoftwareMining18p12,
author = {Yang Zhang and Yue Yu and Huaimin Wang and Bogdan Vasilescu and Vladimir Filkov},
title = {Within-Ecosystem Issue Linking: A Large-Scale Study of Rails},
booktitle = {Proc.\ SoftwareMining},
publisher = {ACM},
pages = {12--19},
doi = {10.1145/3242887.3242891},
year = {2018},
}
Publisher's Version
Commits as a Basis for API Misuse Detection
Sebastian Nielebock,
Robert Heumüller, and
Frank Ortmeier
(Otto von Guericke University Magdeburg, Germany)
Programmers frequently make use of APIs. However, these usages can result in unintended, negative behavior, when developers are not aware of the correct usage or side effects of that API. Detecting those API misuses by means of automatic testing is challenging, as many test suites do not cover this unintended behavior.
Instead, API usage patterns are used as specifications to verify the correctness of applications. However, to find meaningful patterns, i.e., those capable of fixing the misuse, the context of the misuse must be considered. Since the developer usually does not know which API is misused, a much larger code section has to be verified against many potential patterns.
In this paper, we present a new idea to enhance API misuse detection by means of commits. We discuss the potential of using commits (1) to decrease the size of the code to be considered, (2) to identify suspicious commits, and (3) to contain API usages which can be used to shepherd API specification mining.
This paper shows first results on the usability of commits for API misuse detection and some insights into what makes a commit suspicious in terms of exhibiting potential API misuses.
@InProceedings{SoftwareMining18p20,
author = {Sebastian Nielebock and Robert Heumüller and Frank Ortmeier},
title = {Commits as a Basis for API Misuse Detection},
booktitle = {Proc.\ SoftwareMining},
publisher = {ACM},
pages = {20--23},
doi = {10.1145/3242887.3242890},
year = {2018},
}
Publisher's Version
proc time: 0.58