Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Khurshid, S., Sen, K. (eds.): RV 2011. LNCS, vol. 7186. Springer, Heidelberg (2012)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-Oriented Programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Easwaran, A., Kannan, S., Sokolsky, O.: Steering of Discrete Event Systems: Control Theory Approach. Electron. Notes Theor. Comput. Sci. 144, 21–39 (2006)
Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An Overview of the MOP Runtime Verification Framework. International Journal on Software Techniques for Technology Transfer, 249–289 (2011)
Havelund, K.: Runtime verification of C programs. In: Suzuki, K., Higashino, T., Ulrich, A., Hasegawa, T. (eds.) TestCom/FATES 2008. LNCS, vol. 5047, pp. 7–22. Springer, Heidelberg (2008)
Bartetzko, D., Fischer, C., Moller, M., Wehrheim, H.: Jass - Java with Assertions. Electronic Notes in Theoretical Computer Science 55(2), 1–15 (2001)
Drusinsky, D.: The Temporal Rover and the ATG Rover. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 323–330. Springer, Heidelberg (2000)
Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# Programming System: An Overview, pp. 49–69. Springer (2004)
Rosenblum, D.S.: Towards a Method of Programming with Assertions. In: Proceedings of the 14th International Conference on Software Engineering, ICSE 1992, Melbourne, Australia, pp. 92–104. ACM (1992)
Malakuti, S., Bockisch, C., Akşit, M.: Applying the Composition Filter Model for Runtime Verification of Multiple-Language Software. In: Proceedings of the 20th IEEE International Conference on Software Reliability Engineering, ISSRE 2009, pp. 31–40. IEEE Press, Piscataway (2009)
Martin, M., Livshits, B., Lam, M.S.: Finding Application Errors and Security Flaws Using PQL: A Program Query Language. SIGPLAN Not. 40, 365–383 (2005)
Bauer, L., Ligatti, J., Walker, D.: Composing Expressive Runtime Security Policies. ACM Trans. Softw. Eng. Methodol. 18 (2009)
Pavel, C.A., Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Moor, O.D., Sereni, D., Sittampalam, G., Tibble, J.: Adding Trace Matching with Free Variables to AspectJ. In: OOPSLA, pp. 345–364 (2005)
Barringer, H., Havelund, K.: TraceContract: A scala DSL for trace analysis. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 57–72. Springer, Heidelberg (2011)
Malakuti, S.: Event Composition Model: Achieving Naturalness in Runtime Enforcement. PhD thesis, University of Twente (2011)
Malakuti, S., Akşit, M.: Evolution of Composition Filters to Event Composition. In: Proceedings of the 27th Annual ACM Symposium on Applied Computing, SAC 2012, pp. 1850–1857. ACM (2012)
Parnas, D.L.: On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM 15, 1053–1058 (1972)
Akşit, M.: Separation and Composition of Concerns. ACM Computing Surveys 28 (1996)
Sozer, H., Abreu, R., Akşit, M., van Gemund, A.J.: Increasing System Availability with Local Recovery Based on Fault Localization. In: International Conference on Quality Software, pp. 276–281 (2010)
Sozer, H.: Architecting Fault-Tolerant Software Systems. PhD thesis, University of Twente (2009)
Fowler, M.: Domain-Specific Languages. Addison-Wesley Professional (2010)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of aspectJ. In: Lindskov Knudsen, J. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
AspectC, http://www.cs.ubc.ca/labs/spl/projects/aspectc.html
Steimann, F., Pawlitzki, T., Apel, S., Kästner, C.: Types and Modularity for Implicit Invocation with Implicit Announcement. ACM Trans. Softw. Eng. Methodol. 20(1), 1:1–1:43 (2010)
de Roo, A., Hendriks, M., Havinga, W., Durr, P., Bergmans, L.: Compose*: A Language- and Platform-Independent Aspect Compiler for Composition Filters. In: International Workshop on Academic Software Development Tools and Techniques (2008)
Hopcroft, J.E., Motwani, R., Ullman, J.: Introduction to Automata Theory, Languages, and Computation. Addison Wesley (2000)
Malakuti, S., Akşit, M.: Event-Based Modularization of Reactive Systems. In: Concurrent Objects and Beyond. LNCS (2013) (to appear)
Riordan, M.: Designing Relational Database Systems. Microsoft Press (1999)
Ligatti, J., Bauer, L., Walker, D.: Edit Automata: Enforcement Mechanisms for Run-Time Security Policies. International Journal of Information Security 4, 2–16 (2005), doi:10.1007/s10207-004-0046-8
Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.): Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525. Springer, Heidelberg (2009)
Havinga, W., Bergmans, L., Akşit, M.: Prototyping and Composing Aspect Languages: Using an Aspect Interpreter Framework. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 180–206. Springer, Heidelberg (2008)
Tanter, É.: An Extensible Kernel Language for AOP. In: Proceedings of the Workshop on Open and Dynamic Aspect Languages (ODAL) (2006)
Malakuti, S., te Brinke, S., Bergmans, L., Bockisch, C.: Towards Modular Resource-Aware Applications. In: Proceedings of the 3rd International Workshop on Variability & Composition (VariComp 2012), pp. 13–17. ACM, New York (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Malakuti, S., Akşit, M. (2014). Event Modules. In: Chiba, S., Tanter, É., Bodden, E., Maoz, S., Kienzle, J. (eds) Transactions on Aspect-Oriented Software Development XI. Lecture Notes in Computer Science, vol 8400. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-55099-7_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-55099-7_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-55098-0
Online ISBN: 978-3-642-55099-7
eBook Packages: Computer ScienceComputer Science (R0)