Unanticipated Debugging with Dynamic Layers

To debug running software we need unanticipated adaptation capabilities, especially when systems cannot be stopped, updated and restarted. Adapting such programs at runtime is an extreme solution given the delicate live contexts the debugging activity takes place. We introduce the Dynamic Layer, a construct in which behavioral variations are gathered and activated as a whole set of adaptations. Dimensions of Dynamic Layers activation are reified to allow very fine definitions of layer scopes and a fine grained selection of adapted entities. This paper describes and discusses the Dynamic Layer solution to perform unanticipated runtime debugging. An experimental implementation with the Pharo language is evaluated through a runtime adaptation example.

[1]  John Keeney,et al.  Chisel: a policy-driven, context-aware, dynamic adaptation framework , 2003, Proceedings POLICY 2003. IEEE 4th International Workshop on Policies for Distributed Systems and Networks.

[2]  Alexander Schill,et al.  Consistent Unanticipated Adaptation for Context-Dependent Applications , 2016, COP@ECOOP.

[3]  Marcus Denker,et al.  Unanticipated Partial Behavioral Reflection , 2006, ISC.

[4]  Hidehiko Masuhara,et al.  Generalized Layer Activation Mechanism for Context-Oriented Programming , 2016, LNCS Trans. Modul. Compos..

[5]  John Keeney,et al.  Completely unanticipated dynamic adaptation of software , 2004 .

[6]  Robert Hirschfeld,et al.  Transaction Layers: Controlling Granularity of Change in Live Programming Environments , 2016, COP@ECOOP.

[7]  Theo D'Hondt,et al.  Pitfalls in Unanticipated Dynamic Software Evolution , 2005, RAM-SE.

[8]  Oscar Nierstrasz,et al.  Model-Centric, Context-Aware Software Adaptation , 2009, Software Engineering for Self-Adaptive Systems.

[9]  Steven Costiou,et al.  Lub: a DSL for Dynamic Context Oriented Programming , 2016, IWST.

[10]  Alexandre Bergel,et al.  Deep into Pharo , 2013 .

[11]  Andry Rakotonirainy,et al.  Context-oriented programming , 2003, MobiDe '03.

[12]  Oscar Nierstrasz,et al.  Object-centric debugging , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[13]  Oscar Nierstrasz,et al.  Talents: an environment for dynamically composing units of reuse , 2012, Softw. Pract. Exp..

[14]  Robert E. Filman,et al.  Unanticipated Software Evolution , 2005, J. Softw. Maintenance Res. Pract..

[15]  Christian Wimmer,et al.  Unrestricted and safe dynamic code evolution for Java , 2013, Sci. Comput. Program..

[16]  Oscar Nierstrasz,et al.  Pharo by Example , 2010 .