Abstract
Self-adaptation is an established approach to deal with uncertainties that are difficult to predict before a system is deployed. A self-adaptative system employs a feedback loop that tracks changes and adapts the system accordingly to ensure its quality goals. However, making effective adaptation decisions at runtime is challenging. In this chapter we tackle two problems of effective decision making in self-adaptive systems. First, current research typically focusses on the benefits adaptaton can bring but ignores the cost of adaptation, which may invalidate the expected benefits. To tackle this problem, we introduce CB@R (Cost-Benefit analysis @ Runtime), a novel model-based approach for runtime decision-making in self-adaptive systems that handles both the benefits and costs of adaptation as first-class citizens in decision making. Second, we look into the adaptation space of self-adaptive systems, i.e. the set of adaption options to select from. For systems with a large number of adaptation options, analyzing the entire adaptation space is often not feasible given the time and resources constraints at hand. To tackle this problem, we present a machine learning approach that integrates learning with the feedback loop to select a subset of the adaption options that are valid in the current situation. We evaluate CB@R and the learning approach for a real world deployed Internet of Things (IoT) application.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
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.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 27–47. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02161-9_2
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley, Boston (2013)
Bennaceur, A., et al.: Feed me, feed me: an exemplar for engineering adaptive software. In: Software Engineering for Adaptive and Self-Managing Systems (2016)
Bertolli, C., Mencagli, G., Vanneschi, M.: A cost model for autonomic reconfigurations in high-performance pervasive applications. In: Workshop on Context-Awareness for Self-Managing Systems. ACM (2010)
Blair, G., Bencomo, N., France, R.B.: Models@ run. time. Comput. 42(10), 22–29 (2009)
Bu, X., Rao, J., Xu, C.Z.: A reinforcement learning approach to online web systems auto-configuration. In: 2009 29th IEEE International Conference on Distributed Computing Systems. IEEE (2009)
Buttar, S.S.: Applying machine learning to reduce the adaptation space in self-adaptive systems: an exploratory work. Linnaeus University (2018)
Cailliau, A., van Lamsweerde, A.: Runtime monitoring and resolution of probabilistic obstacles to system goals. In: In 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (2017)
Calinescu, R., Ghezzi, C., Kwiatkowska, M., Mirandola, R.: Self-adaptive software needs quantitative verification at runtime. Commun. ACM 55(9), 69–77 (2012)
Calinescu, R., Grunske, L., Kwiatkowska, M., Mirandola, R., Tamburrelli, G.: Dynamic QoS management and optimization in service-based systems. IEEE Trans. Softw. Eng. 37(3), 387–409 (2011)
Cámara, J., Moreno, G.A., Garlan, D., Schmerl, B.: Analyzing latency-awareself-adaptation using stochastic games and simulations. ACM Trans. Auton. Adapt. Syst. 10(4), 23 (2016)
Cheng, B.H.C., et al.: 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). https://doi.org/10.1007/978-3-642-02161-9_1
Crammer, K., Dekel, O., Keshet, J., Shalev-Shwartz, S., Singer, Y.: Online passive-aggressive algorithms. J. Mac. Learn. Res. 7, 551–585 (2006)
Dobson, S., et al.: A survey of autonomic communications. ACM Trans. Auton. Adapt. Syst. 1(2), 223–259 (2006)
Fokaefs, M., Barna, C., Litoiu, M.: Economics-driven resource scalability on the cloud. In: Proceedings of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM (2016)
Gambi, A., Moldovan, D., Copil, G., Truong, H.L., Dustdar, S.: On estimating actuation delays in elastic computing systems. In: Proceedings of the 8th International Symposium Software Engineering for Adaptive and Self-Managing Systems. IEEE (2013)
Garlan, D., Cheng, S., Huang, A., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. Comput. 37(10), 46–54 (2004)
Gepperth, A., Hammer, B.: Incremental learning algorithms and applications. In: European Symposium on Artificial Neural Networks (2016)
Gerasimou, S., Calinescu, R., Shevtsov, S., Weyns, D.: UNDERSEA: an exemplar for engineering self-adaptive unmanned underwater vehicles. In: 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. IEEE (2017)
Géron, A.: Hands-on Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. O’Reilly Media Inc., Sebastopol (2017)
Hackeling, G.: Mastering Machine Learning with Scikit-Learn. Packt Publishing Ltd., Birmingham (2017)
Iftikhar, M.U.: A Model-Based Approach to Engineer Self-Adaptive Systems with Guarantees. KU Leuven and Linnaeus University (2017)
Iftikhar, M.U., Weyns, D.: ActivFORMS: active formal models for self-adaptation. In: Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM (2014)
Iftikhar, M.U., et al.: DeltaIoT: a self-adaptive internet of things exemplar. In: Proceedings of the 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. IEEE (2017)
de la Iglesia, D.G., Weyns, D.: Mape-k formal templates to rigorously design behaviors for self-adaptive systems. ACM Trans. Auton. Adapt. Syst. 10(3), 15 (2015)
Jamshidi, P., Ahmad, A., Pahl, C.: Autonomic resource provisioning for the cloud. In: Proceedings of the 9th international symposium on Software Engineering for Adaptive and Self-Managing Systems. ACM (2014)
Jamshidi, P., Casale, G.: An uncertainty-aware approach to optimal configuration of stream processing systems. In: 2016 IEEE 24th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems. IEEE (2016)
Jamshidi, P., Velez, M., Kästner, C., Siegmund, N., Kawthekar, P.: Transfer learning for improving model predictions in highly configurable software. In: 2016 IEEE 24th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. IEEE (2017)
Jung, G., Hiltunen, M.A., Joshi, K.R., Schlichting, R.D., Pu, C.: Mistral: dynamically managing power, performance, and adaptation cost in cloud infrastructures. In: 2010 IEEE 30th International Conference on Distributed Computing Systems. IEEE (2010)
Kephart, J., Chess, D.: The vision of autonomic computing. Comput. 36(1), 41–50 (2003)
Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Future of Software Engineering. IEEE (2007)
de Lemos, R., et al.: Software engineering for self-adaptive systems: research challenges in the provision of assurances. In: de Lemos, R., Garlan, D., Ghezzi, C., Giese, H. (eds.) Software Engineering for Self-Adaptive Systems III. Assurances. LNCS, vol. 9640, pp. 3–30. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-74183-3_1
de Lemos, R., et al.: Software engineering for self-adaptive systems: a second research roadmap. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 1–32. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35813-5_1
Louridas, P., Ebert, C.: Machine learning. IEEE Softw. 33(5), 110–115 (2016)
Mohri, M., Rostamizadeh, A., Talwalkar, A.: Foundations of Machine Learning. MIT Press, Cambridge (2012)
Oreizy, P., Medvidovic, N., Taylor, R.: Architecture-based runtime software evolution. In: Proceedings of the 20th International Conference on Software Engineering. IEEE (1998)
Pedregosa, F., et al.: Scikit-learn: machine learning in python. J. Mac. Learn. Res. 12, 2825–2830 (2011)
Poladian, V., Garlan, D., Shaw, M., Satyanarayanan, M., Schmerl, B., Sousa, J.: Leveraging resource prediction for anticipatory dynamic configuration. In: International Conference on Self-Adaptive and Self-Organizing Systems. IEEE (2007)
Salehie, M., Tahvildari, L.: Self-adaptive software: landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 14 (2009)
Sarkar, A., Guo, J., Siegmund, N., Apel, S., Czarnecki, K.: Cost-efficient sampling for performance prediction of configurable systems (t). In: 2015 30th IEEE/ACM International Conference on Automated Software Engineering. IEEE (2015)
Siegmund, N., Grebhahn, A., Apel, S., Kästner, C.: Performance-influence models for highly configurable systems. In: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (2015)
Software Engineering Institute, C.M.U.: Cost Benefit Analysis Method (2018). https://www.sei.cmu.edu/architecture/tools/evaluate/cbam.cfm
Van Der Donckt, J., Weyns, D., Iftikhar, M.U., Singh, R.K.: Cost-benefit analysis at runtime for self-adaptive systems applied to an Internet of Things application. In: 13th International Conference on Evaluation of Novel Approaches to Software Engineering (2018)
Weyns, D.: Software engineering of self-adaptive systems: an organised tour and future challenges. In: Software Engineering Handbook. Springer, Heidelberg (2018)
Weyns, D., Ahmad, T.: Claims and evidence for architecture-based self-adaptation: a systematic literature review. In: Drira, K. (ed.) ECSA 2013. LNCS, vol. 7957, pp. 249–265. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39031-9_22
Weyns, D., Iftikhar, M.U., Söderlund, J.: Do external feedback loops improve the design of self-adaptive systems? A controlled experiment. In: Proceedings of the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (2013)
Weyns, D., Malek, S., Andersson, J.: FORMS: unifying reference model for formal specification of distributed self-adaptive systems. ACM Trans. Auton. Adapt. Syst. 7(1), 8 (2012)
Weyns, D., et al.: Perpetual assurances for self-adaptive systems. In: de Lemos, R., Garlan, D., Ghezzi, C., Giese, H. (eds.) Software Engineering for Self-Adaptive Systems III. Assurances. LNCS, vol. 9640, pp. 31–63. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-74183-3_2
Yigitbasi, N., Willke, T.L., Liao, G., Epema, D.: Towards machine learning-based auto-tuning of mapreduce. In: 2013 IEEE 21st International Symposium on Modelling, Analysis and Simulation of Computer and Telecommunication Systems. IEEE (2013)
Zhang, Y., Guo, J., Blais, E., Czarnecki, K.: Performance prediction of configurable software systems by fourier learning (t). In: 2015 30th IEEE/ACM International Conference on Automated Software Engineering. IEEE (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Van Der Donckt, J., Weyns, D., Iftikhar, M.U., Buttar, S.S. (2019). Effective Decision Making in Self-adaptive Systems Using Cost-Benefit Analysis at Runtime and Online Learning of Adaptation Spaces. In: Damiani, E., Spanoudakis, G., Maciaszek, L. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2018. Communications in Computer and Information Science, vol 1023. Springer, Cham. https://doi.org/10.1007/978-3-030-22559-9_17
Download citation
DOI: https://doi.org/10.1007/978-3-030-22559-9_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-22558-2
Online ISBN: 978-3-030-22559-9
eBook Packages: Computer ScienceComputer Science (R0)