Event Modules - Modularizing Domain-Specific Crosscutting RV Concerns

Runtime verification (RV) facilitates detecting the failures of software during its execution. Due to the complexity of RV techniques, there is an increasing interest in achieving abstractness, modularity, and compose-ability in their implementations by means of dedicated linguistic mechanisms. This paper defines a design space to evaluate the existing domain-specific languages for implementing RV techniques, and identifies the shortcomings of a representative set of these languages with respect to the design space. This paper advocates the need for a language composition framework, which offers the necessary mechanisms to achieve abstractness, modularity, and compose-ability in the implementation of domain-specific crosscutting concerns such as the concerns of RV techniques. We explain event modules as novel linguistic abstractions for modular implementation of domain-specific crosscutting concerns. This paper discusses the implementation of event modules in the EventReactor language, and illustrates the suitability of event modules to implement RV techniques by means of two complementary examples.

[1]  Christoph Bockisch,et al.  Applying the Composition Filter Model for Runtime Verification of Multiple-Language Software , 2009, 2009 20th International Symposium on Software Reliability Engineering.

[2]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[3]  Howard Barringer,et al.  TraceContract: A Scala DSL for Trace Analysis , 2011, FM.

[4]  Mehmet Aksit Separation and composition of concerns , 1996 .

[5]  Klaus Havelund,et al.  Runtime Verification of C Programs , 2008, TestCom/FATES.

[6]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[7]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[8]  Mehmet Aksit Separation and composition of concerns in the object-oriented model , 1996, CSUR.

[9]  Doron Drusinsky,et al.  The Temporal Rover and the ATG Rover , 2000, SPIN.

[10]  Christoph Bockisch,et al.  Towards modular resource-aware applications , 2012, VariComp '12.

[11]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[12]  K. Rustan M. Leino,et al.  The Spec# Programming System: An Overview , 2004, CASSIS.

[13]  Somayeh Malakuti,et al.  Event-Based Modularization of Reactive Systems , 2014, Concurrent Objects and Beyond.

[14]  David S. Rosenblum Towards A Method Of Programming With Assertions , 1992, International Conference on Software Engineering.

[15]  Benjamin Livshits,et al.  Finding application errors and security flaws using PQL: a program query language , 2005, OOPSLA '05.

[16]  Rebecca Riordan Designing Relational Database Systems [With CDROM] , 1999 .

[17]  Barbara von Halle,et al.  Designing Relational Databases , 2001, High-Performance Web Databases.

[18]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[19]  Takeo Kanade,et al.  Software Engineering for Self-Adaptive Systems II , 2013, Lecture Notes in Computer Science.

[20]  Martin Fowler,et al.  Domain-Specific Languages , 2010, The Addison-Wesley signature series.

[21]  Sven Apel,et al.  Types and modularity for implicit invocation with implicit announcement , 2010, TSEM.

[22]  Grigore Rosu,et al.  An overview of the MOP runtime verification framework , 2012, International Journal on Software Tools for Technology Transfer.

[23]  Lodewijk Bergmans,et al.  Compose*: a Language- and Platform-Independent Aspect Compiler for Composition Filters , 2008 .

[24]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[25]  Lujo Bauer,et al.  Edit automata: enforcement mechanisms for run-time security policies , 2005, International Journal of Information Security.

[26]  Somayeh Malakuti,et al.  Evolution of composition filters to event composition , 2012, SAC '12.

[27]  Éric Tanter An Extensible Kernel Language for AOP , 2006 .

[28]  Lodewijk Bergmans,et al.  Prototyping and Composing Aspect Languages , 2008, ECOOP.

[29]  Lodewijk Bergmans,et al.  Prototyping and Composing Aspect Languages: using an Aspect Interpreter Framework , 2007 .

[30]  Hasan Sözer,et al.  Architecting Fault-Tolerant Software Systems , 2009 .

[31]  Sampath Kannan,et al.  Steering of Discrete Event Systems: Control Theory Approach , 2006, Electron. Notes Theor. Comput. Sci..

[32]  Rui Abreu,et al.  Increasing System Availability with Local Recovery Based on Fault Localization , 2010, 2010 10th International Conference on Quality Software.

[33]  Somayeh Malakuti Khah Olun Abadi Event composition model: achieving naturalness in runtime enforcement , 2011 .

[34]  Lujo Bauer,et al.  Composing expressive runtime security policies , 2009, TSEM.

[35]  Heike Wehrheim,et al.  Jass - Java with Assertions , 2001, RV@CAV.