Software Engineering for Self-Adaptive Systems: A Second Research Roadmap

  • Rogério de Lemos
  • Holger Giese
  • Hausi A. Müller
  • Mary Shaw
  • Jesper Andersson
  • Marin Litoiu
  • Bradley Schmerl
  • Gabriel Tamura
  • Norha M. Villegas
  • Thomas Vogel
  • Danny Weyns
  • Luciano Baresi
  • Basil Becker
  • Nelly Bencomo
  • Yuriy Brun
  • Bojan Cukic
  • Ron Desmarais
  • Schahram Dustdar
  • Gregor Engels
  • Kurt Geihs
  • Karl M. Göschka
  • Alessandra Gorla
  • Vincenzo Grassi
  • Paola Inverardi
  • Gabor Karsai
  • Jeff Kramer
  • Antónia Lopes
  • Jeff Magee
  • Sam Malek
  • Serge Mankovskii
  • Raffaela Mirandola
  • John Mylopoulos
  • Oscar Nierstrasz
  • Mauro Pezzè
  • Christian Prehofer
  • Wilhelm Schäfer
  • Rick Schlichting
  • Dennis B. Smith
  • João Pedro Sousa
  • Ladan Tahvildari
  • Kenny Wong
  • Jochen Wuttke
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7475)

Abstract

