Using the CoCoME community case study for evaluating the SQuAT architecture optimization approach: results and experiences

In order to satisfy the requirements of a software system, usually also non-functional quality attributes have to be fulfilled, e.g., for performance and modifiability. An important factor is the design of the software architecture, which greatly influences the satisfaction of the non-functional requirements. With increasing size and complexity of software systems, it gets increasingly challenging for a human architect to create a suitable architecture even for only one requirement. In addition to the further increasing size of the design space for multiple requirements, quality attributes often compete with each other, which makes tradeoffs inevitable. Hence, the search for suitable software architectures can hardly be performed by a human within reasonable time. The intention of the SQuAT approach [1] is therefore to assist the architect in her search.

The SQuAT approach evaluates architectures based on quality attribute scenarios [3]. This means that the evaluation is based on the ability of an architecture to support a specific scenario. In addition, the approach is basically not restricted to a particular set of quality attributes. Thus, new scenarios and quality attributes can be added in a modular way. The so-called bots consist of the technologies and knowledge to evaluate and optimize architectures for specific scenarios. In the approach, each bot first evaluates the initial architecture, then searches for (better) alternatives independent of the others. This distributed search is then supplemented with a negotiation phase, in which the architectural candidates are shared and some bots might have to concede in order to determine a joint candidate. This procedure can be repeated to further improve the solution and satisfy as many scenarios as possible.

A prototype for performance and modifiability has been implemented to show the applicability of the approach in practice. The quality prediction is currently based on the Palladio Component Model, although the general approach is not limited to a particular model. A small case study already provided promising results and made tradeoffs visible for a model instance of limited size [2]. Results from these experiments have been presented at SSP 2017 in Karlsruhe.

To accomplish a large-scale evaluation of the SQuAT approach, we apply it to the Common Component Modelling Example (CoCoME) [1], which is one of the two case studies in the DFG Priority Programme 1593 (http://www.dfg-spp1593.de). The existing PCM models for CoCoME required some refinements. The implementation of the SQuAT bots has been customized to support additional scenarios for CoCoME. The case study consists of four scenarios for modifiability and four scenarios for performance. New strategies and features had to be developed to handle the higher complexity and larger size of CoCoME. This was done on the conceptual level, e.g., by limiting the number of candidates in the next iteration, as well as on the technical level, e.g., by using multithreading and taking advantage of the approach's modularity. Therefore, the case study does not only show the applicability of the approach in a more practical setting, but also fosters the maturity of the approach by resolving new, challenging situations.

The work with this model also revealed some limitations that can not be solved on the short term. Thus, the gained insights also provide the foundations for future work. In particular, the need of advanced concepts for interaction with the architect and suitable visualization of results became obvious. Therefore, this will be one of the directions in which we want to improve the SQuAT approach in the future.

In the proposed talk, we will report on the developments of the SQuAT approach, provide a detailed description of the CoCoME-based evaluation, and outline the planned future work on interactive and visual support.

 

[1] A Platform for Empirical Research on Information System Evolution (Heinrich, Robert, Gärtner, Stefan, Hesse, Tom-Michael, Ruhroth, Thomas, Reussner, Ralf, Schneider, Kurt and Paech, Barbara), In Proceedings of the 27th International Conference on Software Engineering and Knowledge Engineering (SEKE'15), KSI Research Inc., 2015.

[2] Distributed Quality-Attribute Optimization of Software Architectures (A. S. Vidal J. A. Diaz-Pace, A. van Hoorn, S. Frank), In Proceedings of the 11th Brazilian Symposium on Software Components, Architectures, and Reuse (SBCARS '17). Fortaleza, Ceará, Brazil. September 2017. bit.ly/2gwQ8Q5

[3] Software Architecture in Practice (Bass, Len, Clements, Paul, Kazman, Rick), 3rd revised edition, published by Addison-Wesley Professional, 2012.

 

This work is being supported by the Argentinian Ministry of Science, Technology and Productive Innovation (MINCYT), the German Federal Ministry of Education and Research (BMBF, grant no. 01DN15014), and the German Research Foundation in the Priority Programme “DFG-SPP 1593: Design For Future—Managed Software Evolution” (DFG, grant no. HO 5721/1-1).