A White Box Perspective on Behavioural Adaptation

  • Roberto Bruni
  • Andrea Corradini
  • Fabio Gadducci
  • Alberto Lluch Lafuente
  • Andrea Vandin
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8950)


We present a white-box conceptual framework for adaptation developed in the context of the EU Project ASCENS coordinated by Martin Wirsing. We called it CoDa, for Control Data Adaptation, since it is based on the notion of control data. CoDa promotes a neat separation between application and adaptation logic through a clear identification of the set of data that is relevant for the latter. The framework provides an original perspective from which we survey a representative set of approaches to adaptation, ranging from programming languages and paradigms to computational models and architectural solutions.


Adaptation Self-* Autonomic Computing Programming Languages Software Architectures Computational Models Computational Reflection 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adler, R., Schaefer, I., Schuele, T., Vecchié, E.: From model-based design to formal verification of adaptive embedded systems. In: Butler, M., Hinchey, M.G., Larrondo-Petrie, M.M. (eds.) ICFEM 2007. LNCS, vol. 4789, pp. 76–95. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  2. 2.
    Agha, G.: Actors: a model of concurrent computation in distributed systems. MIT Press (1986)Google Scholar
  3. 3.
    de Alfaro, L., Henzinger, T.A.: Interface automata. In: ESEC/FSE 2001. ACM SIGSOFT Software Engineering Notes, vol. 26(5), pp. 109–120. ACM (2001)Google Scholar
  4. 4.
    Allen, R.B., Douence, R., Garlan, D.: Specifying and analyzing dynamic software architectures. In: Astesiano, E. (ed.) FASE 1998. LNCS, vol. 1382, pp. 21–37. Springer, Heidelberg (1998)Google Scholar
  5. 5.
    Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Modeling dimensions of self-adaptive software systems. In: Cheng, et al. (eds.) [27], pp. 27–47Google Scholar
  6. 6.
    Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Reflecting on self-adaptive software systems. In: SEAMS 2009, pp. 38–47. IEEE Computer Society (2009)Google Scholar
  7. 7.
    Andrade, L.F., Fiadeiro, J.L.: An architectural approach to auto-adaptive systems. In: ICDCSW 2002, pp. 439–444. IEEE Computer Society (2002)Google Scholar
  8. 8.
    Appeltauer, M., Hirschfeld, R., Haupt, M., Masuhara, H.: ContextJ: Context-oriented programming with Java. Journal of the Japan Society for Software Science and Technology on Computer Software 28(1), 272–292 (2011)Google Scholar
  9. 9.
    Autili, M., Benedetto, P.D., Inverardi, P.: A programming model for adaptable java applications. In: Krall, A., Mössenböck, H. (eds.) PPPJ 2010, pp. 119–128. ACM (2010)Google Scholar
  10. 10.
    Beal, J., Cleveland, J., Usbeck, K.: Self-stabilizing robot team formation with proto: Ieee self-adaptive and self-organizing systems 2012 demo entry. In: SASO 2012, pp. 233–234. IEEE Computer Society (2012)Google Scholar
  11. 11.
    Biyani, K.N., Kulkarni, S.S.: Assurance of dynamic adaptation in distributed systems. Journal of Parallel and Distributed Computing 68(8), 1097–1112 (2008)CrossRefzbMATHGoogle Scholar
  12. 12.
    Boella, G., Dastani, M., Omicini, A., van der Torre, L.W., Cerna, I., Linden, I. (eds.): CoOrg 2006 & MTCoord 2006. ENTCS, vol. 181. Elsevier (2007)Google Scholar
  13. 13.
    Bosch, J.: Superimposition: a component adaptation technique. Information & Software Technology 41(5), 257–273 (1999)CrossRefGoogle Scholar
  14. 14.
    Bouchachia, A., Nedjah, N.: Introduction to the special section on self-adaptive systems: Models and algorithms. ACM Transactions on Autonomous and Adaptive Systems 7(1), 13:1–13:4 (2012)Google Scholar
  15. 15.
    Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaptation. Journal of Systems and Software 74(1), 45–54 (2005)CrossRefGoogle Scholar
  16. 16.
    Bradbury, J.S., Cordy, J.R., Dingel, J., Wermelinger, M.: A survey of self-management in dynamic software architecture specifications. In: Garlan, D., Kramer, J., Wolf, A.L. (eds.) WOSS 2004, pp. 28–33. ACM (2004)Google Scholar
  17. 17.
    Bravetti, M., Giusto, C.D., Pérez, J.A., Zavattaro, G.: Adaptable processes. Logical Methods in Computer Science 8(4), 13:1–13:71 (2012)Google Scholar
  18. 18.
    Broy, M., Leuxner, C., Sitou, W., Spanfelner, B., Winter, S.: Formalizing the notion of adaptive system behavior. In: Shin, S.Y., Ossowski, S. (eds.) SAC 2009, pp. 1029–1033. ACM (2009)Google Scholar
  19. 19.
    Brun, Y., Serugendo, G.D.M., Gacek, C., Giese, H., Kienle, H.M., Litoiu, M., Müller, H.A., Pezzè, M., Shaw, M.: Engineering self-adaptive systems through feedback loops. In: Cheng, et al. (eds.) [27], pp. 48–70Google Scholar
  20. 20.
    Bruni, R., Corradini, A., Gadducci, F., Lafuente, A.L., Vandin, A.: Adaptable transition systems. In: Martí-Oliet, Palomino (eds.) [54], pp. 95–110Google Scholar
  21. 21.
    Bruni, R., Corradini, A., Gadducci, F., Lluch Lafuente, A., Vandin, A.: A conceptual framework for adaptation. In: de Lara, J., Zisman, A. (eds.) FASE 2012. LNCS, vol. 7212, pp. 240–254. Springer, Heidelberg (2012)Google Scholar
  22. 22.
    Bruni, R., Corradini, A., Gadducci, F., Lluch Lafuente, A., Vandin, A.: Modelling and analyzing adaptive self-assembly strategies with Maude. In: Durán, F. (ed.) WRLA 2012. LNCS, vol. 7571, pp. 118–138. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  23. 23.
    Bucchiarone, A., Cappiello, C., Di Nitto, E., Kazhamiakin, R., Mazza, V., Pistore, M.: Design for adaptation of service-based applications: Main issues and requirements. In: Dan, A., Gittler, F., Toumani, F. (eds.) ICSOC/ServiceWave 2009. LNCS, vol. 6275, pp. 467–476. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  24. 24.
    Bucchiarone, A., Pistore, M., Raik, H., Kazhamiakin, R.: Adaptation of service-based business processes by context-aware replanning. In: Lin, K.J., Huemer, C., Blake, M.B., Benatallah, B. (eds.) SOCA 2011, pp. 1–8. IEEE Computer Society (2011)Google Scholar
  25. 25.
    Cabri, G., Puviani, M., Zambonelli, F.: Towards a taxonomy of adaptive agent-based collaboration patterns for autonomic service ensembles. In: Smari, W.W., Fox, G. (eds.) CTS 2011, pp. 508–515. IEEE Computer Society (2011)Google Scholar
  26. 26.
    Cámara, J., Martín, J.A., Salaün, G., Cubo, J., Ouederni, M., Canal, C., Pimentel, E.: Itaca: An integrated toolbox for the automatic composition and adaptation of web services. In: ICSE 2009, pp. 627–630. IEEE Computer Society (2009)Google Scholar
  27. 27.
    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)Google Scholar
  28. 28.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: All About Maude - A High-Performance Logical Framework. LNCS, vol. 4350. Springer, Heidelberg (2007)zbMATHGoogle Scholar
  29. 29.
    Clements, P.: A survey of architecture description languages. In: IWSSD 1996, pp. 16–25. IEEE Computer Society (1996)Google Scholar
  30. 30.
    Cordy, M., Classen, A., Heymans, P., Legay, A., Schobbens, P.-Y.: Model checking adaptive software with featured transition systems. In: Cámara, J., de Lemos, R., Ghezzi, C., Lopes, A. (eds.) Assurances for Self-Adaptive Systems. LNCS, vol. 7740, pp. 1–29. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  31. 31.
    De Nicola, R., Ferrari, G.L., Pugliese, R.: Klaim: A kernel language for agents interaction and mobility. IEEE Transactions on Software Engineering 24(5), 315–330 (1998)CrossRefGoogle Scholar
  32. 32.
    De Nicola, R., Loreti, M., Pugliese, R., Tiezzi, F.: A formal approach to autonomic systems programming: The SCEL language. ACM Transactions on Autonomous and Adaptive Systems 9(2), 7:1–7:29 (2014)Google Scholar
  33. 33.
    Dowling, J., Schäfer, T., Cahill, V., Haraszti, P., Redmond, B.: Using reflection to support dynamic adaptation of system software: A case study driven evaluation. In: Cazzola, W., Houmb, S.H., Tisato, F. (eds.) Reflection and Software Engineering. LNCS, vol. 1826, pp. 169–188. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  34. 34.
    Eckhardt, J., Mühlbauer, T., Meseguer, J., Wirsing, M.: Statistical model-checking for composite actor systems. In: Martí-Oliet, Palomino (eds.) [54], pp. 143–160Google Scholar
  35. 35.
    Ehrig, H., Ermel, C., Runge, O., Bucchiarone, A., Pelliccione, P.: Formal analysis and verification of self-healing systems. In: Rosenblum, D.S., Taentzer, G. (eds.) FASE 2010. LNCS, vol. 6013, pp. 139–153. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  36. 36.
    Ghezzi, C., Pradella, M., Salvaneschi, G.: An evaluation of the adaptation capabilities in programming languages. In: Giese, H., Cheng, B.H.C. (eds.) SEAMS 2011, pp. 50–59. ACM (2011)Google Scholar
  37. 37.
    Gjondrekaj, E., Loreti, M., Pugliese, R., Tiezzi, F.: Modeling adaptation with a tuple-based coordination language. In: Ossowski, S., Lecca, P. (eds.) SAC 2012, pp. 1522–1527. ACM (2012)Google Scholar
  38. 38.
    Greenwood, P., Blair, L.: Using dynamic aspect-oriented programming to implement an autonomic system. In: DAW 2004, pp. 76–88. RIACS (2004)Google Scholar
  39. 39.
    Harvey, I., Paolo, E.A.D., Wood, R., Quinn, M., Tuci, E.: Evolutionary robotics: A new scientific tool for studying cognition. Artificial Life 11(1-2), 79–98 (2005)CrossRefGoogle Scholar
  40. 40.
    Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3), 125–151 (2008)CrossRefGoogle Scholar
  41. 41.
    Hölzl, M., Wirsing, M.: Towards a system model for ensembles. In: Agha, G., Danvy, O., Meseguer, J. (eds.) Formal Modeling: Actors, Open Systems, Biological Systems. LNCS, vol. 7000, pp. 241–261. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  42. 42.
    Horn, P.: Autonomic computing: IBM’s perspective on the state of information technology. IBM (2001)Google Scholar
  43. 43.
    IBM Corporation: An architectural blueprint for autonomic computing. IBM (2005)Google Scholar
  44. 44.
    Iftikhar, M.U., Weyns, D.: A case study on formal verification of self-adaptive behaviors in a decentralized system. In: Kokash, Ravara (eds.) [48], pp. 45–62Google Scholar
  45. 45.
    Karsai, G., Sztipanovits, J.: A model-based approach to self-adaptive software. Intelligent Systems and their Applications 14(3), 46–53 (1999)CrossRefGoogle Scholar
  46. 46.
    Khakpour, N., Jalili, S., Talcott, C., Sirjani, M., Mousavi, M.: Formal modeling of evolving self-adaptive systems. Science of Computer Programming 78(1), 3–26 (2012)CrossRefzbMATHGoogle Scholar
  47. 47.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  48. 48.
    Kokash, N., Ravara, A. (eds.): FOCLASA 2012. EPTCS, vol. 91. EPTCS (2012)Google Scholar
  49. 49.
    Kramer, J., Magee, J.: A rigorous architectural approach to adaptive software engineering. Journal of Computer Science and Technology 24(2), 183–188 (2009)CrossRefGoogle Scholar
  50. 50.
    Laddaga, R.: Self-adaptive software: BAA 98-12 proposer information pamphlet. DARPA (1997)Google Scholar
  51. 51.
    Lanese, I., Bucchiarone, A., Montesi, F.: A framework for rule-based dynamic adaptation. In: Wirsing, M., Hofmann, M., Rauschmayer, A. (eds.) TGC 2010. LNCS, vol. 6084, pp. 284–300. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  52. 52.
    Lints, T.: The essentials in defining adaptation. IEEE Aerospace and Electronic Systems Magazine 1(27), 37–41 (2012)CrossRefGoogle Scholar
  53. 53.
    Maraninchi, F., Rémond, Y.: Mode-automata: About modes and states for reactive systems. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 185–199. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  54. 54.
    Martí-Oliet, N., Palomino, M. (eds.): WADT 2012. LNCS, vol. 7841. Springer, Heidelberg (2013)zbMATHGoogle Scholar
  55. 55.
    Martín, J.A., Brogi, A., Pimentel, E.: Learning from failures: A lightweight approach to run-time behavioural adaptation. In: Arbab, F., Ölveczky, P.C. (eds.) FACS 2011. LNCS, vol. 7253, pp. 259–277. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  56. 56.
    McKinley, P.K., Sadjadi, S.M., Kasten, E.P., Cheng, B.H.C.: Composing adaptive software. IEEE Computer 37(7), 56–64 (2004)CrossRefGoogle Scholar
  57. 57.
    Merelli, E., Paoletti, N., Tesei, L.: A multi-level model for self-adaptive systems. In: Kokash, Ravara (eds.) [48], pp. 112–126Google Scholar
  58. 58.
    Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96(1), 73–155 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  59. 59.
    Meseguer, J., Talcott, C.: Semantic models for distributed object reflection. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 1–36. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  60. 60.
    Mikic-Rakic, M., Medvidovic, N.: A classification of disconnected operation techniques. In: SEAA 2006, pp. 144–151. IEEE Computer Society (2006)Google Scholar
  61. 61.
    Montesi, F., Guidi, C., Lucchi, R., Zavattaro, G.: JOLIE: a Java orchestration language interpreter engine. In: Boella, et al. (eds.) [12], pp. 19–33Google Scholar
  62. 62.
    Mühl, G., Werner, M., Jaeger, M., Herrmann, K., Parzyjegla, H.: On the definitions of self-managing and self-organizing systems. In: KiVS 2007. IEEE Computer Society (2007)Google Scholar
  63. 63.
    O’Grady, R., Groß, R., Christensen, A.L., Dorigo, M.: Self-assembly strategies in a group of autonomous mobile robots. Autonomous Robots 28(4), 439–455 (2010)CrossRefGoogle Scholar
  64. 64.
    Oreizy, P., Gorlick, M.M., Taylor, R.N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D.S., Wolf, A.L.: An architecture-based approach to self-adaptive software. Intelligent Systems and their Applications 14(3), 54–62 (1999)CrossRefGoogle Scholar
  65. 65.
    Pavlovic, D.: Towards semantics of self-adaptive software. In: Robertson, P., Shrobe, H.E., Laddaga, R. (eds.) IWSAS 2000. LNCS, vol. 1936, pp. 50–64. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  66. 66.
    Popescu, R., Staikopoulos, A., Brogi, A., Liu, P., Clarke, S.: A formalized, taxonomy-driven approach to cross-layer application adaptation. ACM Transactions on Autonomous and Adaptive Systems 7(1), 7:1–7:30 (2012)Google Scholar
  67. 67.
    Popovici, A., Alonso, G., Gross, T.R.: Just-in-time aspects: efficient dynamic weaving for Java. In: AOSD 2003, pp. 100–109. ACM (2003)Google Scholar
  68. 68.
    Pukall, M., Kästner, C., Cazzola, W., Götz, S., Grebhahn, A., Schröter, R., Saake, G.: Javadaptor - flexible runtime updates of Java applications. Software, Practice and Experience 43(2), 153–185 (2013)CrossRefGoogle Scholar
  69. 69.
    Raibulet, C.: Facets of adaptivity. In: Morrison, R., Balasubramaniam, D., Falkner, K. (eds.) ECSA 2008. LNCS, vol. 5292, pp. 342–345. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  70. 70.
    van Renesse, R., Birman, K.P., Hayden, M., Vaysburd, A., Karr, D.A.: Building adaptive systems using ensemble. Software, Practice and Experience 28(9), 963–979 (1998)CrossRefGoogle Scholar
  71. 71.
    Sagasti, F.: A conceptual and taxonomic framework for the analysis of adaptive behavior. General Systems XV, 151–160 (1970)Google Scholar
  72. 72.
    Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Transactions on Autonomous and Adaptive Systems 4(2), 14:1–14:42 (2009)Google Scholar
  73. 73.
    Salvaneschi, G., Ghezzi, C., Pradella, M.: Context-oriented programming: A programming paradigm for autonomic systems. Tech. Rep. abs/1105.0069, CoRR (2011)Google Scholar
  74. 74.
    Salvaneschi, G., Ghezzi, C., Pradella, M.: Towards language-level support for self-adaptive software. ACM Transactions on Autonomous and Adaptive Systems (to appear, 2014)Google Scholar
  75. 75.
    Sangiorgi, D.: Expressing Mobility in Process Algebras: First-Order and Higher-Order Paradigms. Ph.D. thesis, University of Edinburgh (1992)Google Scholar
  76. 76.
    Schaefer, I., Poetzsch-Heffter, A.: Using abstraction in modular verification of synchronous adaptive systems. In: Autexier, S., Merz, S., van der Torre, L.W.N., Wilhelm, R., Wolper, P. (eds.) Trustworthy Software. OASICS, vol. 3. IBFI, Schloss Dagstuhl, Germany (2006)Google Scholar
  77. 77.
    Talcott, C.L.: Coordination models based on a formal model of distributed object reflection. In: Brim, L., Linden, I. (eds.) MTCoord 2005. ENTCS, vol. 150(1), pp. 143–157. Elsevier (2006)Google Scholar
  78. 78.
    Talcott, C.L.: Policy-based coordination in PAGODA: A case study. In: Boella, et al. (eds.) [12], pp. 97–112Google Scholar
  79. 79.
    Viroli, M., Casadei, M., Montagna, S., Zambonelli, F.: Spatial coordination of pervasive services through chemical-inspired tuple spaces. ACM Transactions on Autonomous and Adaptive Systems 6(2), 14:1–14:24 (2011)Google Scholar
  80. 80.
    Wang, H., Lv, H., Feng, G.: A self-reflection model for autonomic computing systems based on π-calculus. In: Xiang, Y., Lopez, J., Wang, H., Zhou, W. (eds.) NSS 2009, pp. 310–315. IEEE Computer Society (2009)Google Scholar
  81. 81.
    Weyns, D., Malek, S., Andersson, J.: FORMS: Unifying reference model for formal specification of distributed self-adaptive systems. ACM Transactions on Autonomous and Adaptive Systems 7(1), 8:1–8:61 (2012)Google Scholar
  82. 82.
    Wirth, N.: Algorithms + Data Structures = Programs. Prentice-Hall (1976)Google Scholar
  83. 83.
    Zadeh, L.A.: On the definition of adaptivity. Proceedings of the IEEE 3(51), 469–470 (1963)CrossRefGoogle Scholar
  84. 84.
    Zhang, J., Cheng, B.H.C.: Model-based development of dynamically adaptive software. In: Osterweil, L.J., Rombach, H.D., Soffa, M.L. (eds.) ICSE 2006, pp. 371–380. ACM (2006)Google Scholar
  85. 85.
    Zhang, J., Cheng, B.H.C.: Using temporal logic to specify adaptive program semantics. Journal of Systems and Software 79(10), 1361–1369 (2006)CrossRefGoogle Scholar
  86. 86.
    Zhang, J., Goldsby, H., Cheng, B.H.C.: Modular verification of dynamically adaptive systems. In: Sullivan, K.J., Moreira, A., Schwanninger, C., Gray, J. (eds.) AOSD 2009, pp. 161–172. ACM (2009)Google Scholar
  87. 87.
    Zhao, Y., Ma, D., Li, J., Li, Z.: Model checking of adaptive programs with mode-extended linear temporal logic. In: EASe 2011, pp. 40–48. IEEE Computer Society (2011)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Roberto Bruni
    • 1
  • Andrea Corradini
    • 1
  • Fabio Gadducci
    • 1
  • Alberto Lluch Lafuente
    • 2
  • Andrea Vandin
    • 3
  1. 1.Department of Computer ScienceUniversity of PisaItaly
  2. 2.DTU ComputeTechnical University of DenmarkDenmark
  3. 3.Electronics and Computer ScienceUniversity of SouthamptonUK

Personalised recommendations