“…In this paper, we focus particularly on the specification of constraints to be monitored at runtime, and tools that automatically generate runtime monitors from these specifications. In recent years, three classes of techniques have established themselves as the main focus areas for research: (1) contract-based approaches like JML [3], (2) approaches matching event traces against patterns, usually specified in a form of linear temporal logic (LTL) [8,11,12], regular expressions or context-free grammars [7,9,10,13], and extensions that include more complex data bindings and events [20][21][22][23], and (3) model-based approaches centered around UML-like models [16,17]. There is also a large body of work on other monitoring topics, such as intrusion and malware detection.…”