Can Multi-Agent Consensus Improve Quality Tradeoffs in Software Architecture Optimization?
ResumoWhen designing a software architecture to fulfill quality-attribute requirements, architects normally explore and assess alternative solutions leading to different quality-attribute tradeoffs. In this context, we developed the SQuAT framework to support automated multi-objective optimization in large design spaces. SQuAT provides a modular, multi-agent architecture in which each agent represents and optimizes a particular quality attribute. However, this search strategy has problems identifying tradeoffs that satisfy all the parties (or architects’ concerns), particularly when searching for many candidate solutions and evaluating them becomes computationally costly. This is actually a general challenge for architecture optimization tools. To deal with it, SQuAT features an agent negotiation protocol that seeks consensus based on the utility of solutions as judged by each agent. In this paper, we present a parameterized heuristic that enhances the integration between search and negotiation in SQuAT, and also report on an empirical evaluation with two case studies. The results show initial evidence that using negotiation is more effective than doing a pure search to identify solutions having a balanced utility across agents, and thus, offer alternative quality-attribute tradeoffs to the architect.
Arcelli, D., Cortellessa, V., D’Emidio, M., and Di Pompeo, D. (2018). Easier: An evolutionary approach for multi-objective software architecture refactoring. In 2018 IEEE International Conference on Software Architecture (ICSA), pages 105–10509.
Bachmann, F., Bass, L., Klein, M., and Shelton, C. (2005). Designing software architectures to achieve quality attribute requirements. IEE Proceedings - Software, 152:153–165(12).
Bass, L., Clements, P., and Kazman, R. (2021). Software Architecture in Practice. Addison-Wesley Professional, 4th edition.
Becker, S., Koziolek, H., and Reussner, R. (2009). The palladio component model for model-driven performance prediction. Journal of Systems and Software, 82(1).
Di Pompeo, D. and Tucci, M. (2023). Quality attributes optimization of software architecture: Research challenges and directions.
Endriss, U. (2006). Monotonic concession protocols for multilateral negotiation. In 5th International Joint Conference on Autonomous Agents and Multiagent Systems, pages 392–399. ACM.
Fatima, S., Wooldridge, M., and Jennings, N. (2004). An agenda-based framework for multi-issue negotiation. Artificial Intelligence, 152(1):1–45.
Frank, S. (2019). Techniques for visualization and interaction in software architecture optimization. Master’s thesis, University of Stuttgart.
Herold, S., Klus, H., Welsch, Y., Deiters, C., Rausch, A., Reussner, R. H., Krogmann, K., Koziolek, H., Mirandola, R., Hummel, B., Meisinger, M., and Pfaller, C. (2007). Cocome - the common component modeling example. In The Common Component Modeling Example: Comparing Software Component Models [result from the Dagstuhl research seminar for CoCoME, August 1-3, 2007], volume 5153 of Lecture Notes in Computer Science, pages 16–53. Springer.
Hoos, H. H. (2012). Automated Algorithm Configuration and Parameter Tuning, pages 37–71. Springer Berlin Heidelberg, Berlin, Heidelberg.
Jiang, P., Zhou, Q., and Shao, X. (2020). Surrogate Model-Based Engineering Design and Optimization.
Koziolek, A. (2013). Automated Improvement of Software Architecture Models for Performance and Other Quality Attributes. PhD thesis, KIT.
Koziolek, H. and Reussner, R. H. (2008). A model transformation from the palladio component model to layered queueing networks. In Kounev, S., Gorton, I., and Sachs, K., editors, Proceedings of the SPEC International Performance Evaluation Workshop (SIPEW 2008), volume 5119 of Lecture Notes in Computer Science, pages 58–78. Springer.
Monteserin, A., Díaz Pace, J. A., Gatti, I., and Schiaffino, S. N. (2017). Agent negotiation techniques for improving quality-attribute architectural tradeoffs. In Proc. PAAMS ’17, pages 183–195.
Pace, J. A. D. and Campo, M. R. (2008). Exploring alternative software architecture designs: A planning perspective. IEEE Intell. Syst., 23(5):66–77.
Procter, S. and Wrage, L. (2019). Guided architecture trade space exploration: Fusing model based engineering design by shopping. In 2019 ACM/IEEE 22nd Int. Conf. on Model Driven Engineering. Languages and Systems (MODELS), pages 117–127.
Quesada, A. R., Romero, J. R., and Ventura, S. (2018). Interactive multi-objective evolutionary optimization of software architectures. Inf. Sci., 463-464:92–109.
Rago, A., Vidal, S. A., Diaz-Pace, J. A., Frank, S., and van Hoorn, A. (2017). Distributed quality-attribute optimization of software architectures. In Proceedings of the 11th Brazilian Symposium on Software Components, Architectures and Reuse, Fortaleza, CE, Brazil, September 18 - 19, 2017, pages 7:1–7:10.
Rekha, V. S. and Muccini, H. (2018). Group decision-making in software architecture: A study on industrial practices. Information and Software Technology, 101:51 – 63.
Stammel, J. and Reussner, R. (2009). Kamp: Karlsruhe architectural maintainability prediction. In Engels, G., Reussner, R., Momm, C., and Sauer, S., editors, 1st. Workshop des GI-Arbeitskreises Langlebige Softwaresysteme (L2S2): ”Design for Future - Langlebige Softwaresysteme”, pages 87–98.