Skip to main content

Design and Engineering of Adaptive Software Systems

  • Chapter
  • First Online:
Engineering Adaptive Software Systems

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    This chapter was edited by Soichiro Hidaka and Patrick Martin.

  2. 2.

    Contributed by Marin Litoiu.

  3. 3.

    http://www.savinetwork.ca

  4. 4.

    Contributed by Lin Liu and Guiling Wang.

  5. 5.

    Contributed by Xin Peng.

  6. 6.

    (Contributed by Soichiro Hidaka, Zhenjiang Hu, and Patrick Martin).

  7. 7.

    (Contributed by Yijun Yu).

References

  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)

    Chapter  MATH  Google Scholar 

  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. http://link.springer.com/chapter/10.1007/978-3-642-21001-3_10

    Chapter  Google Scholar 

  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). https://doi.org/10.1145/1810295.1810329

  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. 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). https://doi.org/10.1145/1247480.1247482

  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). http://dl.acm.org/citation.cfm?id=1765112.1765114

    Google Scholar 

  7. Bernstein, P.A., Halevy, A.Y., Pottinger, R.A.: A vision for management of complex models. SIGMOD Rec. 29(4), 55–63 (2000). https://doi.org/10.1145/369275.369289

    Article  Google Scholar 

  8. Booch, G.: Software archeology and the handbook of software architecture. In: Workshop on Software Reengineering, Bad Honnef, pp. 5–6 (2008). http://dblp.uni-trier.de/rec/bibtex/conf/wsr/Booch08

  9. Brun, Y., et al.: Engineering self-adaptive systems through feedback loops. Lect. Notes Comput. Sci. 5525, 48–70 (2009)

    Article  Google Scholar 

  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). https://doi.org/10.1007/978-3-642-35813-5_2

    Chapter  Google Scholar 

  11. Castro, J., Kolp, M., Mylopoulos, J.: Towards requirements-driven information systems engineering: the tropos project. Inf. Syst. 27(6), 365–389 (2002). https://doi.org/10.1016/S0306-4379(02)00012-1

    Article  MATH  Google Scholar 

  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). https://doi.org/10.1109/69.368522

    Article  Google Scholar 

  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. 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). https://doi.org/10.1007/978-3-642-02161-9_1

    Chapter  Google Scholar 

  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. IBM Corporation: An architectural blueprint for autonomic computing. Autonomic Computing White Paper, 4th edn. Technical report, IBM (2006)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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). http://dl.acm.org/citation.cfm?id=1929757.1929761

    Chapter  Google Scholar 

  19. Darwin, C.: On the Origin of Species by Means of Natural Selection. D. Appleton and Co., New York (1859)

    Google Scholar 

  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. 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). http://dl.acm.org/citation.cfm?id=2486788.2486796

  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). http://link.springer.com/article/10.1007/s11229-008-9338-2

    Article  MathSciNet  MATH  Google Scholar 

  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. 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). http://dl.acm.org/citation.cfm?id=827254.827800

  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). https://doi.org/10.1145/1232420.1232424

    Article  Google Scholar 

  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. 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. 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. 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). http://nm.wu-wien.ac.at/nm/file/MODELSWARD2014-PP%2epdf?m=download

  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. 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). https://doi.org/10.1007/978-3-540-74974-5_22

    Chapter  Google Scholar 

  32. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003). https://doi.org/10.1109/MC.2003.1160055

    Article  MathSciNet  Google Scholar 

  33. Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990)

    Article  Google Scholar 

  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). http://dl.acm.org/citation.cfm?id=2008503.2008532

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  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). http://dl.acm.org/citation.cfm?id=2147671.2147697

  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). https://doi.org/10.1504/IJAOSE.2008.019422

    Article  Google Scholar 

  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). https://doi.org/10.1145/2025113.2025148

  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). https://doi.org/10.1109/ICWS.2011.83

  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). https://doi.org/10.1109/RE.2012.6345796

  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). https://doi.org/10.1109/5254.769885

    Article  Google Scholar 

  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. 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). http://www.sciencedirect.com/science/article/pii/S0164121212002257

    Article  Google Scholar 

  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. 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). https://doi.org/10.1016/j.jss.2010.12.009

    Article  Google Scholar 

  46. Stevens, P.: Bidirectional model transformations in QVT: semantic issues and open questions. Softw. Syst. Model. 9(1), 7–20 (2010)

    Article  Google Scholar 

  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). https://doi.org/10.1007/978-3-642-02674-4_3

    Google Scholar 

  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). https://doi.org/10.1145/2555612

    Article  Google Scholar 

  49. Wang, Y., McIlraith, S.A., Yu, Y., Mylopoulos, J.: Monitoring and diagnosing software requirements. Autom. Softw. Eng. 16(1), 3–35 (2009). http://link.springer.com/article/10.1007/s10515-008-0042-8

    Article  Google Scholar 

  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). http://oro.open.ac.uk/22105/, International Summer School, GTTSE 2009, Braga, 6–11 July 2009, Revised Papers

    Google Scholar 

  51. Wermelinger, M., Yu, Y., Lozano, A., Capiluppi, A.: Assessing architectural evolution: a case study. Empir. Softw. Eng. 16(5), 623–666 (2011). http://oro.open.ac.uk/28753/

    Article  Google Scholar 

  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). http://link.springer.com/article/10.1007/s00766-010-0101-0

    Article  Google Scholar 

  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). http://dl.acm.org/citation.cfm?id=827255.827807

  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). http://link.springer.com/chapter/10.1007/978-3-540-68123-6_1

  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. 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). https://doi.org/10.1109/RE.2005.61

  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. Zave, P., Jackson, M.: Four dark corners of requirements engineering. ACM Trans. Softw. Eng. Methodol. 6(1), 1–30 (1997). https://doi.org/10.1145/237432.237434

    Article  Google Scholar 

  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). https://doi.org/10.1145/2593929.2593935

Download references

Acknowledgements

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).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Soichiro Hidaka .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Singapore Pte Ltd.

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Hidaka, S. et al. (2019). Design and Engineering of Adaptive Software Systems. In: Yu, Y., et al. Engineering Adaptive Software Systems. Springer, Singapore. https://doi.org/10.1007/978-981-13-2185-6_1

Download citation

  • DOI: https://doi.org/10.1007/978-981-13-2185-6_1

  • Published:

  • Publisher Name: Springer, Singapore

  • Print ISBN: 978-981-13-2184-9

  • Online ISBN: 978-981-13-2185-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics