Abstract
Self-adaptive systems have been introduced to manage situations where software systems operate under continuous perturbations due to the unpredicted behaviors of their clients and the occurrence of exogenous changes in the environment in which they operate. Adaptation is triggered by the run-time occurrence of an extraordinary circumstance, and it is handled by an adaptation process that involves components affected by the issue, and is able to handle the run-time modification of the structure and behavior of a running system. In this paper we report our experience gained in the last 10 years on models, techniques and applications in the field of self-adaptation. We present the various steps taken by means of a formal framework introduced to characterize the different aspects of an ensemble-based software engineering approach. We present (i) how to model dynamic ensembles using typed graph grammars, (ii) how to specialize and re-configure ensembles and, (ii) how to manage collective adaptations in an ensemble. All these aspects have been part of our research on self-adaptation and have been used to specify and deploy concrete solutions in different application domains.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
For the interested reader, the prototype is available in its entirety on a GitHub repository https://github.com/das-fbk/CollectiveAdaptationEngine.
- 2.
References
Hölzl, M., Rauschmayer, A., Wirsing, M.: Engineering of software-intensive systems: state of the art and research challenges. In: Wirsing, M., Banâtre, J.-P., Hölzl, M., Rauschmayer, A. (eds.) Software-Intensive Systems and New Computing Paradigms. LNCS, vol. 5380, pp. 1–44. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89437-7_1
Zambonelli, F., Bicocchi, N., Cabri, G., Leonardi, L., Puviani, M.: On self-adaptation, self-expression, and self-awareness in autonomic service component ensembles. In: SASOW, pp. 108–113. IEEE Computer Society (2011)
Preda, M.D., Gabbrielli, M., Giallorenzo, S., Lanese, I., Mauro, J.: Developing correct, distributed, adaptive software. Sci. Comput. Program. 97, 41–46 (2015)
Hennicker, R., Klarl, A.: Foundations for ensemble modeling–the Helena approach. In: Iida, S., Meseguer, J., Ogata, K. (eds.) Specification, Algebra, and Software. LNCS, vol. 8373, pp. 359–381. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54624-2_18
Bonnet, J., Gleizes, M.P., Kaddoum, E., Rainjonneau, S., Flandin, G.: Multi-satellite mission planning using a self-adaptive multi-agent system. In: 2015 IEEE 9th International Conference on Self-Adaptive and Self-Organizing Systems, Cambridge, MA, USA, 21–25 September 2015, pp. 11–20. IEEE Computer Society (2015)
Zambonelli, F., et al.: Self-aware pervasive service ecosystems. Procedia Comput. Sci. 7, 197–199 (2011). Proceedings of the 2nd European Future Technologies Conference and Exhibition 2011 (FET 2011)
de Lemos, R., et al.: Software engineering for self-adaptive systems: a second research roadmap. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 1–32. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35813-5_1
Krupitzer, C., Breitbach, M., Roth, F.M., VanSyckel, S., Schiele, G., Becker, C.: A survey on engineering approaches for self-adaptive systems (extended version) (2018)
Weyns, D., Andersson, J.: On the challenges of self-adaptation in systems of systems. In: Proceedings of the First International Workshop on Software Engineering for Systems-of-Systems, pp. 47–51. ACM (2013)
Jennings, N.R.: An agent-based approach for building complex software systems. Commun. ACM 44(4), 35–41 (2001)
Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)
Tinnemeier, N.A.M., Dastani, M., Meyer, J.-J.C.: Roles and norms for programming agent organizations. In: 8th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2009), Budapest, Hungary, 10–15 May 2009, vol. 1, pp. 121–128 (2009)
Andersson, J., De Lemos, R., Malek, S., Weyns, D.: Reflecting on self-adaptive software systems. In 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, pp. 38–47. IEEE (2009)
Cheng, B.H.C., et al.: Software engineering for self-adaptive systems: a research roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02161-9_1
FOCAS Partners: FoCAS manifesto - a roadmap to the future of collective adaptive systems (2016). http://www.focas.eu/focas-manifesto.pdf
Bucchiarone, A., Mezzina, C.A., Pistore, M., Raik, H., Valetto, G.: Collective adaptation in process-based systems. In: SASO 2014, pp. 151–156. IEEE Computer Society (2014)
Bures, T., et al.: A life cycle for the development of autonomic systems: the e-mobility showcase. In: 2013 IEEE 7th International Conference on Self-Adaptation and Self-Organizing Systems Workshops, pp. 71–76. IEEE (2013)
Wirsing, M., Hölzl, M., Koch, N., Mayer, P. (eds.): Software Engineering for Collective Autonomic Systems. LNCS, vol. 8998. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-16310-9
Bucchiarone, A., Dennis, G., Gnesi, S.: A graph-based design framework for global computing systems. Electr. Notes Theor. Comput. Sci. 236, 117–130 (2009)
Bruni, R., Bucchiarone, A., Gnesi, S., Melgratti, H.: Modelling dynamic software architectures using typed graph grammars. Electron. Notes Theoret. Comput. Sci. 213(1), 39–53 (2008)
ter Beek, M.H., Bucchiarone, A., Gnesi, S.: Dynamic software architecture development: towards an automated process. In: 35th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2009, Proceedings, Patras, Greece, 27–29 August 2009, pp. 105–108 (2009)
Bucchiarone, A., Marconi, A., Pistore, M., Raik, H.: A context-aware framework for dynamic composition of process fragments in the Internet of Services. J. Internet Serv. Appl. 8(1), 601–623 (2017)
Bucchiarone, A., Ehrig, H., Ermel, C., Pelliccione, P., Runge, O.: Rule-based modeling and static analysis of self-adaptive systems by graph transformation. In: Software, Services, and Systems - Essays Dedicated to Martin Wirsing on the Occasion of His Retirement from the Chair of Programming and Software Engineering, pp. 582–601 (2015)
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). https://doi.org/10.1007/978-3-642-24933-4_12
Bucchiarone, A., Marconi, A., Mezzina, C.A., Pistore, M.: A conceptual framework for collective adaptive systems. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing, SAC 2013, Coimbra, Portugal, 18–22 March 2013, pp. 1935–1936 (2013)
Bucchiarone, A., Lluch-Lafuente, A., Marconi, A., Pistore, M.: A formalisation of adaptable pervasive flows. In: 6th International Workshop, Web Services and Formal Methods, WS-FM 2009, Bologna, Italy, 4–5 September 2009, Revised Selected Papers, pp. 61–75 (2009)
Bures, T., Gerostathopoulos, I., Hnetynka, P., Keznikl, J., Kit, M., Plasil, F.: DEECO: an ensemble-based component system. In: Proceedings of the 16th International ACM SIGSOFT Symposium on Component-Based Software Engineering, pp. 81–90. ACM (2013)
Bucchiarone, A., De Sanctis, M., Marconi, A., Martinelli, A.: DeMOCAS: domain objects for service-based collective adaptive systems. In: Drira, K., et al. (eds.) ICSOC 2016. LNCS, vol. 10380, pp. 174–178. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68136-8_19
Bucchiarone, A., De Sanctis, M., Marconi, A.: ATLAS: a world-wide travel assistant exploiting service-based adaptive technologies. In: Maximilien, M., Vallecillo, A., Wang, J., Oriol, M. (eds.) ICSOC 2017. LNCS, vol. 10601, pp. 561–570. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-69035-3_41
Furelos-Blanco, D., Bucchiarone, A., Jonsson, A.: CARPooL: collective adaptation using concurrent planning. In: Proceedings of the 17th International Conference on Autonomous Agents and MultiAgent Systems, AAMAS 2018, Stockholm, Sweden, 10–15 July 2018, pp. 1815–1817. International Foundation for Autonomous Agents and Multiagent Systems Richland, SC, USA/ACM (2018)
Alkhabbas, F., De Sanctis, M., Spalazzese, R., Bucchiarone, A., Davidsson, P., Marconi, A.: Enacting emergent configurations in the iot through domain objects. In: Pahl, C., Vukovic, M., Yin, J., Yu, Q. (eds.) ICSOC 2018. LNCS, vol. 11236, pp. 279–294. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03596-9_19
Bucchiarone, A., Cicchetti, A., De Sanctis, M.: Towards a domain specific language for engineering collective adaptive systems. In: 2nd IEEE International Workshops on Foundations and Applications of Self* Systems, FAS*W@SASO/ICCAC 2017, Tucson, AZ, USA, 18–22 September 2017, pp. 19–26. IEEE Computer Society (2017)
Bucchiarone, A., Cicchetti, A., De Sanctis, M.: CAStlE: a tool for collective adaptive systems engineering. In: 2nd IEEE International Workshops on Foundations and Applications of Self* Systems, FAS*W@SASO/ICCAC 2017, Tucson, AZ, USA, 18–22 September 2017, pp. 385–386. IEEE Computer Society (2017)
Bucchiarone, A., Furelos-Blanco, D., Jonsson, A., Khandokar, F., Mourshed, M.M.: Collective adaptation through concurrent planning: the case of sustainable urban mobility. In: Proceedings of the 17th International Conference on Autonomous Agents and MultiAgent Systems, AAMAS 2018, Stockholm, Sweden, 10–15 July 2018, pp. 1880–1882. International Foundation for Autonomous Agents and Multiagent Systems Richland, SC, USA/ACM (2018)
Andrikopoulos, V., et al.: A game theoretic approach for managing multi-modal urban mobility systems. In: Ahram, T., Karwowski, W., Marek, T. (eds.) Proceedings of the 5th International Conference on Applied Human Factors and Ergonomics AHFE 2014, Krakow, Poland, 19–23 July 2014, pp. 5716–5725 (2014)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Bucchiarone, A., Mongiello, M. (2019). Ten Years of Self-adaptive Systems: From Dynamic Ensembles to Collective Adaptive Systems. In: ter Beek, M., Fantechi, A., Semini, L. (eds) From Software Engineering to Formal Methods and Tools, and Back. Lecture Notes in Computer Science(), vol 11865. Springer, Cham. https://doi.org/10.1007/978-3-030-30985-5_3
Download citation
DOI: https://doi.org/10.1007/978-3-030-30985-5_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-30984-8
Online ISBN: 978-3-030-30985-5
eBook Packages: Computer ScienceComputer Science (R0)