Data mining library reuse patterns using generalized association rules
Proceedings of the 22nd international conference on Software engineering
Finding failures by cluster analysis of execution profiles
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Bugs as deviant behavior: a general approach to inferring errors in systems code
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Identifying Similar Code with Program Dependence Graphs
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM SIGPLAN Notices
Jungloid mining: helping to navigate the API jungle
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Automatic Mining of Source Code Repositories to Improve Bug Finding Techniques
IEEE Transactions on Software Engineering
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
DynaMine: finding common error patterns by mining software revision histories
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code
IEEE Transactions on Software Engineering
Perracotta: mining temporal API rules from imperfect traces
Proceedings of the 28th international conference on Software engineering
MAPO: mining API usages from open source repositories
Proceedings of the 2006 international workshop on Mining software repositories
XSnippet: mining For sample code
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Software Library Usage Pattern Extraction Using a Software Model Checker
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Discriminative pattern mining in software fault detection
Proceedings of the 3rd international workshop on Software quality assurance
Path-Sensitive Inference of Function Precedence Protocols
ICSE '07 Proceedings of the 29th international conference on Software Engineering
From uncertainty to belief: inferring the specification within
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Static specification mining using automata-based abstractions
Proceedings of the 2007 international symposium on Software testing and analysis
Mining API patterns as partial orders from source code: from usage scenarios to specifications
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Detecting object usage anomalies
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Parseweb: a programmer assistant for reusing open source code on the web
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Discovering Neglected Conditions in Software by Mining Dependence Graphs
IEEE Transactions on Software Engineering
Javert: fully automatic mining of general temporal properties from dynamic traces
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Accurate and Efficient Structural Characteristic Feature Extraction for Clone Detection
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Mining temporal specifications for error detection
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Lightweight defect localization for java
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Online inference and enforcement of temporal properties
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Recurring bug fixes in object-oriented programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Detecting recurring and similar software vulnerabilities
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Learning from 6,000 projects: lightweight cross-project anomaly detection
Proceedings of the 19th international symposium on Software testing and analysis
An automated approach for finding variable-constant pairing bugs
Proceedings of the IEEE/ACM international conference on Automated software engineering
Detection of recurring software vulnerabilities
Proceedings of the IEEE/ACM international conference on Automated software engineering
A graph-based approach to API usage adaptation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
SAPPER: subgraph indexing and approximate matching in large graphs
Proceedings of the VLDB Endowment
Topic-based defect prediction (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Detecting anomalies in the order of equally-typed method arguments
Proceedings of the 2011 International Symposium on Software Testing and Analysis
A flexible graph pattern matching framework via indexing
SSDBM'11 Proceedings of the 23rd international conference on Scientific and statistical database management
Mining evolution of object usage
Proceedings of the 25th European conference on Object-oriented programming
Mining temporal specifications from object usage
Automated Software Engineering
Alattin: mining alternative patterns for defect detection
Automated Software Engineering
Finding relevant answers in software forums
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Static detection of brittle parameter typing
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Graph-based pattern-oriented, context-sensitive source code completion
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Synthesizing API usage examples
Proceedings of the 34th International Conference on Software Engineering
Statically checking API protocol conformance with mined multi-object specifications
Proceedings of the 34th International Conference on Software Engineering
GraPacc: a graph-based pattern-oriented, context-sensitive code completion tool
Proceedings of the 34th International Conference on Software Engineering
Detecting missing method calls as violations of the majority rule
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automatic patch generation learned from human-written patches
Proceedings of the 2013 International Conference on Software Engineering
Understanding the genetic makeup of Linux device drivers
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Hi-index | 0.00 |
The interplay of multiple objects in object-oriented programming often follows specific protocols, for example certain orders of method calls and/or control structure constraints among them that are parts of the intended object usages. Unfortunately, the information is not always documented. That creates long learning curve, and importantly, leads to subtle problems due to the misuse of objects. In this paper, we propose GrouMiner, a novel graph-based approach for mining the usage patterns of one or multiple objects. GrouMiner approach includes a graph-based representation for multiple object usages, a pattern mining algorithm, and an anomaly detection technique that are efficient, accurate, and resilient to software changes. Our experiments on several real-world programs show that our prototype is able to find useful usage patterns with multiple objects and control structures, and to translate them into user-friendly code skeletons to assist developers in programming. It could also detect the usage anomalies that caused yet undiscovered defects and code smells in those programs.