Symbolic Verification of Communication Protocols with Infinite StateSpaces using QDDs
Formal Methods in System Design
On Communicating Finite-State Machines
Journal of the ACM (JACM)
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
TReX: A Tool for Reachability Analysis of Complex Systems
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Dynamic Detection of COTS Component Incompatibility
IEEE Software
Automatic generation of software behavioral models
Proceedings of the 30th international conference on Software engineering
Extrapolation-Based Path Invariants for Abstraction Refinement of Fifo Systems
Proceedings of the 16th International SPIN Workshop on Model Checking Software
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
On the Synthesis of Finite-State Machines from Samples of Their Behavior
IEEE Transactions on Computers
Experience mining Google's production console logs
SLAML'10 Proceedings of the 2010 workshop on Managing systems via log analysis and machine learning techniques
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
Mining temporal invariants from partially ordered logs
ACM SIGOPS Operating Systems Review
McScM: a general framework for the verification of communicating machines
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Hi-index | 0.00 |
Networked systems are often difficult to debug and understand. A common way of gaining insight into system behavior is to inspect execution logs and documentation. Unfortunately, manual log inspection is difficult and documentation is often incomplete and out of sync with the implementation. To provide developers with more insight into networked systems I am working Dynoptic, a tool that infers a concise and accurate system model, in the form of a communicating finite state machine from logs. Developers can use the inferred models to understand behavior, detect anomalies, verify known bugs, diagnose new bugs, and increase their confidence in the correctness of their implementation. Unlike most related work, Dynoptic does not require developer-written scenarios, specifications, negative execution examples, or other complex input. Dynoptic processes the logs most systems already produce and requires developers only to specify a set of regular expressions for parsing the logs.