The goal of this roadmap paper is to summarize the state-of-the-art and identify research challenges when developing, deploying and managing self-adaptive software systems. Instead of dealing with a wide range of topics associated with the field, we focus on four essential topics of self-adaptation: design space for self-adaptive solutions, software engineering processes for self-adaptive systems, from centralized to decentralized control, and practical run-time verification & validation for self-adaptive systems. For each topic, we present an overview, suggest future directions, and focus on selected challenges. This paper complements and extends a previous roadmap on software engineering for self-adaptive systems published in 2009 covering a different set of topics, and reflecting in part on the previous paper. This roadmap is one of the many results of the Dagstuhl Seminar 10431 on Software Engineering for Self-Adaptive Systems, which took place in October 2010.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Modeling Dimensions of Self-Adaptive Software Systems. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 27–47. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  2. 2.
    Aßmann, U., Bencomo, N., Cheng, B.H.C., France, R.B.: Models@run.time (Dagstuhl Seminar 11481). Dagstuhl Reports 1(11), 91–123 (2012), http://drops.dagstuhl.de/opus/volltexte/2012/3379
  3. 3.
    Aubin, J., Bayen, A., Saint-Pierre, P.: Viability Theory: New Directions. Springer, Heidelberg (2011), http://books.google.ca/books?id=0YpZNVBXNK8CCrossRefMATHGoogle Scholar
  4. 4.
    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 (FoSER 2010), pp. 17–22. ACM, New York (2010), http://doi.acm.org/10.1145/1882362.1882367CrossRefGoogle Scholar
  5. 5.
    Bencomo, N., Blair, G., France, R., Muñoz, F., Jeanneret, C.: 4th International Workshop on Models@run.time. In: Ghosh, S. (ed.) MODELS 2009. LNCS, vol. 6002, pp. 119–123. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  6. 6.
    Blair, G., Bencomo, N., France, R.B.: Models@run.time: Guest Editors’ Introduction. IEEE Computer 42(10), 22–27 (2009)CrossRefGoogle Scholar
  7. 7.
    Bourque, P., Dupuis, R.: Guide to the Software Engineering Body of Knowledge (SWEBOK). IEEE Computer Society (2005), http://www.computer.org/portal/web/swebok/home
  8. 8.
    Brake, N., Cordy, J.R., Dancy, E., Litoiu, M., Popescu, V.: Automating discovery of software tuning parameters. In: Proceedings of the 2008 International Workshop on Software Engineering for Adaptive and Self-managing Systems, SEAMS 2008, pp. 65–72. ACM, New York (2008), http://doi.acm.org/10.1145/1370018.1370031CrossRefGoogle Scholar
  9. 9.
    Brooks, F.P.: The Design of Design: Essays from a Computer Scientist, 1st edn. Addison-Wesley Professional (2010)Google Scholar
  10. 10.
    Brun, Y., Di Marzo Serugendo, G., Gacek, C., Giese, H., Kienle, H., Litoiu, M., Müller, H., Pezzè, M., Shaw, M.: Engineering self-adaptive systems through feedback loops. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 48–70. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  11. 11.
    Brun, Y., Medvidovic, N.: An architectural style for solving computationally intensive problems on large networks. In: Proceedings of Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2007), Minneapolis, MN, USA (May 2007)Google Scholar
  12. 12.
    Buckley, J., Mens, T., Zenger, M., Rashid, A., Kniesel, G.: Towards a taxonomy of software change. Journal of Software Maintenance and Evolution: Research and Practice 17(5), 309–332 (2005), http://dx.doi.org/10.1002/smr.319CrossRefGoogle Scholar
  13. 13.
    Carzaniga, A., Gorla, A., Perino, N., Pezzè, M.: Automatic workarounds for web applications. In: FSE 2010: Proceedings of the 2010 Foundations of Software Engineering Conference, pp. 237–246. ACM, New York (2010)Google Scholar
  14. 14.
    Carzaniga, A., Gorla, A., Pezzè, M.: Self-healing by means of automatic workarounds. In: SEAMS 2008: Proceedings of the 2008 International Workshop on Software Engineering for Adaptive and Self-Managing Systems, pp. 17–24. ACM, New York (2008)CrossRefGoogle Scholar
  15. 15.
    Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J., Andersson, J., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Di Marzo Serugendo, G., Dustdar, S., Finkelstein, A., Gacek, C., Geihs, K., Grassi, V., Karsai, G., Kienle, H.M., Kramer, J., Litoiu, M., Malek, S., Mirandola, R., Müller, H.A., Park, S., Shaw, M., Tichy, M., Tivoli, M., Weyns, D., Whittle, J.: Software Engineering for Self-Adaptive Systems: A Research Roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  16. 16.
    Dobson, S., Sterritt, R., Nixon, P., Hinchey, M.: Fulfilling the vision of autonomic computing. Computer 43(1), 35–41 (2010)CrossRefGoogle Scholar
  17. 17.
    Dobson, S., Denazis, S., Fernández, A., Gaïti, D., Gelenbe, E., Massacci, F., Nixon, P., Saffre, F., Schmidt, N., Zambonelli, F.: A survey of autonomic communications. ACM Transactions on Autonomous and Adaptive Systems (TAAS) 1, 223–259 (2006)CrossRefGoogle Scholar
  18. 18.
    Elkhodary, A., Esfahani, N., Malek, S.: FUSION: A framework for engineering self-tuning self-adaptive software systems. In: Proceedings of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2010), Santa Fe, NM, USA, pp. 7–16 (2010)Google Scholar
  19. 19.
    Garlan, D., Cheng, S.W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Computer 37, 46–54 (2004)CrossRefGoogle Scholar
  20. 20.
    Gat, E.: Autonomy software verification and validation might not be as hard as it seems. In: Proceedings 2004 IEEE Aerospace Conference, pp. 3123–3128 (2004)Google Scholar
  21. 21.
    Georgiadis, I., Magee, J., Kramer, J.: Self-Organising Software Architectures for Distributed Systems. In: 1st Workshop on Self-Healing Systems. ACM, New York (2002)Google Scholar
  22. 22.
    Ghanbari, H., Litoiu, M.: Identifying implicitly declared self-tuning behavior through dynamic analysis. In: International Workshop on Software Engineering for Adaptive and Self-Managing Systems, pp. 48–57 (2009)Google Scholar
  23. 23.
    Goldsby, H.J., Cheng, B.H.C.: Automatically Generating Behavioral Models of Adaptive Systems to Address Uncertainty. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 568–583. Springer, Heidelberg (2008), http://dx.doi.org/10.1007/978-3-540-87875-9_40CrossRefGoogle Scholar
  24. 24.
    González, A., Piel, E., Gross, H.G.: A Model for the Measurement of the Runtime Testability of Component-Based Systems. In: Proceedings of 2009 International Conference on Software Testing Verification and Validation Workshops, pp. 19–28. IEEE (2009), http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=4976367
  25. 25.
    IBM: An architectural blueprint for autonomic computing. Tech. rep. IBM (January 2006)Google Scholar
  26. 26.
    IEEE: Industry implementation of international standard ISO/IEC 12207:95, standard for information technology-software life cycle processes. Tech. rep. IEEE (1996)Google Scholar
  27. 27.
    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), http://dx.doi.org/10.1007/978-3-540-75336-0_5CrossRefGoogle Scholar
  28. 28.
    Inverardi, P., Tivoli, M.: The Future of Software: Adaptation and Dependability. In: De Lucia, A., Ferrucci, F. (eds.) ISSSE 2006-2008. LNCS, vol. 5413, pp. 1–31. Springer, Heidelberg (2009), http://www.springerlink.com/content/g624t1466m9v5647/CrossRefGoogle Scholar
  29. 29.
    Ionescu, D., Solomon, B., Litoiu, M., Iszlai, G.: Observability and controllability of autonomic computing systems for composed web services. In: 6th IEEE International Symposium on Applied Computational Intelligence and Informatics, SACI 2011 (2011)Google Scholar
  30. 30.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  31. 31.
    King, T.M., Ramirez, A.E., Cruz, R., Clarke, P.J.: An Integrated Self-Testing Framework for Autonomic Computing Systems. Journal of Computers 2(9), 37–49 (2007), http://academypublisher.com/ojs/index.php/jcp/article/view/361CrossRefGoogle Scholar
  32. 32.
    Kitchenham, B.A., Travassos, G.H., von Mayrhauser, A., Niessink, F., Schneidewind, N.F., Singer, J., Takada, S., Vehvilainen, R., Yang, H.: Towards an ontology of software maintenance. Journal of Software Maintenance: Research and Practice 11(6), 365–389 (1999),http://dx.doi.org/10.1002/(SICI)1096-908X(199911/12)11:6<365::AID-SMR200>3.0.CO;2-WGoogle Scholar
  33. 33.
    Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: FOSE 2007: 2007 Future of Software Engineering, pp. 259–268. IEEE Computer Society, Washington, DC (2007)Google Scholar
  34. 34.
    Larman, C., Basili, V.R.: Iterative and Incremental Development: A Brief History. IEEE Computer 36(6), 47–56 (2003), http://doi.ieeecomputersociety.org/10.1109/MC.2003.1204375CrossRefGoogle Scholar
  35. 35.
    Lehman, M.M.: Software’s Future: Managing Evolution. IEEE Software 15(01), 40–44 (1998)CrossRefGoogle Scholar
  36. 36.
    Lehman, M.M., Belady, L.A. (eds.): Program evolution: processes of software change. Academic Press Professional, Inc., San Diego (1985)Google Scholar
  37. 37.
    Leymann, F.: Combining Web Services and the Grid: Towards Adaptive Enterprise Applications. In: Castro, J., Teniente, E. (eds.) First International Workshop on Adaptive and Self-Managing Enterprise Applications (ASMEA 2005) - CAiSE Workshop, pp. 9–21. FEUP Edi cões (June 2005), http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2005-123&engl=1
  38. 38.
    Malek, S., Edwards, G., Brun, Y., Tajalli, H., Garcia, J., Krka, I., Medvidovic, N., Mikic-Rakic, M., Sukhatme, G.: An architecture-driven software mobility framework. Journal of Systems and Software 83(6), 972–989 (2010)CrossRefGoogle Scholar
  39. 39.
    Malek, S., Mikic-Rakic, M., Medvidovíc, N.: A Decentralized Redeployment Algorithm for Improving the Availability of Distributed Systems. In: Dearle, A., Savani, R. (eds.) CD 2005. LNCS, vol. 3798, pp. 99–114. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  40. 40.
    Mens, T.: Introduction and Roadmap: History and Challenges of Software Evolution. In: Software Evolution, ch.1. Springer (2008), http://www.springerlink.com/content/978-3-540-76439-7
  41. 41.
    Müller, H.A., Pezzè, M., Shaw, M.: Visibility of control in adaptive systems. In: Proceedings of Second International Workshop on Ultra-Large-Scale Software-Intensive Systems (ULSSIS 2008), pp. 23–27. ACM/IEEE (2008)Google Scholar
  42. 42.
    Murray, R.M., Ȧström, K.J., Boyd, S.P., Brockett, R.W., Stein, G.: Future Directions in Control in an Information Rich World. IEEE Control Systems 23, 20–33 (2003)CrossRefGoogle Scholar
  43. 43.
    Object Management Group (OMG): Software & Systems Process Engineering Meta-Model Specification (SPEM), Version 2.0 (2008)Google Scholar
  44. 44.
    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. IEEE Intelligent Systems 14, 54–62 (1999), http://dx.doi.org/10.1109/5254.769885CrossRefGoogle Scholar
  45. 45.
    Osterweil, L.J.: Software processes are software too. In: Proceedings of the 9th International Conference on Software Engineering (ICSE 1987), pp. 2–13. IEEE Computer Society Press, Los Alamitos (1987), http://portal.acm.org/citation.cfm?id=41765.41766Google Scholar
  46. 46.
    Sawyer, P., Bencomo, N., Whittle, J., Letier, E., Finkelstein, A.: Requirements-Aware Systems. A Research Agenda for RE For Self-Adaptive Systems. In: 18th International Requirements Engineering Conference (RE 2010), pp. 95–103. IEEE (2010)Google Scholar
  47. 47.
    Seborg, D.E., Edgar, T.F., Mellichamp, D.A., Doyle III, F.J.: Process Dynamics and Control, 3rd edn. John Wiley & Sons (1989)Google Scholar
  48. 48.
    Shaw, M.: Beyond objects. ACM SIGSOFT Software Engineering Notes (SEN) 20(1), 27–38 (1995)CrossRefGoogle Scholar
  49. 49.
    Shaw, M.: The role of design spaces in software design (2011) (submitted for publication)Google Scholar
  50. 50.
    Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International Conference on Software Engineering (ICSE 1976), pp. 492–497. IEEE Computer Society Press (1976), http://portal.acm.org/citation.cfm?id=800253.807723
  51. 51.
    Tanenbaum, A.S., van Steen, M.: Distributed Systems: Principles and Paradigms, 2nd edn. Prentice-Hall, Inc., Upper Saddle River (2006)MATHGoogle Scholar
  52. 52.
    Villegas, N.M., Müller, H.A.: Context-driven Adaptive Monitoring for Supporting SOA Governance. In: 4th International Workshop on a Research Agenda for Maintenance and Evolution of Service-Oriented Systems (MESOA 2010). CMU/SEI-2011-SR-008, Pittsburgh: Carnegie Mellon University (2011), http://www.sei.cmu.edu/library/abstracts/reports/11sr008.cfm
  53. 53.
    Villegas, N.M., Müller, H.A., Tamura, G., Duchien, L., Casallas, R.: A Framework for Evaluating Quality-driven Self-Adaptive Software Systems. In: Proceedings 6th International Symposium on Software Engineering for Adaptive and Self-managing Systems (SEAMS 2011), pp. 80–89. ACM, New York (2011), http://doi.acm.org/10.1145/1988008.1988020CrossRefGoogle Scholar
  54. 54.
    Villegas, N.M., Müller, H.A., Tamura, G.: Optimizing Run-Time SOA Governance through Context-Driven SLAs and Dynamic Monitoring. In: 2011 IEEE International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems (MESOCA 2011), pp. 1–10. IEEE (2011)Google Scholar
  55. 55.
    Villegas, N.M., Müller, H.A., Muñoz, J.C., Lau, A., Ng, J., Brealey, C.: A Dynamic Context Management Infrastructure for Supporting User-driven Web Integration in the Personal Web. In: 2011 Conference of the Center for Advanced Studies on Collaborative Research (CASCON 2011), pp. 200–214. IBM Corp., Markham (2011), http://dl.acm.org/citation.cfm?id=2093889.2093913Google Scholar
  56. 56.
    Vogel, T., Giese, H.: Adaptation and Abstract Runtime Models. In: Proceedings of the 5th ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2010), pp. 39–48. ACM (2010), http://portal.acm.org/citation.cfm?id=1808984.1808989
  57. 57.
    Vogel, T., Neumann, S., Hildebrandt, S., Giese, H., Becker, B.: Incremental Model Synchronization for Efficient Run-Time Monitoring. In: Ghosh, S. (ed.) MODELS 2009. LNCS, vol. 6002, pp. 124–139. Springer, Heidelberg (2010), http://www.springerlink.com/content/1518022k168n5055/CrossRefGoogle Scholar
  58. 58.
    Vromant, P., Weyns, D., Malek, S., Andersson, J.: On interacting control loops in self-adaptive systems. In: Proceedings of Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2011), Honolulu, Hawaii (2011)Google Scholar
  59. 59.
    Weyns, D., Malek, S., Andersson, J.: On decentralized self-adaptation: lessons from the trenches and challenges for the future. In: Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2010, pp. 84–93. ACM, New York (2010), http://doi.acm.org/10.1145/1808984.1808994CrossRefGoogle Scholar
  60. 60.
    Dahm, W.J.A.: Technology Horizons a Vision for Air Force Science & Technology During 2010-2030. Tech. rep., U.S. Air Force (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Rogério de Lemos
  • Holger Giese
  • Hausi A. Müller
  • Mary Shaw
  • Jesper Andersson
  • Marin Litoiu
  • Bradley Schmerl
  • Gabriel Tamura
  • Norha M. Villegas
  • Thomas Vogel
  • Danny Weyns
  • Luciano Baresi
  • Basil Becker
  • Nelly Bencomo
  • Yuriy Brun
  • Bojan Cukic
  • Ron Desmarais
  • Schahram Dustdar
  • Gregor Engels
  • Kurt Geihs
  • Karl M. Göschka
  • Alessandra Gorla
  • Vincenzo Grassi
  • Paola Inverardi
  • Gabor Karsai
  • Jeff Kramer
  • Antónia Lopes
  • Jeff Magee
  • Sam Malek
  • Serge Mankovskii
  • Raffaela Mirandola
  • John Mylopoulos
  • Oscar Nierstrasz
  • Mauro Pezzè
  • Christian Prehofer
  • Wilhelm Schäfer
  • Rick Schlichting
  • Dennis B. Smith
  • João Pedro Sousa
  • Ladan Tahvildari
  • Kenny Wong
  • Jochen Wuttke

There are no affiliations available

Personalised recommendations