Empirical Software Engineering

, Volume 19, Issue 5, pp 1466–1501 | Cite as

AutoRELAX: automatically RELAXing a goal model to address uncertainty

  • Erik M. Fredericks
  • Byron DeVries
  • Betty H. C. Cheng
Article

Abstract

Dynamically adaptive systems (DAS) must cope with system and environmental conditions that may not have been fully understood or anticipated during development. RELAX is a fuzzy logic-based specification language for identifying and assessing sources of environmental uncertainty, thereby making DAS requirements more tolerant of unanticipated conditions. This paper presents AutoRELAX, an approach that automatically generates RELAXed goal models to address environmental uncertainty. Specifically, AutoRELAX identifies goals to RELAX, which RELAX operators to apply, and the shape of the fuzzy logic function that establishes the goal satisfaction criteria. AutoRELAX generates different solutions by making tradeoffs between minimizing the number of RELAXed goals and maximizing delivered functionality by reducing the number of adaptations triggered by minor and adverse environmental conditions. In a recent extension, AutoRELAX uses a stepwise adaptation of weights to balance these two competing concerns and thereby further improve the utility of AutoRELAX. We apply it to two industry-based applications involving network management and a robotic controller, respectively.

Keywords

Uncertainty Requirements engineering Goal models Genetic algorithms 

Notes

Acknowledgments

We gratefully acknowledge conceptual and implementation contributions from Jared M. Moore. Much of the original work with AutoRELAX was done by Andres J. Ramirez.

This work has been supported in part by NSF grants CCF-0854931, CCF-0750787, CCF-0820220, DBI-0939454, Army Research Office grant W911NF-08-1-0495, and Ford Motor Company. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation, Army, Ford, or other research sponsors. The authors declare that they have no conflict of interest.

