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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
This chapter was edited by Soichiro Hidaka and Patrick Martin.
- 2.
Contributed by Marin Litoiu.
- 3.
- 4.
Contributed by Lin Liu and Guiling Wang.
- 5.
Contributed by Xin Peng.
- 6.
(Contributed by Soichiro Hidaka, Zhenjiang Hu, and Patrick Martin).
- 7.
(Contributed by Yijun Yu).
References
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)
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
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
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)
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
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
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
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
Brun, Y., et al.: Engineering self-adaptive systems through feedback loops. Lect. Notes Comput. Sci. 5525, 48–70 (2009)
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
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
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
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)
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
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)
IBM Corporation: An architectural blueprint for autonomic computing. Autonomic Computing White Paper, 4th edn. Technical report, IBM (2006)
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)
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
Darwin, C.: On the Origin of Species by Means of Natural Selection. D. Appleton and Co., New York (1859)
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)
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
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
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)
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
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
Ghanbari, H., Litoiu, M.: Replica placement in cloud through simple stochastic model predictive control. In: IEEE Cloud, Anchorage, Alaska, 27 June–2 July (2014)
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)
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)
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
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)
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
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
Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990)
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
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)
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
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
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
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
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
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
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)
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
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)
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
Stevens, P.: Bidirectional model transformations in QVT: semantic issues and open questions. Softw. Syst. Model. 9(1), 7–20 (2010)
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
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
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
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
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/
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
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
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
Yu, Y., Tun, T.T., Nuseibeh, B.: Specifying and detecting meaningful changes in programs. In: ASE, Lawrence, KS, pp. 273–282 (2011)
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
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)
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
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Singapore Pte Ltd.
About this chapter
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)