Abstract
For realistic self-adaptive systems, multiple quality attributes need to be considered and traded off against each other. These quality attributes are commonly encoded in a utility function, for instance, a weighted sum of relevant objectives. Utility functions are typically subject to a set of constraints, i.e., hard requirements that should not be violated by the system. The research agenda for requirements engineering for self-adaptive systems has raised the need for decision-making techniques that consider the trade-offs and priorities of multiple objectives. Human stakeholders need to be engaged in the decision-making process so that constraints and the relative importance of each objective can be correctly elicited. This paper presents a method that supports multiple stakeholders in eliciting constraints, prioritizing quality attributes, negotiating priorities, and giving input to define utility functions for self-adaptive systems. We developed tool support in the form of a blackboard system that aggregates information by different stakeholders, detects conflicts, proposes mechanisms to reach an agreement, and generates a utility function. We performed a think-aloud study with 14 participants to investigate negotiation processes and assess the approach’s understandability and user satisfaction. Our study sheds light on how humans reason about and how they negotiate around quality attributes. The mechanisms for conflict detection and resolution were perceived as very useful. Overall, our approach was found to make the process of utility function definition more understandable and transparent.
Similar content being viewed by others
References
Abdennadher I, Rodriguez IB, Jmaiel M (2018) A utility-based approach for self-adaptive systems: Application to a smart building. In: Proceedings of the IEEE/ACS 14th international conference on computer systems and applications (AICCSA), pp 76–82. https://doi.org/10.1109/AICCSA.2017.41
Ahmad S (2008) Negotiation in the requirements elicitation and analysis process. In: Proceedings of the 19th Australian conference on software engineering (ASWEC 2008), pp 683–689. https://doi.org/10.1109/ASWEC.2008.4483263
Akhigbe O, Alhaj M, Amyot D, Badreddin O, Braun E, Cartwright N, Richards G, Mussbacher G (2014) Creating quantitative goal models: governmental experience. In: Yu E, Dobbie G, Jarke M, Purao S (eds) Conceptual modeling. Springer International Publishing, Cham, pp 466–473
Anda AA (2020) Combining goals and SysML for traceability and decision-making in the development of adaptive socio-cyber-physical systems. Ph.D. thesis, Université d’Ottawa/University of Ottawa
Asadi M, Soltani S, Gasevic D, Hatala M, Bagheri E (2014) Toward automated feature model configuration with optimizing non-functional requirements. Inf Softw Technol 56(9):1144–1165. https://doi.org/10.1016/j.infsof.2014.03.005
Berander P, Andrews A (2005) Requirements prioritization. In: Engineering and managing software requirements, pp 69–94. Springer
Boehm B (2003) Value-based software engineering: reinventing. ACM SIGSOFT Softw Eng Notes 28(2):3
Boehm B, Bose P, Horowitz E, Lee MJ (1994) Software requirements as negotiated win conditions. In: Proceedings of the international conference on requirements engineering, May 1994, pp 74–83. https://doi.org/10.1109/icre.1994.292400
Bowers KM, Fredericks EM, Cheng BHC (2018) Automated optimization of weighted non-functional objectives in self-adaptive systems. In: Colanzi TE, McMinn P (eds) Search Based Softw Eng. Springer International Publishing, Cham, pp 182–197
Bowers KM, Fredericks EM, Hariri RH, H C Cheng B (2020) Providentia: Using search-based heuristics to optimize satisficement and competing concerns between functional and non-functional objectives in self-adaptive systems. J Syst Softw 162, 110497. https://doi.org/10.1016/j.jss.2019.110497
Cegan JC, Filion AM, Keisler JM, Linkov I (2017) Trends and applications of multi-criteria decision analysis in environmental sciences: literature review. Environ Syst Dec 37(2):123–133
Cheng SW, Garlan D, Schmerl B (2006) Architecture-based self-adaptation in the presence of multiple objectives. In: Proceedings of the 2006 international workshop on self-adaptation and self-managing systems. https://doi.org/10.1145/1137677.1137679
Corkill DD (1991) Blackboard systems. AI Exp 6:40–47
Creswell JW (2008) Research design: qualitative, quantitative, and mixed methods approaches, 3 edn. Sage Publications Ltd.
Curtain C (2021) QualCoder 2.4 [Computer software]. https://github.com/ccbogel/QualCoder/releases/tag/2.4
Cámara J, Lopes A, Garlan D, Schmerl B (2016) Adaptation impact and environment models for architecture-based self-adaptive systems. Sci Comput Program 127:50–75. https://doi.org/10.1016/j.scico.2015.12.006
Dell’Anna D, Dalpiaz F, Dastani M (2019) Requirements-driven evolution of sociotechnical systems via probabilistic reasoning and hill climbing. Auto Softw Eng 26(3):513–557
Elahi G, Yu E (2012) Comparing alternatives for analyzing requirements trade-offs—in the absence of numerical data. Inf. Softw. Technol. 54(6):517–530. https://doi.org/10.1016/j.infsof.2011.10.007
Ericsson KA, Simon HA (1984) Protocol analysis: verbal reports as data. MIT Press
Erman LD, Hayes-Roth F, Lesser VR, Reddy DR (1980) The Hearsay-II speech-understanding system: integrating knowledge to resolve uncertainty. ACM Comput Surv 12(2):213–253. https://doi.org/10.1145/356810.356816
Esfahani N, Elkhodary A, Malek S (2013) A learning-based framework for engineering feature-oriented self-adaptive software systems. IEEE Trans Softw Eng 39(11):1467–1493
Faniyi F, Lewis PR et al (2014) Architecting self-aware software systems. In: WICSA’14, pp 91–94
Finstad K (2010) The usability metric for user experience. Interact Comput 22(5):323–327
Forgy CL (1989) Rete: A fast algorithm for the many pattern/many object pattern match problem. Readings in Artif Intell Databases, pp 547–559. Elsevier
Galitz WO (2007) The Essential guide to user interface design: an introduction to GUI design principles and techniques. John Wiley & Sons Inc., New York
Ghezzi C, Molzam Sharifloo A (2013) Dealing with non-functional requirements for adaptive systems via dynamic software product-lines, pp 191–213. Springer, Berlin
Grönroos M (2011) Book of Vaadin. Vaadin.com
Grünbacher P (2000) Collaborative requirements negotiation with EasyWinWin. In: Proceedings 11th international workshop on database and expert systems applications, pp 954–958. IEEE
Grünbacher P, Seyff N (2005) Requirements negotiation. In: Engineering and managing software requirements, pp 143–162. Springer
Hauser JR, Urban GL (1979) Assessment of attribute importances and consumer utility functions: Von neumann-morgenstern theory applied to consumer behavior. J Consum Res 5(4):251–262
Heaven W, Sykes D, Magee J, Kramer J (2009) A case study in goal-driven architectural adaptation. In: Software engineering for self-adaptive systems, p 109–127. Springer-Verlag, Berlin. https://doi.org/10.1007/978-3-642-02161-9_6
Hoffman R, Mueller S, Klein G, Litman J (2018) Metrics for explainable AI: challenges and prospects. XAI Metrics
Horkoff J, Yu E (2013) Comparison and evaluation of goal-oriented satisfaction analysis techniques. Require Eng 18(3):199–222. https://doi.org/10.1007/s00766-011-0143-y
Hsu CC, Sandford BA (2007) The Delphi technique: making sense of consensus. Pract Assess Res Eval 12(1):10
Inverardi P, Mori M (2013) A software lifecycle process to support consistent evolutions. In: R. de Lemos (ed.) Self-adaptive systems, vol 7475 LNCS, pp 239–264. Springer, Berlin
Kakousis K, Paspallis N, Papadopoulos G (2008) Optimizing the utility function-based self-adaptive behavior of context-aware systems using user feedback. In: OTM 2008, pp 657–674
Karlsson L, Host M, Regnell B (2006) Evaluating the practical use of different measurement scales in requirements prioritisation. Proceedings of the 5th ACM-IEEE international symposium on empirical software engineering 2006, 326–335 (2006). https://doi.org/10.1145/1159733.1159782
Kendall MG, Smith BB (1939) The problem of \(m\) rankings. Ann. Math. Statist. 10(3):275–287
Kephart J (2021) Viewing autonomic computing through the lens of embodied artificial intelligence: a self-debate
Knauss A, Damian D, Franch X, Rook A, Müller HA, Thomo A (2016) ACon: a learning-based approach to deal with uncertainty in contextual requirements at runtime. Inf Softw Technol 70:85–99. https://doi.org/10.1016/j.infsof.2015.10.001
Krejčí J (2018) Pairwise Comparison matrices and their Fuzzy extension. Springer
Lethbridge TC, Sim SE, Singer J (2005) Studying software engineers: data collection techniques for software field studies. Empirical Softw Eng 10(3):311–341. https://doi.org/10.1007/s10664-005-1290-x
Lewis C (1982) Using the ”thinking-aloud” method in cognitive interface design. IBM TJ Watson Research Center Yorktown Heights, NY
Liaskos S, Hamidi S, Jalman R (2013) Qualitative vs. quantitative contribution labels in goal models: Setting an experimental agenda. In: Proceedings of the 6th international i* workshop (iStar 2013), iStar, pp 37–42
Liaskos S, Jalman R, Aranda J (2012) On eliciting contribution measures in goal models. In: Proceedings of the 20th IEEE international requirements engineering conference, pp 21–230. IEEE. https://doi.org/10.1109/RE.2012.6345808
Ossadnik W, Schinke S, Kaspar RH (2016) Group aggregation techniques for analytic hierarchy process and analytic network process: a comparative analysis. Group Dec Negot 25(2):421–457
Paucar LHG, Bencomo N (2018) RE-STORM: mapping the decision-making problem and non-functional requirements trade-off to partially observable markov decision processes. In: Proceedings of the 13th international conference on software engineering for adaptive and self-managing systems, SEAMS ’18, pp 19–25. Association for Computing Machinery, New York, NY, USA . https://doi.org/10.1145/3194133.3195537
Paucar LHG, Bencomo N, Yuen KKF (2019) ARRoW: automatic runtime reappraisal of weights for self-adaptation. In: Proceedings of the 34th ACM/SIGAPP symposium on applied computing, pp 1584–1591
Poladian V, Sousa JP, Garlan D, Shaw M (2004) Dynamic configuration of resource-aware services. In: Proceedings of the 26th international conference on software engineering, pp 604–613 . https://doi.org/10.1109/ICSE.2004.1317482
Proctor M (2011) Drools: a rule engine for complex event processing. In: International symposium on applications of graph transformations with industrial relevance, pp 2–2. Springer
Robinson WN (1996) Automated assistance for conflict resolution in multiple perspective systems analysis and operation. In: Joint proceedings of the 2nd international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints ’96) on SIGSOFT’96 workshops, pp 197–201
Robinson WN, Fickas S (1994) Supporting multi-perspective requirements engineering. In: Proceedings of IEEE international conference on requirements engineering, pp 206–215. IEEE
Rojas JM, Fraser G, Arcuri A (2015) Automated unit test generation during software development: A controlled experiment and think-aloud observations. In: ACM international symposium on software testing and analysis (ISSTA), 2015. ACM
Saaty R (1987) The analytic hierarchy process–what it is and how it is used. Math Modell 9(3):161–176
Salehie M, Tahvildari L (2012) Towards a goal-driven approach to action selection in self-adaptive software. Softw Pract Exp 42(2), 211–233
Sawyer P, Bencomo N, et al (2010) Requirements-aware systems: a research agenda for RE for self-adaptive systems. In: RE’10, pp 95–103
Schoop M, Jertila A, List T (2003) Negoisst: a negotiation support system for electronic business-to-business negotiations in e-commerce. Data Knowl Eng 47(3):371–401
Serral E, Sernani P, Dalpiaz F (2018) Personalized adaptation in pervasive systems via non-functional requirements. J Ambient Intell Human Comput 9(6):1729–1743
Serral E, Sernani P, Dragoni AF, Dalpiaz F (2017) Contextual requirements prioritization and its application to smart homes. In: Braun A, Wichert R, Maña A (eds) Ambient intelligence. Springer International Publishing, Cham, pp 94–109
Song H, Barrett S, Clarke A, Clarke S (2013) Self-adaptation with end-user preferences: using run-time models and constraint solving. In: MODELS’13
Sousa JP, Balan RK, Poladian V, Garlan D, Satyanarayanan M (2008) User guidance of resource-adaptive systems. In: ICSOFT 2008, pp 36–44
Szymanski L, Sniezynski B, Indurkhya B (2018) A multi-agent blackboard architecture for supporting legal decision-making. Comput Sci 19(4)
Thomas KW (1992) Conflict and conflict management: Reflections and update. J Org Behav pp 265–274
Van Lamsweerde A, Darimont R, Letier E (1998) Managing conflicts in goal-driven requirements engineering. IEEE Trans Softw Eng 24(11):908–926. https://doi.org/10.1109/32.730542
Van Someren MW, Barnard YF, Sandberg JA (1994) The think aloud method: a practical approach to modelling cognitive processes, 1 edn. Academic Press
Von Neumann J, Morgenstern O (1953) Theory of games and economic behavior. Princeton University Press, Princeton
Voola P, Babu AV (2013) Comparison of requirements prioritization techniques employing different scales of measurement. ACM SIGSOFT Softw Eng Notes 38(4):1–10. https://doi.org/10.1145/2492248.2492278
Vora P (2009) Web application design patterns. Morgan Kaufmann
Wallace C, Cook C, Summet J, Burnett M (2002) Assertions in end-user software engineering: a think-aloud study. In: Proceedings IEEE 2002 symposia on human centric computing languages and environments, pp 63–65. IEEE
Walsh WE, Tesauro G, Kephart JO, Das R (2004) Utility functions in autonomic systems. In: Proceedings of the international conference on autonomic computing, May 2014, pp 70–77. https://doi.org/10.1109/ICAC.2004.1301349
Wohlrab R, Garlan D (2021) Defining utility functions for multi-stakeholder self-adaptive systems. In: F. Dalpiaz, P. Spoletini (eds.) Require Eng Found Softw Quality, pp 116–122. Springer International Publishing, Cham. https://doi.org/10.1007/978-3-030-73128-1_8
Acknowledgements
We would like to thank all participants for their help and support with the study. This work is supported in part by the Wallenberg AI, Autonomous Systems and Software Program (WASP) funded by the Knut and Alice Wallenberg Foundation, by award N00014172899 from the Office of Naval Research and by the NSA under Award No. H9823018D000. Any views, opinions, findings and conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the Office of Naval Research or the NSA.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Wohlrab, R., Garlan, D. A negotiation support system for defining utility functions for multi-stakeholder self-adaptive systems. Requirements Eng 28, 3–22 (2023). https://doi.org/10.1007/s00766-021-00368-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-021-00368-y