Design and Engineering of Adaptive Software Systems

  • Soichiro HidakaEmail author
  • Zhenjiang Hu
  • Marin Litoiu
  • Lin Liu
  • Patrick Martin
  • Xin Peng
  • Guiling Wang
  • Yijun Yu


New challenges such as big data, ultra-large-scale services, and continuously available services are driving the evolution to adaptive software systems, which are able to modify their behavior in response to their environmental and internal changes, in order to achieve their goals. Providing support in all phases of the life cycle of adaptive software systems is thus an important challenge facing the software engineering research community. This chapter highlights current research on methods and techniques for the design and engineering of adaptive software systems. The design space for self-adaptive systems is first examined, and then a goal-oriented framework for adaptive service composition is described. The human factors component of the design of adaptive systems are considered from four different points of view. We then argue that model management from database community can be adapted for effective development of self-adaptive systems. Finally, sustainability of adaptive components are shown to be achieved by making requirements future-proof.



We thank all the participants of NII Shonan Meeting Seminar No. 027 on Engineering Adaptive Software Systems (EASSy) for their valuable discussions with us to deliver this chapter. The authors of Sect. 1.2.2 receive partial financial support from the National Natural Science Foundation of China (No. 61033006).


  1. 1.
    Abramov, S.M., Glück, R.: Principles of inverse computation and the universal resolving algorithm. In: Mogensen, T.Æ. (eds.) The Essence of Computation, pp. 269–295. Springer, Berlin (2002)zbMATHCrossRefGoogle Scholar
  2. 2.
    Baresi, L., Pasquale, L.: Adaptation goals for adaptive service-oriented architectures. In: Avgeriou, P., Grundy, J., Hall, J.G., Lago, P., Mistrík, I. (eds.) Relating Software Requirements and Architectures, pp. 161–181. Springer, Berlin/Heidelberg. CrossRefGoogle Scholar
  3. 3.
    Bencomo, N., Whittle, J., Sawyer, P., Finkelstein, A., Letier, E.: Requirements reflection: requirements as runtime entities. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, ICSE ’10, vol. 2, pp. 199–202. ACM, New York (2010).
  4. 4.
    Bernstein, P.A.: Applying model management to classical meta data problems. In: First Biennial Conference on Innovative Data Systems Research (CIDR 2003), Asilomar, CA, USA, 5–8 Jan (2003)Google Scholar
  5. 5.
    Bernstein, P.A., Melnik, S.: Model management 2.0: manipulating richer mappings. In: Proceedings of the 2007 ACM SIGMOD International Conference on Management of Data, SIGMOD ’07, Beijing, pp. 1–12. ACM, New York (2007).
  6. 6.
    Bernstein, P.A., Rahm, E.: Data warehouse scenarios for model management. In: Proceedings of the 19th International Conference on Conceptual Modeling, ER’00, Salt Lake City, pp. 1–15. Springer, Berlin/Heidelberg (2000). Google Scholar
  7. 7.
    Bernstein, P.A., Halevy, A.Y., Pottinger, R.A.: A vision for management of complex models. SIGMOD Rec. 29(4), 55–63 (2000). CrossRefGoogle Scholar
  8. 8.
    Booch, G.: Software archeology and the handbook of software architecture. In: Workshop on Software Reengineering, Bad Honnef, pp. 5–6 (2008).
  9. 9.
    Brun, Y., et al.: Engineering self-adaptive systems through feedback loops. Lect. Notes Comput. Sci. 5525, 48–70 (2009)CrossRefGoogle Scholar
  10. 10.
    Brun, Y., Desmarais, R., Geihs, K., Litoiu, M., Lopes, A., Shaw, M., Smit, M.: A design space for self-adaptive systems. In: Lemos, R., Giese, H., Müller, Hausi, A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. Lecture Notes in Computer Science, vol. 7475, pp. 33–50. Springer, Berlin/Heidelberg (2013). CrossRefGoogle Scholar
  11. 11.
    Castro, J., Kolp, M., Mylopoulos, J.: Towards requirements-driven information systems engineering: the tropos project. Inf. Syst. 27(6), 365–389 (2002). zbMATHCrossRefGoogle Scholar
  12. 12.
    Chen, I.R., Bastani, F.B., Tsao, T.W.: On the reliability of ai planning software in real-time applications. IEEE Trans. Knowl. Data Eng. 7(1), 4–13 (1995). CrossRefGoogle Scholar
  13. 13.
    Chen, B., Peng, X., Yu, Y., Nuseibeh, B., Zhao, W.: Self-adaptation through incremental generative model transformations at runtime. In: 36th International Conference on Software Engineering (ICSE 2014), pp. 676–687. Hyderabad, India. ACM/IEEE (2014)Google Scholar
  14. 14.
    Cheng, B.H., Lemos, R., Giese, H., Inverardi, P., Magee, J., Andersson, J., Becker, B., Bencomo, N., Brun, Y., Cukic, B., 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, chap. Software Engineering for Self-Adaptive Systems: A Research Roadmap, pp. 1–26. Springer, Berlin/Heidelberg (2009). CrossRefGoogle Scholar
  15. 15.
    Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.): Software Engineering for Self-Adaptive Systems. Lecture Notes in Computer Science, vol. 5525. Springer, Berlin/New York (2009)Google Scholar
  16. 16.
    IBM Corporation: An architectural blueprint for autonomic computing. Autonomic Computing White Paper, 4th edn. Technical report, IBM (2006)Google Scholar
  17. 17.
    Czarnecki, K., Foster, J.N., Hu, Z., Lämmel, R., Schürr, A., Terwilliger, J.F.: Bidirectional transformations: a cross-discipline perspective. In: ICMT’09, ETH Zurich, pp. 260–283 (2009)CrossRefGoogle Scholar
  18. 18.
    Dalpiaz, F., Chopra, A.K., Giorgini, P., Mylopoulos, J.: Adaptation in open systems: giving interaction its rightful place. In: Proceedings of the 29th International Conference on Conceptual Modeling, pp. 31–45. ER’10, Vancouver. Springer, Berlin/Heidelberg (2010). CrossRefGoogle Scholar
  19. 19.
    Darwin, C.: On the Origin of Species by Means of Natural Selection. D. Appleton and Co., New York (1859)Google Scholar
  20. 20.
    de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.): Software Engineering for Self-Adaptive Systems II – International Seminar, Dagstuhl Castle, 24–29 Oct 2010 Revised Selected and Invited Papers. Lecture Notes in Computer Science, vol. 7475. Springer (2013)Google Scholar
  21. 21.
    Dorn, C., Taylor, R.N.: Coupling software architecture and human architecture for collaboration-aware system adaptation. In: Proceedings of the 2013 International Conference on Software Engineering, ICSE ’13, San Francisco, pp. 53–62. IEEE Press, Piscataway (2013).
  22. 22.
    Earman, J., Smeenk, C., Wüthrich, C.: Do the laws of physics forbid the operation of time machines? Synthese 169(1), 91–124 (2009). MathSciNetzbMATHCrossRefGoogle Scholar
  23. 23.
    Ernst, N., Borgida, A., Jureta, I.: Finding incremental solutions for evolving requirements. In: Requirements Engineering Conference (RE), Trento, 2011 19th IEEE International, pp. 15–24 (2011)Google Scholar
  24. 24.
    Fickas, S., Feather, M.S.: Requirements monitoring in dynamic environments. In: Proceedings of the Second IEEE International Symposium on Requirements Engineering, RE ’95, York, UK, p. 140. IEEE Computer Society, Washington, DC (1995).
  25. 25.
    Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bidirectional tree transformations: a linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst. 29 (2007). CrossRefGoogle Scholar
  26. 26.
    Ghanbari, H., Litoiu, M.: Replica placement in cloud through simple stochastic model predictive control. In: IEEE Cloud, Anchorage, Alaska, 27 June–2 July (2014)Google Scholar
  27. 27.
    Gotel, O.C., Finkelstein, C.W.: An analysis of the requirements traceability problem. In: Proceedings of the First International Conference on Requirements Engineering, Colorado Springs, pp. 94–101. IEEE (1994)Google Scholar
  28. 28.
    Hidaka, S., Hu, Z., Inaba, K., Kato, H., Matsuda, K., Nakano, K.: Bidirectionalizing graph transformations. In: ACM SIGPLAN International Conference on Functional Programming, Baltimore, Maryland pp. 205–216. ACM (2010)Google Scholar
  29. 29.
    Hoisl, B., Hu, Z., Hidaka, S.: Towards co-evolution in model-driven development via bidirectional higher-order transformation. In: Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development, Lisbon, Portugal, pp. 466–471. SciTePress (2014).
  30. 30.
    Jian, Y., Li, T., Liu, L., Yu, E.: Goal-oriented requirements modelling for running systems. In: 2010 First International Workshop on Requirements@Run.Time (RE@RunTime), Sydney, NSW, Australia, pp. 1–8 (2010)Google Scholar
  31. 31.
    Jureta, I.J., Faulkner, S., Thiran, P.: Dynamic requirements specification for adaptable and open service-oriented systems. In: Proceedings of the 5th International Conference on Service-Oriented Computing, ICSOC ’07, Vienna, Austria, pp. 270–282. Springer, Berlin/Heidelberg (2007). CrossRefGoogle Scholar
  32. 32.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003). MathSciNetCrossRefGoogle Scholar
  33. 33.
    Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990)CrossRefGoogle Scholar
  34. 34.
    Lehmann, G., Blumendorf, M., Trollmann, F., Albayrak, S.: Meta-modeling runtime models. In: Proceedings of the 2010 International Conference on Models in Software Engineering, Oslo, Norway, pp. 209–223. MODELS’10. Springer, Berlin/Heidelberg (2011). CrossRefGoogle Scholar
  35. 35.
    Li, J., Woodside, C.M., Chinneck, J., Litoiu, M.: Adaptive Cloud Deployment Using Persistence Strategies and Application Awareness, IEEE Trans. Cloud Comput. 5(2), pp. 277–290 (2017)CrossRefGoogle Scholar
  36. 36.
    Li, J.Z., Woodside, M., Chinneck, J., Litoiu, M.: Cloudopt: multi-goal optimization of application deployments across a cloud. In: Proceedings of the 7th International Conference on Network and Services Management, Paris, France, pp. 162–170. CNSM ’11. International Federation for Information Processing, Laxenburg (2011).
  37. 37.
    Liu, L., Liu, Q., Chi, C., Jin, Z., Yu, E.: Towards a service requirements modelling ontology based on agent knowledge and intentions. Int. J. Agent-Oriented Softw. Eng. 2(3), 324–349 (2008). CrossRefGoogle Scholar
  38. 38.
    Ma, X., Baresi, L., Ghezzi, C., Panzica La Manna, V., Lu, J.: Version-consistent dynamic reconfiguration of component-based distributed systems. In: Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, Szeged, Hungary, pp. 245–255. ESEC/FSE ’11. ACM, New York (2011).
  39. 39.
    Ma, Z., Liu, L., Yang, H., Mylopoulos, J.: Adaptive service composition based on runtime requirements monitoring. In: Proceedings of the 2011 IEEE International Conference on Web Services, ICWS ’11, Washington, DC, pp. 339–346. IEEE Computer Society, Washington, DC (2011).
  40. 40.
    Mylopoulos, J.: Stateful requirements monitoring for self-repairing socio-technical systems. In: Proceedings of the 2012 IEEE 20th International Requirements Engineering Conference (RE), RE ’12, Chicago, IL, pp. 121–130. IEEE Computer Society, Washington, DC (2012).
  41. 41.
    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 Intell. Syst. 14(3), 54–62 (1999). CrossRefGoogle Scholar
  42. 42.
    Salifu, M., Yu, Y., Nuseibeh, B.: Specifying monitoring and switching problems in context. In: 15th IEEE International Requirements Engineering Conference, RE 2007, New Delhi, 15–19 Oct 2007, pp. 211–220 (2007)Google Scholar
  43. 43.
    Salifu, M., Yu, Y., Bandara, A.K., Nuseibeh, B.: Analysing monitoring and switching problems for adaptive systems. J. Syst. Softw. 85(12), 2829–2839 (2012). CrossRefGoogle Scholar
  44. 44.
    Sasano, I., Hu, Z., Hidaka, S., Inaba, K., Kato, H., Nakano, K.: Toward bidirectionalization of ATL with GRoundTram. In: ICMT. Zurich, Switzerland LNCS, vol. 6707, pp. 138–151. Springer (2011)Google Scholar
  45. 45.
    Song, H., Huang, G., Chauvel, F., Xiong, Y., Hu, Z., Sun, Y., Mei, H.: Supporting runtime software architecture: a bidirectional-transformation-based approach. J. Syst. Softw. 84(5), 711–723 (2011). CrossRefGoogle Scholar
  46. 46.
    Stevens, P.: Bidirectional model transformations in QVT: semantic issues and open questions. Softw. Syst. Model. 9(1), 7–20 (2010)CrossRefGoogle Scholar
  47. 47.
    Tisi, M., Jouault, F., Fraternali, P., Ceri, S., Bézivin, J.: On the use of higher-order model transformations. In: Model Driven Architecture – Foundations and Applications, Enschede, The Netherlands, LNCS, vol. 5562, pp. 18–33. Springer (2009). Google Scholar
  48. 48.
    Vogel, T., Giese, H.: Model-driven engineering of self-adaptive software with eurema. ACM Trans. Auton. Adapt. Syst. 8(4), 18:1–18:33 (2014). CrossRefGoogle Scholar
  49. 49.
    Wang, Y., McIlraith, S.A., Yu, Y., Mylopoulos, J.: Monitoring and diagnosing software requirements. Autom. Softw. Eng. 16(1), 3–35 (2009). CrossRefGoogle Scholar
  50. 50.
    Wermelinger, M., Yu, Y.: Some issues in the ‘archaeology’ of software evolution. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds.) Generative and Transformational Techniques in Software Engineering III, vol. 6491, pp. 426–445. Lecture Notes in Computer Science. Springer (2011)., International Summer School, GTTSE 2009, Braga, 6–11 July 2009, Revised PapersGoogle Scholar
  51. 51.
    Wermelinger, M., Yu, Y., Lozano, A., Capiluppi, A.: Assessing architectural evolution: a case study. Empir. Softw. Eng. 16(5), 623–666 (2011). CrossRefGoogle Scholar
  52. 52.
    Whittle, J., Sawyer, P., Bencomo, N., Cheng, B.H.C., Bruel, J.M.: RELAX: a language to address uncertainty in self-adaptive systems requirement. Requir. Eng. 15(2), 177–196 (2010). CrossRefGoogle Scholar
  53. 53.
    Yu, E.S.K.: Towards modeling and reasoning support for early-phase requirements engineering. In: Proceedings of the 3rd IEEE International Symposium on Requirements Engineering, Annapolis, MD, p. 226. RE ’97. IEEE Computer Society, Washington, DC (1997).
  54. 54.
    Yu, Y., Lapouchnian, A., Liaskos, S., Mylopoulos, J., Leite, J.C.S.P.: From goals to high-variability software design. In: An, A., Matwin, S., Raś, Z.W., Ślȩzak, D. (eds.) Foundations of Intelligent Systems, Toronto, Canada, vol. 4994, pp. 1–16. Lecture Notes in Computer Science. Springer, Berlin/Heidelberg (2008).
  55. 55.
    Yu, Y., Tun, T.T., Nuseibeh, B.: Specifying and detecting meaningful changes in programs. In: ASE, Lawrence, KS, pp. 273–282 (2011)Google Scholar
  56. 56.
    Yu, Y., Wang, Y., Mylopoulos, J., Liaskos, S., Lapouchnian, A., Prado Leite, J.C.S.D.: Reverse engineering goal models from legacy code. In: Proceedings of the 13th IEEE International Conference on Requirements Engineering, Paris, France, RE ’05, pp. 363–372. IEEE Computer Society, Washington, DC (2005).
  57. 57.
    Yu, Y., Lin, Y., Hu, Z., Hidaka, S., Hiroyuki, K., Montrieux, L.: Maintaining invariant traceability through bidirectional transformations. In: ICSE, Zurich, Switzerland, pp. 540–550 (2012)Google Scholar
  58. 58.
    Zave, P., Jackson, M.: Four dark corners of requirements engineering. ACM Trans. Softw. Eng. Methodol. 6(1), 1–30 (1997). CrossRefGoogle Scholar
  59. 59.
    Zoghi, P., Shtern, M., Litoiu, M.: Designing search based adaptive systems: a quantitative approach. In: Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’14, Hyderabad, India, pp. 7–16. ACM, New York (2014).

Copyright information

© Springer Nature Singapore Pte Ltd. 2019

Authors and Affiliations

  • Soichiro Hidaka
    • 1
    Email author
  • Zhenjiang Hu
    • 2
  • Marin Litoiu
    • 3
  • Lin Liu
    • 4
  • Patrick Martin
    • 5
  • Xin Peng
    • 6
  • Guiling Wang
    • 7
  • Yijun Yu
    • 8
  1. 1.Hosei UniversityTokyoJapan
  2. 2.National Institute of InformaticsTokyoJapan
  3. 3.York UniversityTorontoCanada
  4. 4.School of SoftwareTsinghua UniversityBeijingChina
  5. 5.Queen’s UniversityKingstonCanada
  6. 6.Fudan UniversityShanghaiChina
  7. 7.Beijing Key Laboratory on Integration and Analysis of Large-Scale Stream DataNorth China University of TechnologyBeijingChina
  8. 8.The Open UniversityMilton KeynesUK

Personalised recommendations