Exploring existing and emerging work in the field, this volume shows how specification mining techniques can help find software bugs and improve program understanding. Top researchers in the software engineering community provide valuable insight on up-to-date case studies of various software systems, including open source programs and those used by Microsoft Research and IBM Research. The book focuses on mining both finite state machines and temporal rules/patterns of behavior. It presents approaches that use static analysis, dynamic analysis, and combinations of the two.
Inhaltsverzeichnis
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.