Software Engineering Processes for Self-Adaptive Systems

  • Jesper Andersson
  • Luciano Baresi
  • Nelly Bencomo
  • Rogério de Lemos
  • Alessandra Gorla
  • Paola Inverardi
  • Thomas Vogel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7475)


In this paper, we discuss how for self-adaptive systems some activities that traditionally occur at development-time are moved to run-time. Responsibilities for these activities shift from software engineers to the system itself, causing the traditional boundary between development-time and run-time to blur. As a consequence, we argue how the traditional software engineering process needs to be reconceptualized to distinguish both development-time and run-time activities, and to support designers in taking decisions on how to properly engineer such systems.

Furthermore, we identify a number of challenges related to this required reconceptualization, and we propose initial ideas based on process modeling. We use the Software and Systems Process Engineering Meta-Model (SPEM) to specify which activities are meant to be performed off-line and on-line, and also the dependencies between them. The proposed models should capture information about the costs and benefits of shifting activities to run-time, since such models should support software engineers in their decisions when they are engineering self-adaptive systems.


Software Engineer IEEE Computer Society Software Process Work Product Adaptation Logic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Reflecting on self-adaptive software systems. In: Proc. of the ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2009), pp. 38–47. IEEE Computer Society (2009)Google Scholar
  2. 2.
    Bai, X., Huang, L., Zhang, H.: On Scoping Stakeholders and Artifacts in Software Process. In: Münch, J., Yang, Y., Schäfer, W. (eds.) ICSP 2010. LNCS, vol. 6195, pp. 39–51. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  3. 3.
    Baresi, L., Ghezzi, C.: The disappearing boundary between development-time and run-time. In: Proc. of the FSE/SDP Workshop on Future of Software Engineering Research (FoSER 2010), pp. 17–22. ACM, New York (2010)CrossRefGoogle Scholar
  4. 4.
    Beck, K.: Embracing Change with Extreme Programming. IEEE Computer 32(10), 70–77 (1999)CrossRefGoogle Scholar
  5. 5.
    Bencomo, N., Sawyer, P., Blair, G., Grace, P.: Dynamically adaptive systems are product lines too: Using model-driven techniques to capture dynamic variability of adaptive systems. In: Thiel, S., Pohl, K. (eds.) Proc. of the 12th International Software Product Line Conference (SPLC 2008), Second Volume (Workshops), pp. 23–32. Lero Int. Science Centre, University of Limerick, Ireland (2008)Google Scholar
  6. 6.
    Biffl, S., Aurum, A., Boehm, B., Erdogmus, H., Grünbacher, P. (eds.): Value-Based Software Engineering. Springer (2006)Google Scholar
  7. 7.
    Blair, G., Bencomo, N., France, R.B.: Models@run.time: Guest Editors’ Introduction. IEEE Computer 42(10), 22–27 (2009)CrossRefGoogle Scholar
  8. 8.
    Boehm, B.W., Ross, R.: Theory-W Software Project Management Principles and Examples. IEEE Trans. Softw. Eng. 15(7), 902–916 (1989)CrossRefGoogle Scholar
  9. 9.
    Boehm, B.W.: A Spiral Model of Software Development and Enhancement. IEEE Computer 21(5), 61–72 (1988)CrossRefGoogle Scholar
  10. 10.
    Brenner, D., Atkinson, C., Malaka, R., Merdes, M., Paech, B., Suliman, D.: Reducing verification effort in component-based software engineering through built-in testing. Information Systems Frontiers 9(2), 151–162 (2007)CrossRefGoogle Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    Carzaniga, A., Gorla, A., Perino, N., Pezzè, M.: Automatic workarounds for web applications. In: Proc. of the 18th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2010), pp. 237–246. ACM, New York (2010)Google Scholar
  13. 13.
    Carzaniga, A., Gorla, A., Pezzè, M.: Self-healing by means of automatic workarounds. In: Proc. of the ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2008), pp. 17–24. ACM, New York (2008)Google Scholar
  14. 14.
    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.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  15. 15.
    Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley, Boston (2001)Google Scholar
  16. 16.
    Curtis, B., Kellner, M.I., Over, J.: Process modeling. Commun. ACM 35(9), 75–90 (1992)CrossRefGoogle Scholar
  17. 17.
    Gabriel, R.P., Northrop, L., Schmidt, D.C., Sullivan, K.: Ultra-large-scale systems. In: OOPSLA 2006: Companion to the 21st ACM SIGPLAN Symposium on Object-oriented Programming Systems, Languages, and Applications, pp. 632–634. ACM, New York (2006)CrossRefGoogle Scholar
  18. 18.
    Gacek, C., Giese, H., Hadar, E.: Friends or foes?: a conceptual analysis of self-adaptation and it change management. In: Proc. of the ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2008), pp. 121–128. ACM, New York (2008)Google Scholar
  19. 19.
    Gilb, T.: Evolutionary development. SIGSOFT Softw. Eng. Notes 6(2), 17 (1981)CrossRefGoogle Scholar
  20. 20.
    Gilb, T.: Evolutionary Delivery versus the waterfall model. SIGSOFT Softw. Eng. Notes 10(3), 49–61 (1985)CrossRefGoogle Scholar
  21. 21.
    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)CrossRefGoogle Scholar
  22. 22.
    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)CrossRefGoogle Scholar
  23. 23.
    Jacobson, I., Booch, G., Rumbaugh, J.: The unified process. IEEE Software 16(3), 96–102 (1999)Google Scholar
  24. 24.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. IEEE Computer 36(1), 41–50 (2003)CrossRefGoogle Scholar
  25. 25.
    Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Future of Software Engineering (FOSE 2007), pp. 259–268. IEEE Computer Society (2007)Google Scholar
  26. 26.
    Lehman, M.M.: Software’s Future: Managing Evolution. IEEE Software 15(01), 40–44 (1998)CrossRefGoogle Scholar
  27. 27.
    Lehman, M.M., Belady, L.A. (eds.): Program evolution: processes of software change. Academic Press Professional, Inc., San Diego (1985)Google Scholar
  28. 28.
    McKinley, P., Sadjadi, S.M., Kasten, E.P., Cheng, B.H.C.: Composing Adaptive Software. IEEE Computer 37(7), 56–64 (2004)CrossRefGoogle Scholar
  29. 29.
    Mens, T.: Introduction and Roadmap: History and Challenges of Software Evolution. In: Software Evolution, ch.1. Springer (2008)Google Scholar
  30. 30.
    Mens, T., Wermelinger, M., Ducasse, S., Demeyer, S., Hirschfeld, R., Jazayeri, M.: Challenges in software evolution. In: Proc. of the 8th International Workshop on Principles of Software Evolution (IWPSE 2005), pp. 13–22. IEEE Computer Society (2005)Google Scholar
  31. 31.
    Northrop, L., Feiler, P.H., Gabriel, R.P., Linger, R., Longstaff, T., Kazman, R., Klein, M., Schmidt, D.: Ultra-Large-Scale Systems: The Software Challenge of the Future. Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA (2006)Google Scholar
  32. 32.
    Object Management Group (OMG): Software & Systems Process Engineering Meta-Model Specification (SPEM), Version 2.0 (2008)Google Scholar
  33. 33.
    Osterweil, L.J.: Software processes are software too. In: Proc. of the 9th International Conference on Software Engineering (ICSE 1987), pp. 2–13. IEEE Computer Society, Los Alamitos (1987)Google Scholar
  34. 34.
    Puviani, M., Serugendo, G.D.M., Frei, R., Cabri, G.: Methodologies for self-organising systems: A spem approach. In: Proc. of the IEEE/WIC/ACM International Joint Conference on Web Intelligence and Intelligent Agent Technology (WI-IAT 2009), vol. 02, pp. 66–69. IEEE Computer Society (2009)Google Scholar
  35. 35.
    Rajlich, V.T., Bennett, K.H.: A Staged Model for the Software Life Cycle. IEEE Computer 33(7), 66–71 (2000)CrossRefGoogle Scholar
  36. 36.
    Rolland, C.: Modeling the requirements engineering process. In: Markus, A.F., Jaakkola, H., Tadahiro, K., Kangassalo, H. (eds.) Information Modelling and Knowledge Bases V: Principles and Formal Techniques: Results of the 3rd European-Japanese Seminar, Budapest, Hungary, May 31-June 3, pp. 85–96. IOS Press (1994)Google Scholar
  37. 37.
    Rougemaille, S., Migeon, F., Millan, T., Gleizes, M.-P.: Methodology Fragments Definition in SPEM for Designing Adaptive Methodology: A First Step. In: Luck, M., Gomez-Sanz, J.J. (eds.) AOSE 2008. LNCS, vol. 5386, pp. 74–85. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  38. 38.
    Royce, W.: Managing the Development of Large Software Systems: Concepts and Techniques. In: Proc. IEEE WESTCON. IEEE Computer Society Press (1970); Reprinted in Proc. of the 9th International Conference on Software Engineering (ICSE 1987), pp. 328-338. IEEE Computer SocietyGoogle Scholar
  39. 39.
    Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 1–42 (2009)CrossRefGoogle Scholar
  40. 40.
    da Silva, C.E., de Lemos, R.: Using dynamic workflows for coordinating self-adaptation of software systems. In: Proceedings of the 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2009), pp. 86–95. IEEE Computer Society, Washington, DC (2009)CrossRefGoogle Scholar
  41. 41.
    da Silva, C.E., de Lemos, R.: Dynamic plans for integration testing of self-adaptive software systems. In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2011), pp. 148–157. ACM, New York (2011)CrossRefGoogle Scholar
  42. 42.
    Welsh, K., Sawyer, P.: Understanding the Scope of Uncertainty in Dynamically Adaptive Systems. In: Wieringa, R., Persson, A. (eds.) REFSQ 2010. LNCS, vol. 6182, pp. 2–16. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  43. 43.
    Yau, S.S., Colofello, J.S., MacGregor, T.: Ripple effect analysis of software maintenance. In: Proc. of the 2nd International Conference on Computer Software and Applications (COMPSAC 1978), pp. 60–65. IEEE Computer Society (1978)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Jesper Andersson
    • 1
  • Luciano Baresi
    • 2
  • Nelly Bencomo
    • 3
  • Rogério de Lemos
    • 4
  • Alessandra Gorla
    • 5
  • Paola Inverardi
    • 6
  • Thomas Vogel
    • 7
  1. 1.Department of Computer ScienceLinnaeus UniversityVäxjöSweden
  2. 2.Dipartimento di Elettronica e InformazionePolitecnico di MilanoItaly
  3. 3.INRIA Paris, RocquencourtFrance
  4. 4.University of KentUK
  5. 5.Faculty of InformaticsUniversity of LuganoSwitzerland
  6. 6.Dipartimento di InformaticaUniversità dell’AquilaItaly
  7. 7.Hasso Plattner Institute at the University of PotsdamGermany

Personalised recommendations