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
- 1.
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.
- 2.
Note that we take the liberty to use the RELAX name as a verb to indicate the insertion of RELAX operators.
- 3.
a term coined by Anthony Finkelstein at a Dagstuhl workshop on software engineering for self-adaptive systems, January 2008
References
- 1.
Kephart JO, Chess DM (2009) The vision of autonomic computing. Computer 42(10):41–50
- 2.
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
- 3.
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
- 4.
Kramer J, Magee J (2007) Self-managed systems: an architectural Challenge. In: Future of software engineeringa. IEEE Computer Society, Los Alamitos, pp 259–268
- 5.
Blair G, Bencomo N, France R (2003) Models at runtime. Computer 36(1):41–50 (Special issue on Models at Run Time)
- 6.
Moon S, Lee K, Lee D (2004) Fuzzy branching temporal logic. Syst Man Cybernetics Part B IEEE Trans 34:1045–1055
- 7.
Bacchus F (1990) Representing and reasoning with probabilistic knowledge: a logical approach to probabilities. MIT Press, Cambridge
- 8.
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
- 9.
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
- 10.
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
- 11.
Pasquale L, Baresi L (2009) Applying RELAX to requirements for service-oriented architectures. Private Communication
- 12.
Qureshi NA, Perini A (2009) Applying RELAX to softgoals of adaptive systems. Private Communication
- 13.
Welsh K, Sawyer P (2009) Requirements tracing to support change in dynamic adaptive systems. In: Requirements engineering foundations for software quality (REFSQ)
- 14.
Schneier B (1999) Attack trees—modeling security threats. In: Dr. Dobb’s Journal. CMP Media LLC, Manhasset
- 15.
Swiderski F, Snyder W (2004) Threat modeling. Microsoft Press, Redmond
- 16.
van Lamsweerde A, Letier E (2000) Handling obstacles in goal-oriented requirements engineering. IEEE Trans Softw Eng 26(10):978–1005
- 17.
van Lamsweerde A (2008) Requirements engineering: from system goals to UML models to software specifications. Wiley, New York
- 18.
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
- 19.
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
- 20.
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
- 21.
Letier E, van Lamsweerde A (2004) Reasoning about partial goal satisfaction for requirements and design engineering. SIGSOFT Softw Eng Notes 29(6):53–62
- 22.
Salifu M, Yu Y, Nuseibeh B (2007) Specifying monitoring and switching problems in context. In: IEEE international requirements engineering conference, Oct, pp 211–220
- 23.
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
- 24.
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
- 25.
Schwalb E, Vila L (1998) Temporal constraints: a survey. Constraints 3(2/3):129–149
- 26.
Badaloni S, Falda M, Giacomin M (2007) Solving temporal over-constrained problems using fuzzy techniques. J Intell Fuzzy Syst 18(3):255–265
- 27.
Zhou Y, Murata T (1999) Petri net model with fuzzy timing and fuzzy-metric temporal logic. Int J Intell Syst 14(8):719–745
- 28.
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
- 29.
Badaloni S, Falda M, Giacomin M (2008) Tractable fragments of fuzzy qualitative algebra. Spat Cogn Comput 8(1–2):150–166
- 30.
Dubois D, Fargier H, Prade H (1996) Possibility theory in constraint satisfaction problems: handling priority, preference and uncertainty. Appl Intell 6:287–309
- 31.
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
- 32.
Schockaert S, Cock MD (2008) Temporal reasoning about fuzzy Intervals. Artif intell 172(8–9):1158–1193
- 33.
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
- 34.
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
- 35.
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
- 36.
Lapouchnian A, Yu Y, Liaskos S, Mylopoulos J (2006) Requirements-driven design of autonomic application software. In: Proceedings of CASCON
- 37.
Yijun Y, Lapouchnian A, Liaskos S, Mylopoulos J, Leite J (2008) From goals to high-variability software design, vol 4994. Springer, Berlin
- 38.
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
- 39.
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)
- 40.
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
- 41.
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
- 42.
Baresi L, Ghezzi C, Guinea S (2004) Smart monitors for composed services. In: ICSOC, pp 193–202
- 43.
Spanoudakis G (2006) Non intrusive monitoring of service based Systems. Int J Cooper Inform Syst 15:325–358
- 44.
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
- 45.
Fickas S, Feather M (1995) Requirements monitoring in dynamic environments. In: Second IEEE international symposium on requirements engineering (RE’95)
- 46.
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
- 47.
Robinson W (2005) A requirements monitoring framework for enterprise Systems. Requir Eng 11(1):17–41
- 48.
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
- 49.
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
- 50.
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
- 51.
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
- 52.
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
- 53.
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
- 54.
Zhang J, Cheng BHC (2006) Using temporal logic to specify adaptive program semantics. J Syst Softw (JSS) Archit Dependable Syst 79(10):1361–1369
- 55.
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
- 56.
De Kleer J, Mackworth A, Reiter R (1992) Characterizing diagnoses and systems. Artif Intell 56(2–3):197–222
- 57.
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
- 58.
Cohen PR (1985) Heuristic reasoning about uncertainty: an artificial intelligence approach. Pitman Publishing, Inc., Marshfield
- 59.
Halpern JY (2003) Reasoning About Uncertainty. MIT Press, Cambridge
Author information
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:
Keywords
- Adaptive systems
- Requirements engineering
- Fuzzy logic
- Smart homes
- Uncertainty