Requirements Engineering

, Volume 15, Issue 2, pp 177–196 | Cite as

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

  • Jon Whittle
  • Pete Sawyer
  • Nelly Bencomo
  • Betty H. C. Cheng
  • Jean-Michel Bruel
RE’09 Special Issue


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.


Adaptive systems Requirements engineering Fuzzy logic Smart homes Uncertainty 


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

Copyright information

© Springer-Verlag London Limited 2010

Authors and Affiliations

  • Jon Whittle
    • 1
  • Pete Sawyer
    • 1
  • Nelly Bencomo
    • 1
  • Betty H. C. Cheng
    • 2
  • Jean-Michel Bruel
    • 3
  1. 1.Computing Department, InfoLab 21Lancaster UniversityLancasterUK
  2. 2.Department of Computer, Science and EngineeringMichigan State UniversityEast LansingUSA
  3. 3.IUT de BlagnacBlagnac CedexFrance

Personalised recommendations