Abstract
Self-adaptive systems have the capability to autonomously modify their behavior at run-time in response to changes in their environment. Self-adaptation is particularly necessary for applications that must run continuously, even under adverse conditions and changing requirements; sample domains include automotive systems, telecommunications, and environmental monitoring systems. While a few techniques have been developed to support the monitoring and analysis of requirements for adaptive systems, limited attention has been paid to the actual creation and specification of requirements of self-adaptive systems. As a result, self-adaptivity is often constructed in an ad-hoc manner. In order to support the rigorous specification of adaptive systems requirements, this paper introduces RELAX, a new requirements language for self-adaptive systems that explicitly addresses uncertainty inherent in adaptive systems. We present the formal semantics for RELAX in terms of fuzzy logic, thus enabling a rigorous treatment of requirements that include uncertainty. RELAX enables developers to identify uncertainty in the requirements, thereby facilitating the design of systems that are, by definition, more flexible and amenable to adaptation in a systematic fashion. We illustrate the use of RELAX on smart home applications, including an adaptive assisted living system.
This is a preview of subscription content, access via your institution.




Notes
SHALL statements are commonly used to specify requirements, indicating a contractual relationship between the customer and the developer as to what functionality should be included in the system.
Note that we take the liberty to use the RELAX name as a verb to indicate the insertion of RELAX operators.
a term coined by Anthony Finkelstein at a Dagstuhl workshop on software engineering for self-adaptive systems, January 2008
References
Kephart JO, Chess DM (2009) The vision of autonomic computing. Computer 42(10):41–50
Whittle J, Sawyer P, Bencomo N, Cheng B (2008) A language for self-adaptive system requirements. In: Service-oriented computing: consequences for engineering requirements, 2008. SOCCER ’08. International Workshop on, Sept, pp 24–29
Whittle J, Sawyer P, Bencomo N, Cheng BHC, Bruel J-M (2009) RELAX: incorporating uncertainty into the specication of self-adaptive systems. In: Proceedings of IEEE international requirements engineering conference (RE09). Atlanta, Georgia
Kramer J, Magee J (2007) Self-managed systems: an architectural Challenge. In: Future of software engineeringa. IEEE Computer Society, Los Alamitos, pp 259–268
Blair G, Bencomo N, France R (2003) Models at runtime. Computer 36(1):41–50 (Special issue on Models at Run Time)
Moon S, Lee K, Lee D (2004) Fuzzy branching temporal logic. Syst Man Cybernetics Part B IEEE Trans 34:1045–1055
Bacchus F (1990) Representing and reasoning with probabilistic knowledge: a logical approach to probabilities. MIT Press, Cambridge
Konrad S, Cheng BHC (2005) Facilitating the construction of specification pattern-based properties. In: Proceedings of IEEE international requirements engineering conference (RE05). Aug, pp 329–338
Ben-Ari M, Manna Z, Pnueli A (1981) The temporal logic of branching time. In: POPL ’81: Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on principles of programming languages. ACM, New York, pp 164–176
Clarke EM, Emerson EA (1982) Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Logic of programs. Workshop. Springer, London, pp 52–71
Pasquale L, Baresi L (2009) Applying RELAX to requirements for service-oriented architectures. Private Communication
Qureshi NA, Perini A (2009) Applying RELAX to softgoals of adaptive systems. Private Communication
Welsh K, Sawyer P (2009) Requirements tracing to support change in dynamic adaptive systems. In: Requirements engineering foundations for software quality (REFSQ)
Schneier B (1999) Attack trees—modeling security threats. In: Dr. Dobb’s Journal. CMP Media LLC, Manhasset
Swiderski F, Snyder W (2004) Threat modeling. Microsoft Press, Redmond
van Lamsweerde A, Letier E (2000) Handling obstacles in goal-oriented requirements engineering. IEEE Trans Softw Eng 26(10):978–1005
van Lamsweerde A (2008) Requirements engineering: from system goals to UML models to software specifications. Wiley, New York
Cheng BHC, Sawyer P, Bencomo N, Whittle J (2009) A goal-based modeling approach to develop requirements of an adaptive system with environmental uncertainty. In: MoDELS ’09: Proceedings of the 11th international conference on model driven engineering languages and systems. Springer, Berlin
Garlan D, Cheng S-W, Huang A-C, Schmerl B, Steenkiste P (2004) Rainbow: architecture-based self-adaptation with reusable Infrastructure. IEEE Computer 37(10):46–54
Gurp JV, Bosch J, Svahnberg M (2001) On the notion of variability in software product lines. In: WICSA ’01: proceedings of the working IEEE/IFIP conference on software architecture (WICSA’01). IEEE Computer Society, p 45
Letier E, van Lamsweerde A (2004) Reasoning about partial goal satisfaction for requirements and design engineering. SIGSOFT Softw Eng Notes 29(6):53–62
Salifu M, Yu Y, Nuseibeh B (2007) Specifying monitoring and switching problems in context. In: IEEE international requirements engineering conference, Oct, pp 211–220
Ramirez AJ, Knoester DB, Cheng BHC, McKinley PK (2009) Applying genetic algorithms to decision making in autonomic computing systems. In: ICAC ’09: proceedings of the 6th international conference on autonomic computing. ACM, New York, pp 97–106
Kodumal J, Aiken A (2005) Banshee: a scalable constraint-based analysis toolkit. In: Hankin C, Siveroni I (eds), 12th international symposium static analysis SAS, vol 3672. Lecture Notes in Computer Science. Springer, Berlin, pp 218–234
Schwalb E, Vila L (1998) Temporal constraints: a survey. Constraints 3(2/3):129–149
Badaloni S, Falda M, Giacomin M (2007) Solving temporal over-constrained problems using fuzzy techniques. J Intell Fuzzy Syst 18(3):255–265
Zhou Y, Murata T (1999) Petri net model with fuzzy timing and fuzzy-metric temporal logic. Int J Intell Syst 14(8):719–745
Lamine KB, Kabanza F (2000) History checking of temporal fuzzy logic formulas for monitoring behavior-based mobile robots. In: International conference on tools with artificial intelligence, pp 312–319
Badaloni S, Falda M, Giacomin M (2008) Tractable fragments of fuzzy qualitative algebra. Spat Cogn Comput 8(1–2):150–166
Dubois D, Fargier H, Prade H (1996) Possibility theory in constraint satisfaction problems: handling priority, preference and uncertainty. Appl Intell 6:287–309
Hamaguchi K, Hiraishi H, Yajima S (1991) Branching time regular temporal logic for model checking with linear time complexity. In: Computer-aided verification, vol 531. Springer, Berlin
Schockaert S, Cock MD (2008) Temporal reasoning about fuzzy Intervals. Artif intell 172(8–9):1158–1193
Maes P (1987) Concepts and experiments in computational reflection. In: Proceedings of the conference on object-oriented programming systems, languages, and applications (OOPSLA), vol 22. ACM Press, New York, pp 147–155
Cheng BHC, Giese H, Inverardi P, Magee J, deLemos R (2008) Software engineering for self-adaptive systems: a research road map, Dagstuhl-seminar on software engineering for self-adaptive systems. In: Cheng BHC, Giese H, Inverardi P, Magee J, de Lemos R (eds), Software engineering for self-adaptive systems. Lecture Notes in Computer Science, Springer, Berlin, p 5525
Berry D, Cheng BHC, Zhang J (2005) The four levels of requirements engineering for and in dynamic adaptive systems. In: 11th Int. Work on Requirements Engineering: Foundation for Software Quality (REFSQ’05). Porto, Portugal
Lapouchnian A, Yu Y, Liaskos S, Mylopoulos J (2006) Requirements-driven design of autonomic application software. In: Proceedings of CASCON
Yijun Y, Lapouchnian A, Liaskos S, Mylopoulos J, Leite J (2008) From goals to high-variability software design, vol 4994. Springer, Berlin
Morandini M, Penserini L, Perini A (2008) Modelling self-adaptivity: a goal-oriented approach. In: Proceedings of second IEEE international conference on self-adaptive and self-organizing systems (SASO), pp 469–470
Goldsby H, Sawyer P, Bencomo N, Hughes D, Cheng BHC (2008) Goal-based modeling of dynamically adaptive system requirements. In: 15th annual IEEE international conference on the engineering of computer based systems (ECBS)
Letier E, van Lamsweerde A (2004) Reasoning about partial goal satisfaction for requirements and design engineering. In: Proceedings of 12th ACM SIGSOFT international symposium on foundations of software engineering, pp 53–62
van Lamsweerde A (2008) Requirements engineering: from craft to discipline. In: Proceedings of 16th ACM SIGSOFT international symposium on foundations of software engineering, pp 238–249
Baresi L, Ghezzi C, Guinea S (2004) Smart monitors for composed services. In: ICSOC, pp 193–202
Spanoudakis G (2006) Non intrusive monitoring of service based Systems. Int J Cooper Inform Syst 15:325–358
Ghezzi C, Guinea S (2007) Run-time monitoring in service oriented architectures. In: Baresi L, Di Nitto E (eds), Test and analysis of web services, chap 9. Springer, Berlin, pp 237–262
Fickas S, Feather M (1995) Requirements monitoring in dynamic environments. In: Second IEEE international symposium on requirements engineering (RE’95)
Feather M, Fickas S, van Lamsweerde A, Ponsard C (1998) Reconciling system requirements and runtime behavior. In: Ninth international workshop software specification and design. Apr, pp 50–59
Robinson W (2005) A requirements monitoring framework for enterprise Systems. Requir Eng 11(1):17–41
Cheng BHC, Whittle J, Bencomo N, Finkelstein A, Magee J, Kramer J, Park S, Dustda S (2008) Software engineering for self-adaptive systems: a research road map, requirements engineering section. In: Cheng BHC, Giese H, Inverardi P, Magee J, de Lemos R (eds) Software engineering for self-adaptive systems. Lecture Notes in Computer Science, Springer, p 5525
Wang Y, McIlraith S, Yu Y, Mylopoulos J (2007) An automated approach to monitoring and diagnosing requirements. In: Automated software engineering conference, pp 293–302
Zhang J, Cheng BHC (2006) Model-based development of dynamically adaptive software. In: ICSE ’06: proceedings of the 28th international conference on Software engineering. ACM Press, New York, pp 371–380
Kramer J and Magee J (1998) Analysing dynamic change in software architectures: a case study. In: Proceedings fourth international conference on configurable distributed systems. IEEE 4–6, pp 91–100
Kulkarni SS and Biyani KN (2004) Correctness of component-based Adaptation. In: Crnkovic I, Stafford JA, Schmidt HW, Wallnau KC (eds) CBSE, vol 3054. Lecture Notes in Computer Science. Springer, pp 48–58
Bradbury J, Cordy J, Dingel J, Wermelinger M (2004) A classification of formal specifications for dynamic architectures. In: Proceedings of ACM SIGSOFT 2004 12th international symposium on the foundations of software engineering
Zhang J, Cheng BHC (2006) Using temporal logic to specify adaptive program semantics. J Syst Softw (JSS) Archit Dependable Syst 79(10):1361–1369
Zhang J, Goldsby HJ, Cheng BHC (2009) Modular verification of dynamically adaptive systems. In: AOSD ’09: proceedings of the 8th ACM international conference on aspect-oriented software development. ACM, New York, pp 161–172
De Kleer J, Mackworth A, Reiter R (1992) Characterizing diagnoses and systems. Artif Intell 56(2–3):197–222
Williams B, Ingham M, Chung S, Elliot P (2003) Model-based programming of intelligent embedded systems and robotic space explorers. IEEE Special Issue Model Design Embed Softw 91(1):212–237
Cohen PR (1985) Heuristic reasoning about uncertainty: an artificial intelligence approach. Pitman Publishing, Inc., Marshfield
Halpern JY (2003) Reasoning About Uncertainty. MIT Press, Cambridge
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Whittle, J., Sawyer, P., Bencomo, N. et al. RELAX: a language to address uncertainty in self-adaptive systems requirement. Requirements Eng 15, 177–196 (2010). https://doi.org/10.1007/s00766-010-0101-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-010-0101-0
Keywords
- Adaptive systems
- Requirements engineering
- Fuzzy logic
- Smart homes
- Uncertainty