Abstract
Requirements-driven approaches provide an effective mechanism for self-adaptive systems by reasoning over their runtime requirements models to make adaptation decisions. However, such approaches usually assume that the relations among alternative system configurations, environmental parameters and requirements are clearly understood, which is often not true. Moreover, they do not consider the influence of the current configuration of an executing system on adaptation decisions. In this paper, we propose an improved requirements-driven self-adaptation approach that combines goal reasoning and case-based reasoning. In the approach, past experiences of successful adaptations are retained as adaptation cases, which are described by not only requirements violations and contexts, but also currently deployed system configurations. The approach does not depend on a set of original adaptation cases, but employs goal reasoning to provide adaptation solutions when no similar cases are available. Case-based reasoning is used to provide more precise adaptation decisions that better reflect the complex relations among requirements violations, contexts, and current system configurations by utilizing past experiences. To prevent case-based reasoning from getting trapped in suboptimal adaptation solutions, an additional case mutation mechanism is introduced to mutate existing adaptation solutions when necessary. We conduct an experimental study with an online shopping benchmark to evaluate the effectiveness of our approach. The results show that our approach outperforms both a requirements-driven approach and a case-based approach in terms of satisfaction level of quality constraints. The results also confirm the effectiveness of case mutation for producing better adaptation solutions. In addition, we empirically investigate the evolution process of adaptation solutions. The evolution analysis reveals some general evolution trends of adaptation solutions such as different evolution phases.








