Runtime Monitoring with Union-Find Structures

Normann Decker, Jannis Harder, Torben Scheffel, Malte Schmitz, Daniel Thoma

Abstract

This paper is concerned with runtime verification of object-oriented software system. We propose a novel algorithm for monitoring the individual behaviour and interaction of an unbounded number of runtime objects. This allows for evaluating complex correctness properties that take runtime data in terms of object identities into account. In particular, the underlying formal model can express hierarchical interdependencies of individual objects. Currently, the most efficient monitoring approaches for such properties are based on lookup tables. In contrast, the proposed algorithm uses union-find data structures to manage individual instances and thereby accomplishes a significant performance improvement. The time complexity bounds of the very efficient operations on union-find structures transfer to our monitoring algorithm: the execution time of a single monitoring step is guaranteed logarithmic in the number of observed objects. The amortised time is bound by an inverse of Ackermann’s function. We have implemented the algorithm in our monitoring tool Mufin. Benchmarks show that the targeted class of properties can be monitored extremely efficient and runtime overhead is reduced substantially compared to other tools.

Original languageEnglish
Title of host publicationTools and Algorithms for the Construction and Analysis of Systems
EditorsJ.-F Raskin , M. Chechik
Number of pages17
Volume9636
Place of PublicationBerlin
PublisherSpringer Verlag
Publication date09.04.2016
Pages868-884
ISBN (Print)978-3-662-49673-2
ISBN (Electronic)978-3-662-49674-9
DOIs
Publication statusPublished - 09.04.2016
Event22nd International Conference on Tools and Algorithms for the Construction and Analysis of Systems
- Eindhoven, Netherlands
Duration: 02.04.201608.04.2016
Conference number: 173509

Fingerprint

Dive into the research topics of 'Runtime Monitoring with Union-Find Structures'. Together they form a unique fingerprint.

Cite this