Applying Concession-based Negotiation to Architectural Tradeoffs in SQuAT

A key challenge of software architecture design is how to satisfy quality-attribute requirements, which often conflict with each other. This is usually a complex task, because there are several candidate architectures that can meet the same requirements, and the quality-attribute tradeoffs of those architectures need to be considered by the architects. In this context, our work with the SQuAT project intends to assist architects in the exploration of architectures for performance and modifiability. In particular, we have instantiated SQuAT for the case of PCM architectures [2]. From a more general perspective, SQuAT provides a modular framework based on agents (called dbots) for integrating quality-attribute analyzers and solvers, and also features a distributed search-based optimization.

Given an initial architecture, each dbot explores (by means of local, heuristic search) different design solutions, but only proposes the best one according to its quality-attribute requirements. The solutions from all dbots are then presented to the user (architect), so that she can make an informed decision about the architecture. A number of tradeoffs naturally emerge from these agent solutions, and these tradeoffs are judged by the architect. Each dbot might internally compute and discard many solutions, even if they can be relevant for the tradeoff analysis, or they could be combined with solutions from other agents and lead to more tradeoffs. Thus, despite the advantages of the distributed search, the solutions currently returned by SQuAT to the architect are limited with respect to a (global) analysis of tradeoffs among alternative architectures.

A drawback of SQuAT is that only a small subset of the Pareto frontier is returned by the dbots. If all candidate solutions explored by the dbots were to be provided (i.e., a larger subset of the design space), the architect is likely to experience information overloading issues that discourage her from making good decisions. In this context, we have investigated how negotiation techniques can help to improve the number and quality of the architectural tradeoffs offered to the architect [1]. The idea is that, in order to arrive to satisfying solutions (in terms of quality-attribute tradeoffs), all the participants (humans, or dbots acting on their behalf) should discuss and make compromises on their architectural proposals.

Negotiation techniques permit to achieve consensus among proposals generated by different dbots, while keeping the modular knowledge-based approach of SQuAT. In particular, we implemented a multilateral version of the monotonic concession protocol (MCP) that integrates performance-versus-modifiability negotiation within the SQuAT framework. We chose MCP because it models naturally the way humans seem to negotiate about architectural solutions. MCP is intended to generate “negotiated" solutions that complement the initial tradeoffs currently generated by the dbots. Basically, the outputs of the search are inputs to an MCP algorithm executed among the dbots. A key notion of MCP is that of concession, in which each dbot might propose an inferior solution (for itself) with the hope of reaching a global agreement with the other dbots. In MCP, the architectural candidates are assessed by means of utility functions associated to the dbots.

Two MCP strategies for SQuAT have been investigated. The first strategy consists of two sequential phases: i) the dbots search and produce a set of architectural alternatives, and ii) the dbots apply MCP to negotiate over those alternatives until agreeing on a final solution. The second strategy is based on the same two phases, but they are interwined in an iterative fashion. Preliminary results of experiments with a PCM case-study show that both strategies can produce more satisficing tradeoffs than those resulting from a schema of pure search (as previously in SQuAT).

Our future work involves a further assessment of the negotiation in larger PCM case-studies, as well as developing better ways of capturing architect’s preferences for the management of architectural tradeoffs.


[1] A. Monteserin, J. A. Diaz-Pace, I. Gatti, S. Schiaffino: Agent Negotiation Techniques for Improving Quality-Attribute Architectural Tradeoffs. Proceedings of PAAMS 2017, International Conference on Practical Applications of Agents and Multi-Agent Systems. In "Advances in Practical Applications of Cyber-Physical Multi-Agent Systems: The PAAMS Collection", pp 183-195. LNCS 10349 June 2017.

[2] A. S. Vidal J. A. Diaz-Pace, A. van Hoorn, S. Frank: Distributed Quality-Atribute Optimization of Software Architectures. To appear in Proceedings SBCARS, 11th Brazilian Symposium on Software Components, Architectures, and Reuse. Fortaleza, Ceará, Brazil. September 2017.
bit.ly/2gwQ8Q5