Similar content being viewed by others
References
Aamodt A, Plaza E (1994) Case-based reasoning: foundational issues, methodological variations, and system approaches. AI Commun 7(1):39–59
Anglano C, Montani S (2005) Achieving self-healing in autonomic software systems: a case-based reasoning approach. In: SOAS, pp 267–281
Baresi L, Pasquale L, Spoletini P (2010) Fuzzy goals for requirements-driven adaptation. In: RE, pp 125–134
Bencomo N, Belaggoun A (2013) Supporting decision-making for self-adaptive systems: from goal models to dynamic decision networks. In: REFSQ, pp 221–236
Bruneton E, Coupaye T, Leclercq M, Quéma V, Stefani J (2006) The FRACTAL component model and its support in java: experiences with auto-adaptive and reconfigurable systems. Softw Pract Exp 36(11–12):1257–1284
Carzaniga A, Rosenblum D, Wolf A (2003) Design and evaluation of a wide-area event notification service. In: foundations of intrusion tolerant systems, 2003 (Organically Assured and Survivable Information Systems), pp 283–334
Chen B, Peng X, Yu Y, Nuseibeh B, Zhao W (2014) Self-adaptation through incremental generative model transformations at runtime. In: ICSE, pp 676–687
Chen B, Peng X, Yu Y, Zhao W (2011) Are your sites down? Requirements-driven self-tuning for the survivability of Web systems. In: RE, pp 219–228
Chen B, Peng X, Yu Y, Zhao W (2014) Requirements-driven self-optimization of composite services using feedback control. IEEE Trans Serv Comput 1
Chen B, Peng X, Yu Y, Zhao W (2014) Uncertainty handling in goal-driven self-optimization-limiting the negative effect on adaptation. J Syst Softw 90:114–127
Cheng BH, De Lemos R, Giese H, Inverardi P, Magee J, Andersson J, Becker B, Bencomo N, Brun Y, Cukic B, et al (2009) Software engineering for self-adaptive systems: a research roadmap. In: Softw Eng Self-Adapt Syst, pp 1–26
Dalpiaz F, Giorgini P, Mylopoulos J (2009) An architecture for requirements-driven self-reconfiguration. In: CAiSE, pp 246–260
De Lemos R, Giese H, Müller HA, Shaw M, Andersson J, Litoiu M, Schmerl B, Tamura G, Villegas NM, Vogel T et al (2013) Software engineering for self-adaptive systems: a second research roadmap. In: Softw Eng Self-Adapt Syst II, pp 1–32
Fu L, Peng X, Yu Y, Mylopoulos J, Zhao W (2012) Stateful requirements monitoring for self-repairing socio-technical systems. In: RE, pp 121–130
Giorgini P, Mylopoulos J, Nicchiarelli E, Sebastiani R (2002) Reasoning with goal models. In: ER, pp 167–181
Hinchey M, Sterritt R (2006) Self-managing software. Comput 39(2):107–109
Kephart JO, Chess DM (2003) The vision of autonomic computing. Comput 36(1):41–50
Khan MJ, Awais MM, Shamail S (2007) Achieving self-configuration capability in autonomic systems using case-based reasoning with a new similarity measure. In: ICIC, pp 97–106
Khan MJ, Awais MM, Shamail S (2008) Enabling self-configuration in autonomic systems using case-based reasoning with improved efficiency. In: ICAS, pp 112–117
Khan MJ, Awais MM, Shamail S (2010) Improving efficiency of self-configurable autonomic systems using clustered cbr approach. IEICE Trans Inf Syst 93(11):3005–3016
Kolodneer JL (1991) Improving human decision making through case-based decision aiding. AI Mag 12(2):52
Letier E, Van Lamsweerde A (2004) Reasoning about partial goal satisfaction for requirements and design engineering. ACM SIGSOFT Softw Eng Notes 29(6):53–62
McSherry D, Hassan S, Bustard D (2008) Conversational case-based reasoning in self-healing and recovery. In: ECCBR, pp 340–354
Montani S, Anglano C (2006) Case-based reasoning for autonomous service failure diagnosis and remediation in software systems. In: ECCBR, pp 489–503
Montani S, Anglano C (2008) Achieving self-healing in service delivery software systems by means of case-based reasoning. Appl Intell 28(2):139–152
Montani S, Anglano C (2008) Retrieval, reuse, revision, and retention in casebased reasoning. Appl Intell 28(2):139–152
Mylopoulos J, Chung L, Nixon B (1992) Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans Softw Eng 18(6):483–497
Peng X, Chen B, Yu Y, Zhao W (2012) Self-tuning of software systems through dynamic quality tradeoff and value-based feedback control loop. J Syst Softw 85(12):2707–2719
Qian W, Peng X, Chen B, Mylopoulos J, Wang H, Zhao W (2014) Rationalism with a dose of empiricism: Case-based reasoning for requirements-driven self-adaptation. In: RE, pp 113–122
Salehie M, Pasquale L, Omoronyia I, Ali R, Nuseibeh B (2012) Requirements-driven adaptive security: protecting variable assets at runtime. In: RE, pp 111–120
Sawyer P, Bencomo N, Whittle J, Letier E, Finkelstein A (2010) Requirements-aware systems: a research agenda for RE for self-adaptive systems. In: RE, pp 95–103
Sebastiani R, Giorgini P, Mylopoulos J (2004) Simple and minimum-cost satisfiability for goal models. In: CAiSE, pp 20–35
Souza VES, Lapouchnian A, Mylopoulos J (2011) System identification for adaptive software systems: a requirements engineering perspective. In: ER, pp 346–361
Srinivas M, Patnaik LM (1994) Adaptive probabilities of crossover and mutation in genetic algorithms. IEEE Trans Syst Man Cybern 24(4):656–667
Srinivas M, Patnaik LM (1994) Genetic algorithms: a survey. Comput 27(6):17–26
Wang Y, Mylopoulos J (2009) Self-repair through reconfiguration: a requirements engineering approach. In: ASE, pp 257–268
Acknowledgments
This work is supported by National Natural Science Foundation of China under Grant No. 61361120097 and National High Technology Development 863 Program of China under Grant No. 2013AA01A605.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Qian, W., Peng, X., Chen, B. et al. Rationalism with a dose of empiricism: combining goal reasoning and case-based reasoning for self-adaptive software systems. Requirements Eng 20, 233–252 (2015). https://doi.org/10.1007/s00766-015-0227-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-015-0227-1