Engineering Self-adaptive Systems: From Experiences with MUSA to a General Design Process

  • Massimo Cossentino
  • Luca SabatucciEmail author
  • Valeria Seidita
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11375)


Designing and developing complex self-adaptive systems require design processes having specific features fitting and representing the complexity of these systems. Changing requirements, users’ needs and dynamic environment have to be taken in consideration, also considering that, due of the self-adaptive nature of the system, the solution is not fixed at design time but it is a run-time outcome. Traditional design approach and life cycles are not suitable to design software systems where requirements continuously change at runtime.

A new design process paradigm is needed to design such systems. In this Chapter, we present a retrospective analysis based on three projects developed in the last five years with the middleware MUSA in order to identify specific features of the design process for supporting continuous change and self-adaptation. The result is a general approach allowing to reduce the gap between design time and run-time.


Adaptive management Continuous change Design process 


  1. 1.
    Andersson, J., et al.: Software engineering processes for self-adaptive systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 51–75. Springer, Heidelberg (2013). Scholar
  2. 2.
    Aßmann, U., Götz, S., Jézéquel, J.-M., Morin, B., Trapp, M.: A reference architecture and roadmap for Models@run.time systems. In: Bencomo, N., France, R., Cheng, B.H.C., Aßmann, U. (eds.) Models@run.time. LNCS, vol. 8378, pp. 1–18. Springer, Cham (2014). Scholar
  3. 3.
    Baresi, L., Ghezzi, C.: The disappearing boundary between development-time and run-time. In: Proceedings of the FSE/SDP workshop on Future of software engineering research, pp. 17–22. ACM (2010)Google Scholar
  4. 4.
    Baresi, L., Guinea, S.: A3: self-adaptation capabilities through groups and coordination. In: Proceedings of the 4th India Software Engineering Conference, pp. 11–20. ACM (2011)Google Scholar
  5. 5.
    Baresi, L., Guinea, S., Shahzada, A.: SeSaMe: towards a semantic self adaptive middleware for smart spaces. In: Cossentino, M., El Fallah Seghrouchni, A., Winikoff, M. (eds.) EMAS 2013. LNCS (LNAI), vol. 8245, pp. 1–18. Springer, Heidelberg (2013). Scholar
  6. 6.
    Blair, G., Bencomo, N., France, R.B.: Models@ run.time. Computer 42(10), 22–27 (2009)CrossRefGoogle Scholar
  7. 7.
    Bonjean, N., Gleizes, M.-P., Chella, A., Migeon, F., Cossentino, M., Seidita, V.: Metamodel-based metrics for agent-oriented methodologies. In: Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems-Volume 2, pp. 1065–1072. International Foundation for Autonomous Agents and Multiagent Systems (2012)Google Scholar
  8. 8.
    Braberman, V., D’Ippolito, N., Kramer, J., Sykes, D., Uchitel, S.: Morph: a reference architecture for configuration and behaviour self-adaptation. In: Proceedings of the 1st International Workshop on Control Theory for Software Engineering, pp. 9–16. ACM (2015)Google Scholar
  9. 9.
    Buckley, J., Mens, T., Zenger, M., Rashid, A., Kniesel, G.: Towards a taxonomy of software change. J. Softw. Maint. Evol. Res. Pract. 17(5), 309–332 (2005)CrossRefGoogle Scholar
  10. 10.
    Calinescu, R., Gerasimou, S., Banks, A.: Self-adaptive software with decentralised control loops. In: Egyed, A., Schaefer, I. (eds.) FASE 2015. LNCS, vol. 9033, pp. 235–251. Springer, Heidelberg (2015). Scholar
  11. 11.
    Calinescu, R., Weyns, D., Gerasimou, S., Iftikhar, M.U., Habli, I., Kelly, T.: Engineering trustworthy self-adaptive software with dynamic assurance cases. IEEE Trans. Softw. Eng. 44(11), 1039–1069 (2018)CrossRefGoogle Scholar
  12. 12.
    Chella, A., Cossentino, M., Sabatucci, L., Seidita, V.: Agile passi: an agile process for designing agents. Int. J. Comput. Syst. Sci. Eng. 21(2), 133–144 (2006)Google Scholar
  13. 13.
    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). Scholar
  14. 14.
    Cheng, S.-W.: Rainbow: cost-effective software architecture-based self-adaptation. ProQuest (2008)Google Scholar
  15. 15.
    Cossentino, M.: From requirements to code with the passi methodology. Agent-Oriented Methodol. 3690, 79–106 (2005)CrossRefGoogle Scholar
  16. 16.
    Cossentino, M., Gaud, N., Hilaire, V., Galland, S., Koukam, A.: ASPECS: an agent-oriented software process for engineering complex systems. Auton. Agents Multi-Agent Syst. 20(2), 260–304 (2010)CrossRefGoogle Scholar
  17. 17.
    Cossentino, M., Sabatucci, L., Seidita, V.: Towards an approach for engineering complex systems: agents and agility. In: Proceedings of the 18th Workshop on “From Objects to Agents”, 1867, pp. 1–6 (2017)Google Scholar
  18. 18.
    Curbera, F.: Component contracts in service-oriented architectures. Computer 40(11), 74–80 (2007)CrossRefGoogle Scholar
  19. 19.
    De La Iglesia, D.G., Calderón, J.F., Weyns, D., Milrad, M., Nussbaum, M.: A self-adaptive multi-agent system approach for collaborative mobile learning. IEEE Trans. Learn. Technol. 8(2), 158–172 (2015)CrossRefGoogle Scholar
  20. 20.
    Fernandez-Marquez, J.L., Serugendo, G.D.M., Montagna, S.: BIO-CORE: bio-inspired self-organising mechanisms core. In: Hart, E., Timmis, J., Mitchell, P., Nakamo, T., Dabiri, F. (eds.) BIONETICS 2011. LNICST, vol. 103, pp. 59–72. Springer, Heidelberg (2012). Scholar
  21. 21.
    Gelfond, M., Lifschitz, V.: Action languages. Comput. Inf. Sci. 3(16), 1–41 (1998)Google Scholar
  22. 22.
    Haesevoets, R., Weyns, D., Holvoet, T.: Architecture-centric support for adaptive service collaborations. ACM Trans. Softw. Eng. Methodol. (TOSEM) 23(1), 2 (2014) CrossRefGoogle Scholar
  23. 23.
    Inverardi, P.: Software of the future is the future of software? In: Montanari, U., Sannella, D., Bruni, R. (eds.) TGC 2006. LNCS, vol. 4661, pp. 69–85. Springer, Heidelberg (2007). Scholar
  24. 24.
    Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: 2007 Future of Software Engineering, FOSE 2007, pp. 259–268. IEEE (2007)Google Scholar
  25. 25.
    Malek, S., Mikic-Rakic, M., Medvidovic, N.: A decentralized redeployment algorithm for improving the availability of distributed systems. In: Dearle, A., Eisenbach, S. (eds.) CD 2005. LNCS, vol. 3798, pp. 99–114. Springer, Heidelberg (2005). Scholar
  26. 26.
    Namiot, D., Sneps-Sneppe, M.: On micro-services architecture. Int. J. Open Inf. Technol. 2(9), 24–27 (2014)Google Scholar
  27. 27.
    Omicini, A., Ricci, A., Viroli, M.: Artifacts in the A&A meta-model for multi-agent systems. Auton. Agents Multi-Agent Syst. 17(3), 432–456 (2008)CrossRefGoogle Scholar
  28. 28.
    Ribino, P., Cossentino, M., Lodato, C., Lopes, S., Sabatucci, L., Seidita, V.: Ontology and goal model in designing bdi multi-agent systems. WOA@ AI* IA, 1099, 66–72 (2013)Google Scholar
  29. 29.
    Rouvoy, R., et al.: MUSIC: middleware support for self-adaptation in ubiquitous and service-oriented environments. 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. 164–182. Springer, Heidelberg (2009). Scholar
  30. 30.
    Rushby, J.: A safety-case approach for certifying adaptive systems. In: AIAA Infotech@ Aerospace Conference and AIAA Unmanned... Unlimited Conference, page 1992 (2009)Google Scholar
  31. 31.
    Sabatucci, L., Cossentino, M.: From means-end analysis to proactive means-end reasoning. In: Proceedings of 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, 18–19 May 2015Google Scholar
  32. 32.
    Sabatucci, L., Cossentino, M., Lodato, C., Lopes, S., Seidita, V.: A possible approach for implementing self-awareness in JASON. EUMAS 13, 68–81 (2013)Google Scholar
  33. 33.
    Sabatucci, L., Lodato, C., Lopes, S., Cossentino, M.: Towards self-adaptation and evolution in business process. In: AIBP@ AI* IA, pp. 1–10. Citeseer (2013)Google Scholar
  34. 34.
    Sabatucci, L., Lodato, C., Lopes, S., Cossentino, M.: Highly customizable service composition and orchestration. In: Dustdar, S., Leymann, F., Villari, M. (eds.) ESOCC 2015. LNCS, vol. 9306, pp. 156–170. Springer, Cham (2015). Scholar
  35. 35.
    Sabatucci, L., Lopes, S., Cossentino, M.: A goal-oriented approach for self-configuring mashup of cloud applications. In: 2015 International Conference on Cloud and Autonomic Computing (ICCAC) (2016)Google Scholar
  36. 36.
    Sabatucci, L., Lopes, S., Cossentino, M.: Self-configuring cloud application mashup with goals and capabilities. Clust. Comput. 20(3), 2047–2063 (2017)CrossRefGoogle Scholar
  37. 37.
    Sabatucci, L., Ribino, P., Lodato, C., Lopes, S., Cossentino, M.: GoalSPEC: a goal specification language supporting adaptivity and evolution. In: Cossentino, M., El Fallah Seghrouchni, A., Winikoff, M. (eds.) EMAS 2013. LNCS (LNAI), vol. 8245, pp. 235–254. Springer, Heidelberg (2013). Scholar
  38. 38.
    Schmidt, D.C.: Model-driven engineering. IEEE Comput. Soc. 39(2), 25 (2006)CrossRefGoogle Scholar
  39. 39.
    Sommerville, I., et al.:: Software engineering. Addison-Wesley, Reading (2007)zbMATHGoogle Scholar
  40. 40.
    Weyns, D., Georgeff, M.: Self-adaptation using multiagent systems. IEEE Softw. 27(1), 86–91 (2010)CrossRefGoogle Scholar
  41. 41.
    Weyns, D., Haesevoets, R., Helleboogh, A., Holvoet, T., Joosen, W.: The macodo middleware for context-driven dynamic agent organizations. ACM Trans. Auton. Adapt. Syst. (TAAS) 5(1), 3 (2010)Google Scholar
  42. 42.
    Weyns, D., et al.: On patterns for decentralized control in self-adaptive systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 76–107. Springer, Heidelberg (2013). Scholar
  43. 43.
    Zambonelli, F., Castelli, G., Mamei, M., Rosi, A.: Programming self-organizing pervasive applications with SAPERE. In: Zavoral, F., Jung, J., Badica, C. (eds.) Intelligent Distributed Computing VII. Studies in Computational Intelligence, vol. 511. Springer, Cham (2014). Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Massimo Cossentino
    • 1
  • Luca Sabatucci
    • 1
    Email author
  • Valeria Seidita
    • 1
    • 2
  1. 1.Consiglio Nazionale delle RicercheIstituto di Calcolo e Reti ad Alte PrestazioniPalermoItaly
  2. 2.Dip. dell’Innovazione Industriale e DigitaleUniversità degli Studi di PalermoPalermoItaly

Personalised recommendations