References

  1. Baresi L, Pasquale L, Spoletini P (2010) Fuzzy goals for requirements-driven adaptation. In: Proceedings of the 18th IEEE international requirements engineering conference. IEEE, Sydney, pp 125–134Google Scholar
  2. Bencomo N, Whittle J, Sawyer P, Finkelstein A, Letier E (2010) Requirements reflection: requirements as runtime entities. In: Proceedings of the 32nd ACM/IEEE international conference on software engineering. ACM, Cape Town, pp 199–202Google Scholar
  3. Bencomo N, Belaggoun A (2013) Supporting decision-making for self-adaptive systems: from goal models to dynamic decision networks. In: Requirements engineering: Foundation for Software Quality. Springer, pp 221–236Google Scholar
  4. 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: ACM/IEEE international conference on model driven engineering languages and systems (MODELS’09). Lecture notes in computer science. Springer-Verlag, Denver, pp 468–483Google Scholar
  5. Chung L, Nixon B, Yu E, Mylopoulos J (2000) Non-functional requirements in software engineering. KluwerGoogle Scholar
  6. Craenen B, Eiben A (2001) Stepwise adaption of weights with refinement and decay on constraint satisfaction problems. In: Proceedings of the genetic and evolutionary computation conference (GECCO 2001), pp 291–298Google Scholar
  7. Dardenne A, van Lamsweerde A, Fickas S (1993) Goal-directed requirements acquisition. Sci Comput Program 20(1-2):3–50CrossRefMATHGoogle Scholar
  8. Deb K, Pratap A, Agarwal S, Meyarivan T (2002) A fast and elitist multiobjective genetic algorithm: NSGA-II. In: IEEE transactions on evolutionary computation, vol 6. IEEE, pp 182–197Google Scholar
  9. de Grandis P, Valetto G (2009) Elicitation and utilization of application-level utility functions. In: Proceedings of the sixth international conference on autonomic computing (ICAC’09). ACM, Barcelona, pp 107–116Google Scholar
  10. Eiben Á, van der Hauw J (1997) Solving 3-sat by gas adapting constraint weights. In: IEEE international conference on evolutionary computation. IEEE, pp 81–86Google Scholar
  11. Eiben A, van der Hauw J (1998) Adaptive penalties for evolutionary graph coloring. In: Artificial evolution. Springer, pp 95–106Google Scholar
  12. Eiben A, van der Hauw J, van Hemert J (1998) Graph coloring with adaptive evolutionary algorithms. J Heuristics 4:25–46CrossRefMATHGoogle Scholar
  13. Esfahani N (2011) A framework for managing uncertainty in self-adaptive software systems. In: Proceedings of the 26th IEEE/ACM international conference on automated software engineering. Lawrence , KansasGoogle Scholar
  14. Esfahani N, Kouroshfar E, Malek S (2011) Taming uncertainty in self-adaptive software. In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on foundations of software engineering. Szeged, pp 234–244Google Scholar
  15. Feather MS, Fickas S, van Lamsweerde A, Ponsard C (1998) Reconciling system requirements and runtime behavior. In: Proceedings of the 8th international workshop on software specification and design. IEEE Computer Society, Washington, DC, pp 50–59Google Scholar
  16. Fickas S, Feather MS (1995) Requirements monitoring in dynamic environments. In: Proceedings of the second IEEE international symposium on requirements engineering. IEEE Computer Society, Washington, DC, pp 140–147Google Scholar
  17. Filieri A, Ghezzi C, Tamburrelli G (2011) Run-time efficient probabilistic model checking. In: Proceedings of the 33rd international conference on software engineering. ACM, Waikiki, pp 341–350Google Scholar
  18. Holland JH (1992) Adaptation in natural and artificial systems. MIT Press, CambridgeGoogle Scholar
  19. Jackson M, Zave P (1995) Deriving specifications from requirements: an example. In: Proceedings of the 17th international conference on software engineering. ACM, Seattle, pp 15–24Google Scholar
  20. Ji M, Veitch A, Wilkes J (2003) Seneca: remote mirroring done write. In: USENIX 2003 annual technical conference. USENIX Association, Berkeley, pp 253–268Google Scholar
  21. Keeton K, Santos C, Beyer D, Chase J, Wilkes J (2004) Designing for disasters. In: Proceedings of the 3rd USENIX conference on file and storage technologies. USENIX Association, Berkeley, pp 59–62Google Scholar
  22. Kramer J, Magee J (1990) The evolving philosophers problem: dynamic change management. IEEE Trans Soft Eng 16(11):1293–1306CrossRefGoogle Scholar
  23. Letier E, van Lamsweerde A (2004) Reasoning about partial goal satisfaction for requirements and design engineering. In: Proceedings of the 12th ACM SIGSOFT international symposium on foundations of software engineering. ACM, Newport Beach, pp 53–62Google Scholar
  24. Neema S, Bapty T, Scott J (1999) Development environment for dynamically reconfigurable embedded systems. In: Proceedings of the international conference on signal processing applications and technology. OrlandoGoogle Scholar
  25. Pasquale L, Spoletini P (2011) Monitoring fuzzy temporal requirements for service compositions: motivations, challenges, and experimental results. In: Proceedings of the 2011 international workshop on requirements engineering for systems, services and systems of systems. IEEE, Trento, pp 63–69CrossRefGoogle Scholar
  26. Ramirez AJ, Knoester DB, Cheng BHC, McKinley PK (2009) Applying genetic algorithms to decision making in autonomic computing systems. In: Proceedings of the sixth international conference on autonomic computing. Barcelona, pp 97–106Google Scholar
  27. Ramirez AJ, Knoester DB, Cheng BHC, McKinley PK (2010) Plato: a genetic algorithm approach to run-time reconfiguration of autonomic computing systems. Clust Comput to appearGoogle Scholar
  28. Ramirez AJ, Cheng BHC (2011) Automatically deriving utility functions for monitoring software requirements. In: Proceedings of the 2011 international conference on model driven engineering languages and systems conference. Wellington, pp 501–516Google Scholar
  29. Ramirez AJ, Jensen AC, Cheng BH, Knoester DB (2011) Automatically exploring how uncertainty impacts behavior of dynamically adaptive systems. In: Proceedings of the 2011 international conference on automatic software engineering, ASE’11. Lawrence, KansasGoogle Scholar
  30. Ramirez AJ, Fredericks EM, Jensen AC, Cheng BHC (2012) Automatically relaxing a goal model to cope with uncertainty. In: Fraser G, Teixeira de Souza J (eds) Search based software engineering, lecture notes in computer science, vol 7515. Springer, Berlin, pp 198–212Google Scholar
  31. Sawyer P, Bencomo N, Letier E, Finkelstein A (2010) Requirements-aware systems: a research agenda for re self-adaptive systems. In: Proceedings of the 18th IEEE international requirements engineering conference. Sydney, pp 95–103Google Scholar
  32. Souza VES, Mylopoulos J (2011) From awareness requirements to adaptive systems: a control-theoretic approach. In: Proceedings of the second international workshop on requirements at run time. IEEE Computer Society, Trento, pp 9–15Google Scholar
  33. van der Hauw K (1996) Evaluating and improving steady state evolutionary algorithms on constraint satisfaction problems. Master’s thesis, Leiden UniversityGoogle Scholar
  34. van Lamsweerde A (2009) Requirements engineering: from system goals to UML models to software specifications. WileyGoogle Scholar
  35. van Lamsweerde A, Letier E (2000) Handling obstacles in goal-oriented requirements engineering. IEEE Trans Softw Eng 26(10):978–1005CrossRefGoogle Scholar
  36. Walsh WE, Tesauro G, Kephart JO, Das R (2004) Utility functions in autonomic systems. In: Proceedings of the first IEEE international conference on autonomic computing. IEEE Computer Society, New York, pp 70–77Google Scholar
  37. Wei O, Gurfinkel A, Chechik M (2011) On the consistency, expressiveness, and precision of partial models. J Inf Comput 209(1):20–47MathSciNetCrossRefMATHGoogle Scholar
  38. Welsh K, Sawyer P (2010) Understanding the scope of uncertainty in dynamically adaptive systems. In: Proceedings of the sixth international working conference on requirements engineering: foundation for software quality, vol 6182. Springer, Essen, pp 2–16Google Scholar
  39. Welsh K, Sawyer P, Bencomo N (2011 ) Towards requirements aware systems: run-time resolution of design-time assumptions. In: Proceedings of the 26th IEEE/ACM international conference on automated software engineering. IEEE Computer Society, Lawrence, pp 560–563Google Scholar
  40. Whittle J, Sawyer P, Bencomo N, Cheng BHC, Bruel JM (2009) RELAX: Incorporating uncertainty into the specification of self-adaptive systems. In: Proceedings of the 17th international requirements engineering conference (RE ’09). IEEE Computer Society, Atlanta, pp 79–88Google Scholar
  41. Witty R, Scott D (2001) Disaster recovery plans and systems are essential. Technical Report FT-14-5021, Gartner researchGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2014

Authors and Affiliations

  • Erik M. Fredericks
    • 1
  • Byron DeVries
    • 1
  • Betty H. C. Cheng
    • 1
  1. 1.Department of Computer Science and EngineeringEast LansingUSA

Personalised recommendations