Description
Book SynopsisAn emerging topic in software engineering and data mining, specification mining tackles software maintenance and reliability issues that cost economies billions of dollars each year. The first unified reference on the subject, Mining Software Specifications: Methodologies and Applications describes recent approaches for mining specifications of software systems. Experts in the field illustrate how to apply state-of-the-art data mining and machine learning techniques to address software engineering concerns.
In the first set of chapters, the book introduces a number of studies on mining finite state machines that employ techniques, such as grammar inference, partial order mining, source code model checking, abstract interpretation, and more. The remaining chapters present research on mining temporal rules/patterns, covering techniques that include path-aware static program analyses, lightweight rule/pattern mining, statistical analysis, and other interesting ap
Table of Contents
Specification Mining: A Concise Introduction. Mining Finite-State Automata with Annotations. Adapting Grammar Inference Techniques to Mine State Machines. Mining API Usage Protocols from Large Method Traces. Static API Specification Mining: Exploiting Source Code Model Checking. Static Specification Mining Using Automata-Based Abstractions. DynaMine: Finding Usage Patterns and Their Violations by Mining Software Repositories. Automatic Inference and Effective Application of Temporal Specifications. Path-Aware Static Program Analyses for Specification Mining. Mining API Usage Specifications via Searching Source Code from the Web. Merlin: Specification Inference for Explicit Information Flow Problems. Lightweight Mining of Object Usage.