Difference between revisions of "Monitoring-Oriented Programming"
(2 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | {{shortcut|[[MOP Syntax]]}} | + | {{shortcut|[[MOP4 Syntax|MOP Syntax]]}} |
__NOTOC__ | __NOTOC__ | ||
Line 10: | Line 10: | ||
MOP is generic both in the underlying programming language and in the requirements specification formalism in which properties are expressed. The clickable table below shows all current instances of MOP and can be used to navigate MOP's webpages on this site. The rows show instances by the language and the columns instances by the logic. A cell "..." means that the corresponding combination is not yet available. | MOP is generic both in the underlying programming language and in the requirements specification formalism in which properties are expressed. The clickable table below shows all current instances of MOP and can be used to navigate MOP's webpages on this site. The rows show instances by the language and the columns instances by the logic. A cell "..." means that the corresponding combination is not yet available. | ||
− | {{Private: | + | {{Private:JavaMOP4_Matrix}} |
== MOP Language Instances == | == MOP Language Instances == | ||
:* '''''[[JavaMOP4|JavaMOP]]''''' is an MOP tool for Java; | :* '''''[[JavaMOP4|JavaMOP]]''''' is an MOP tool for Java; | ||
:* '''''[[Special:BusMOP|BusMOP]]''''' is an MOP tool for monitoring consumer off-the-shelf components over the PCI bus; | :* '''''[[Special:BusMOP|BusMOP]]''''' is an MOP tool for monitoring consumer off-the-shelf components over the PCI bus; | ||
+ | :* '''''[[ROSMOP|ROSMOP]]''''' is an MOP tool for the Robot Operating System (ROS) | ||
== MOP Logic Plugins == | == MOP Logic Plugins == |
Latest revision as of 17:50, 21 November 2014
Monitoring-Oriented Programming, abbreviated MOP, is a software development and analysis framework aiming at reducing the gap between formal specification and implementation by allowing them together to form a system. In MOP, runtime monitoring is supported and encouraged as a fundamental principle for building reliable software: monitors are automatically synthesized from specified properties and integrated into the original system to check its dynamic behaviors during execution. When a specification is violated or validated at runtime, user-defined actions will be triggered, which can be any code from information logging to runtime recovery.
One can understand MOP from at least three perspectives: as a discipline allowing one to improve safety, reliability and dependability of a system by monitoring its requirements against its implementation at runtime; as an extension of programming languages with logics (one can add logical statements anywhere in the program, referring to past or future states); and as a lightweight formal method.
Please direct all questions to mop@cs.uiuc.edu.
[edit] The MOP Matrix
MOP is generic both in the underlying programming language and in the requirements specification formalism in which properties are expressed. The clickable table below shows all current instances of MOP and can be used to navigate MOP's webpages on this site. The rows show instances by the language and the columns instances by the logic. A cell "..." means that the corresponding combination is not yet available.
![]() |
MOP
|
![]() |
||||||
---|---|---|---|---|---|---|---|---|
... | ||||||||
... | ||||||||
... | ... | ... | ... | ... | ||||
... | ... | ... | ... | ... | ... | |||
... | ... | ... | ... | ... | ... | ... | ... | ... |
MOP Matrix: a clickable map of MOP pages. |
[edit] MOP Language Instances
[edit] MOP Logic Plugins
Logic plugins implement and encapsulate monitor synthesis algorithms for particular requirements specification formalisms. While they are a core feature of MOP, logic plugins can be used in various other monitoring applications. Below is a list containing our current logic plugins. Each plugin can be experimented with online before download.
[edit] MOP Tutorial Slides
Tutorial slides from RV 2010 PDF Keynote Powerpoint
Tutorial slides from ASE 2009 Tutorial Slides
Another presentation, given at Microsoft Research in 2007. MSR Presentation
[edit] Select MOP Publications
Below is a list of the papers most relevant to MOP, in reverse chronological order. HERE is a complete list of all papers related to MOP.
- The theoretical and algorithmic foundations of parametric monitoring:
- Semantics and Algorithms for Parametric Monitoring
- Grigore Rosu and Feng Chen
J.LMCS, Volume 8(1), pp 1-47. 2012
PDF, MOP, J.LMCS, BIB
- An overview of the MOP system, including some of the techniques used to make JavaMOP efficient:
- Garbage collection for JavaMOP:
- Garbage Collection for Monitoring Parametric Properties
- Dongyun Jin, Patrick Meredith, Dennis Griffith and Grigore Rosu
PLDI'11, ACM, pp 415-424. 2011
PDF, PLDI'11 slides(pptx), PLDI'11 slides(pdf), ACM, PLDI'11, JavaMOP, BIB
- A technique for monitoring complex properties, showing that MOP scales to super-regular logics and languages:
- Efficient Monitoring of Parametric Context-Free Patterns
- Patrick Meredith, Dongyun Jin, Feng Chen and Grigore Rosu
ASE'08, IEEE/ACM, pp 148-157. 2008 ACM Sigsoft Distinguished Paper
PDF, Experiments, ASE'08 slides(KEY), ASE'08 slides(MOV), ASE'08 slides(PPT), IEEE, ASE'08, BIB