Data mining library reuse patterns using generalized association rules
Proceedings of the 22nd 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
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
MOPS: an infrastructure for examining security properties of software
Proceedings of the 9th ACM conference on Computer and communications security
Fast Algorithms for Mining Association Rules in Large Databases
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
Efficient Algorithms for Model Checking Pushdown Systems
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Debugging temporal specifications with concept analysis
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
BIDE: Efficient Mining of Frequent Closed Sequences
ICDE '04 Proceedings of the 20th International Conference on Data Engineering
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Lightweight model checking for improving software security
Lightweight model checking for improving software security
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
Software Library Usage Pattern Extraction Using a Software Model Checker
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Discovering Frequent Closed Partial Orders from Strings
IEEE Transactions on Knowledge and Data Engineering
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Mining Interface Specifications for Generating Checkable Robustness Properties
ISSRE '06 Proceedings of the 17th International Symposium on Software Reliability Engineering
From uncertainty to belief: inferring the specification within
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Software verification with BLAST
SPIN'03 Proceedings of the 10th international conference on Model checking software
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
Mining library specifications using inductive logic programming
Proceedings of the 30th international conference on Software engineering
Dynamic inference of likely data preconditions over predicates by tree learning
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Mining past-time temporal rules from execution traces
WODA '08 Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
Mining application-specific coding patterns for software maintenance
Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolution
Javert: fully automatic mining of general temporal properties from dynamic traces
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Specification mining of symbolic scenario-based models
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Mining API Error-Handling Specifications from Source Code
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
Automatic steering of behavioral model inference
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Graph-based mining of multiple object usage patterns
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
MAPO: Mining and Recommending API Usage Patterns
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Mining Scenario-Based Triggers and Effects
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
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
DETERMIN: inferring likely deterministic specifications of multithreaded programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Mining program workflow from interleaved traces
Proceedings of the 16th ACM SIGKDD international conference on Knowledge discovery and data mining
Scenario-based and value-based specification mining: better together
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
Software intelligence: the future of mining software engineering data
Proceedings of the FSE/SDP workshop on Future of software engineering research
Automatically discovering properties that specify the latent behavior of UML models
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part I
Large-scale, AST-based API-usage analysis of open-source Java projects
Proceedings of the 2011 ACM Symposium on Applied Computing
Mining message sequence graphs
Proceedings of the 33rd International Conference on Software Engineering
Mining parametric specifications
Proceedings of the 33rd International Conference on Software Engineering
Specification mining in concurrent and distributed systems
Proceedings of the 33rd International Conference on Software Engineering
Specification mining in concurrent and distributed systems
Proceedings of the 33rd International Conference on Software Engineering
Leveraging existing instrumentation to automatically infer invariant-constrained models
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Synoptic: studying logged behavior with inferred models
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
An empirical study of object protocols in the wild
Proceedings of the 25th European conference on Object-oriented programming
Mining temporal specifications from object usage
Automated Software Engineering
Inferring specifications for resources from natural language API documentation
Automated Software Engineering
Alattin: mining alternative patterns for defect detection
Automated Software Engineering
Analyzing temporal API usage patterns
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Graph-based pattern-oriented, context-sensitive source code completion
Proceedings of the 34th International Conference on Software Engineering
Performance debugging in the large via mining millions of stack traces
Proceedings of the 34th International Conference on Software Engineering
Temporal analysis of API usage concepts
Proceedings of the 34th International Conference on Software Engineering
Inferring class level specifications for distributed systems
Proceedings of the 34th International Conference on Software Engineering
Extending static analysis by mining project-specific rules
Proceedings of the 34th International Conference on Software Engineering
Typestate-based semantic code search over partial programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A CASE Tool for Java Mobile Computing Applications
International Journal of Mobile Computing and Multimedia Communications
Unifying FSM-inference algorithms through declarative specification
Proceedings of the 2013 International Conference on Software Engineering
Detecting API usage obstacles: a study of iOS and Android developer questions
Proceedings of the 10th Working Conference on Mining Software Repositories
Mining succinct and high-coverage API usage patterns from source code
Proceedings of the 10th Working Conference on Mining Software Repositories
Comparison and evaluation of source code mining tools and techniques: A qualitative approach
Intelligent Data Analysis
Hi-index | 0.00 |
A software system interacts with third-party libraries through various APIs. Using these library APIs often needs tofollow certain usage patterns. Furthermore, ordering rules (specifications) exist between APIs, and these rules govern the secure and robust operation of the system using these APIs. But these patterns and rules may not be well documented by the API developers. Previous approaches mine frequent association rules, itemsets, or subsequences that capture API call patterns shared by API client code. However, these frequent API patterns cannot completely capture some useful orderings shared by APIs, especially when multiple APIs are involved across different procedures. In this paper, we present a framework to automatically extract usage scenarios among user-specified APIs as partial orders, directly from the source code (API client code). We adapt a model checker to generate interprocedural control-flow-sensitive static traces related to the APIs of interest. Different API usage scenarios are extracted from the static traces by our scenario extraction algorithm and fed to a miner. The miner summarizes different usage scenarios as compact partial orders. Specifications are extracted from the frequent partial orders using our specification extraction algorithm. Our experience of applying the framework on 72 X11 clients with 200K LOC in total has shown that theextracted API partial orders are useful in assisting effective API reuse and checking.