Abstract
There is a large number of complex software systems that have reactive behavior. As for any other software system, reactive systems are subject to evolution demands. This paper defines a set requirements that must be fulfilled so that reuse of reactive software systems can be increased. Detailed analysis of a set of representative languages reveals that these requirements are not completely fulfilled by the current programming languages and as such reuse of reactive systems remains a challenge. This paper explains Event Composition Model and its implementation the EventReactor language, which fulfill the requirements. By means of an example, the suitability of the EventReactor language in creating reusable reactive systems is illustrated.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Harel, D., Pnueli, A.: On the Development of Reactive Systems. In: Apt, K.R. (ed.) Logics and Models of Concurrent Systems, pp. 477–498. Springer, New York (1985)
Güleşir, G.: Evolvable Behavior Specifications Using Context-Sensitive Wildcards. PhD thesis, University of Twente, Enschede (2008)
Salvaneschi, G., Mezini, M.: Reactive Behavior in Object-Oriented Applications: an Analysis and a Research Roadmap. In: AOSD 2013, pp. 37–48. ACM (2013)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional (1994)
Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R.: Documenting Software Architectures: Views and Beyond. Addison-Wesley Professional (2002)
Basten, T., Hamberg, R., Reckers, F., Verriet, J.: Model-Based Design of Adaptive Embedded Systems. Springer (2013)
Boussinot, F.: Reactive C: An Extension of C to Program Reactive Systems. Software: Practice and Experience 21(4), 401–428 (1991)
Malakuti, S.: Event Composition Model: Achieving Naturalness in Runtime Enforcement. PhD thesis, University of Twente (2011)
de Roo, A., Sözer, H., Aksit, M.: Verification and Analysis of Domain-Specific Models of Physical Characteristics in Embedded Control Software. Information and Software Technology 54(12), 1432–1453 (2012)
Malakuti, S., Akşit, M.: Event Modules: Modularizing Domain-Specific Crosscutting RV Concerns. In: Chiba, S., Tanter, É., Bodden, E., Maoz, S., Kienzle, J. (eds.) Transactions on AOSD XI. LNCS, vol. 8400, pp. 27–69. Springer, Heidelberg (2014)
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)
Salehie, M., Tahvildari, L.: Self-adaptive Software: Landscape and Research Challenges. ACM Trans. Auton. 4(2), 14:1–14:42 (2009)
Delgado, N., Gates, A., Roach, S.: A Taxonomy and Catalog of Runtime Software-Fault Monitoring Tools. IEEE Transactions on Software Engineering 30(12), 859–872 (2004)
Koob, G.M., Lau, C.G.: Foundations of Dependable Computing: Paradigms for Dependable Applications. Springer (1994)
Sozer, H.: Architecting Fault-Tolerant Software Systems. PhD thesis, University of Twente (2009)
Ingalls, D.H.H.: A Simple Technique for Handling Multiple Polymorphism. In: OOPLSA 1986, pp. 347–349. ACM (1986)
Compose, http://composestar.sourceforge.net/
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 2005, pp. 345–364 (2005)
Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Komiya, S.: Association Aspects. In: Proceedings of the 3rd International Conference on Aspect-oriented Software Development, pp. 16–25. ACM, Lancaster (2004)
Harbulot, B., Gurd, J.R.: A Join Point for Loops in AspectJ. In: AOSD, pp. 63–74. ACM (2006)
Bockisch, C., Malakuti, S., Katz, S., Aksit, M.: Making Aspects Natural: Events and Composition. In: AOSD 2011, pp. 285–299. ACM (2011)
Steimann, F., Pawlitzki, T., Apel, S., Kästner, C.: Types and Modularity for Implicit Invocation with Implicit Announcement. ACM Transactions on Software Engineering and Methodology 20, 1:1–1:43 (2010)
Malakuti, S., Aksit, 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)
AspectC, http://www.cs.ubc.ca/labs/spl/projects/aspectc.html
Ostermann, K., Mezini, M., Bockisch, C.: Expressive Pointcuts for Increased Modularity. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 214–240. Springer, Heidelberg (2005)
Hoffman, K., Eugster, P.: Cooperative Aspect-Oriented Programming. Sci. Comput. Program. 74, 333–354 (2009)
Khurshid, S., Sen, K. (eds.): RV 2011. LNCS, vol. 7186. Springer, Heidelberg (2012)
Malakuti, S., Bockisch, C., Aksit, M.: Applying the Composition Filter Model for Runtime Verification of Multiple-Language Software. In: ISSRE 2009, pp. 31–40. IEEE Press, Piscataway (2009)
Microsoft Corporation. C# language specification, http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx
Gasiunas, V., Satabin, L., Mezini, M., Núñez, A., Noyé, J.: EScala: Modular Event-Driven Object Interactions in Scala. In: AOSD 2011, pp. 227–240. ACM (2011)
Odersky, M.: Programming in Scala: A Comprehensive Step-by-Step Guide. Artima Inc. (2008)
Rajan, H., Leavens, G.T.: Ptolemy: A Language with Quantified, Typed Events. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 155–179. Springer, Heidelberg (2008)
Chen, F., Roşu, G.: MOP: An Efficient and Generic Runtime Verification Framework. In: Object-Oriented Programming, Systems, Languages and Applications(OOPSLA 2007), pp. 569–588. ACM Press (2007)
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)
Java-JNI, http://download.oracle.com/javase/1.5.0/docs/guide/jni/spec/jniTOC.html
Malakuti, S., Aksit, M., Bockisch, C.: Runtime Verification in Distributed Computing. Journal of Convergence: An International Journal of Future Technology Research Association International 2(1) (2011)
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)
Nagy, I.: On the Design of Aspect-Oriented Composition Models for Software Evolution. Phd thesis, IPA (May 2006), ISBN: 90-365-2368-0
Malakuti, S., te Brinke, S., Bergmans, L., Bockisch, C.: Towards Modular Resource-Aware Applications. In: 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., Aksit, M. (2014). Event-Based Modularization of Reactive Systems. In: Agha, G., et al. Concurrent Objects and Beyond. Lecture Notes in Computer Science, vol 8665. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44471-9_16
Download citation
DOI: https://doi.org/10.1007/978-3-662-44471-9_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-44470-2
Online ISBN: 978-3-662-44471-9
eBook Packages: Computer ScienceComputer Science (R0)