Skip to main content

RELAX: a language to address uncertainty in self-adaptive systems requirement


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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4


  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


  1. Kephart JO, Chess DM (2009) The vision of autonomic computing. Computer 42(10):41–50

    Google Scholar 

  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)

    Google Scholar 

  6. Moon S, Lee K, Lee D (2004) Fuzzy branching temporal logic. Syst Man Cybernetics Part B IEEE Trans 34:1045–1055

    Article  Google Scholar 

  7. Bacchus F (1990) Representing and reasoning with probabilistic knowledge: a logical approach to probabilities. MIT Press, Cambridge

    Google Scholar 

  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

    Google Scholar 

  16. van Lamsweerde A, Letier E (2000) Handling obstacles in goal-oriented requirements engineering. IEEE Trans Softw Eng 26(10):978–1005

    Article  Google Scholar 

  17. van Lamsweerde A (2008) Requirements engineering: from system goals to UML models to software specifications. Wiley, New York

    Google Scholar 

  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

    Google Scholar 

  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

    Article  Google Scholar 

  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

    Article  MATH  MathSciNet  Google Scholar 

  26. Badaloni S, Falda M, Giacomin M (2007) Solving temporal over-constrained problems using fuzzy techniques. J Intell Fuzzy Syst 18(3):255–265

    MATH  Google Scholar 

  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

    Article  MATH  Google Scholar 

  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

    Article  Google Scholar 

  30. Dubois D, Fargier H, Prade H (1996) Possibility theory in constraint satisfaction problems: handling priority, preference and uncertainty. Appl Intell 6:287–309

    Article  Google Scholar 

  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

    Article  MATH  Google Scholar 

  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

    Google Scholar 

  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

    Article  Google Scholar 

  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

    Article  Google Scholar 

  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

    Google Scholar 

  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

    Article  MATH  MathSciNet  Google Scholar 

  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

    Google Scholar 

  58. Cohen PR (1985) Heuristic reasoning about uncertainty: an artificial intelligence approach. Pitman Publishing, Inc., Marshfield

    Google Scholar 

  59. Halpern JY (2003) Reasoning About Uncertainty. MIT Press, Cambridge

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Jon Whittle.

Rights and permissions

Reprints 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).

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI:


  • Adaptive systems
  • Requirements engineering
  • Fuzzy logic
  • Smart homes
  • Uncertainty