Emergent gummy modules: modular representation of emergent behavior

Emergent behavior is generally defined as the appearance of complex behavior out of multiplicity of relatively simple interactions. Nowadays, there are various kinds of software systems that deal with detecting the emergence of certain behavior in environment, representing it in the software and providing means to manipulate the behavior. Where significant amount of research has been dedicated to develop algorithms for detecting emergent behavior, there is no dedicated attempt to provide suitable linguistic abstractions to modularize emergent behavior and its related concerns. This results in implementations that are complex and hard to maintain. In this paper, we identify three characteristic features of emergent behavior, and outline the shortcomings of current languages to properly program and modularize emergent behavior. We introduce emergent gummy modules as dedicated linguistic abstractions, which facilitate defining the appearance and disappearance conditions of emergent behavior as well as its utilization operations as one holistic module. We explain the implementation of emergent gummy modules in the GummyJ language, and illustrate that they improve the modularity of implementations. We represent the event processing semantics of GummyJ programs in UPPAAL model checker and verify their correctness.

[1]  Somayeh Malakuti,et al.  Event Modules - Modularizing Domain-Specific Crosscutting RV Concerns , 2014, LNCS Trans. Aspect Oriented Softw. Dev..

[2]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

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

[4]  Henk A. P. Blom,et al.  Agent-based modeling and simulation of emergent behavior in air transportation , 2013, Complex Adapt. Syst. Model..

[5]  Martin Treiber,et al.  Traffic Flow Dynamics , 2013 .

[6]  Mira Mezini,et al.  EScala: modular event-driven object interactions in scala , 2011, AOSD '11.

[7]  O. Thomas Holland,et al.  Taxonomy for the modeling and simulation of emergent behavior systems , 2007, SpringSim '07.

[8]  Mitchel Resnick,et al.  Turtles, termites, and traffic jams - explorations in massively parallel microworlds , 1994 .

[9]  Gary T. Leavens,et al.  Ptolemy: A Language with Quantified, Typed Events , 2008, ECOOP.

[10]  Hidehiko Masuhara,et al.  Improving the development of context-dependent Java applications with ContextJ , 2009, COP@ECOOP.

[11]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

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

[13]  Somayeh Malakuti,et al.  Event-based modularization: how emergent behavioral patterns must be modularized? , 2014, FOAL.

[14]  Naoyasu Ubayashi,et al.  Association aspects , 2004, AOSD '04.

[15]  Javier Gozálvez,et al.  Traffic congestion detection in large-scale scenarios using vehicle-to-vehicle communications , 2013, J. Netw. Comput. Appl..

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

[17]  Hidehiko Masuhara,et al.  EventCJ: a context-oriented programming language with declarative event-based context transition , 2011, AOSD '11.

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

[19]  Edward Cutrell,et al.  Accurate speed and density measurement for road traffic in India , 2013, ACM DEV '13.

[20]  Shigeru Chiba,et al.  Method slots: supporting methods, events, and advices by a single language construct , 2013, LNCS Trans. Aspect Oriented Softw. Dev..

[21]  Wim Vanderperren,et al.  Stateful Aspects in JAsCo , 2005, SC@ETAPS.

[22]  J. Fromm Types and Forms of Emergence , 2005, nlin/0506028.