Software’s ability to adapt at run-time to changing user needs, faults, or system intrusions; changing operational environment; and resource variability has been proposed to cope with the complexity of today’s software-intensive systems. Such self-adaptive systems can reconfigure themselves, augment their own functionality, or continually optimize and recover themselves. For example, such capabilities enable applications, such as flexible industrial production, better emission reduction in exhaust gas after treatment systems, automated guided vehicles, and advanced-driver assistance systems. To master such applications, there is a need for novel solutions for federating infrastructures, programming applications and services, and composing dynamic workloads which can react to unpredictable events such as changes in data volume, availability, location, or bandwidth.

Following an open call for papers, we received 12 submissions, 7 of which were accepted. The seven articles that comprise this special issue contain a common thread on how to assure the quality of software-intensive systems exhibiting adaptive capabilities.

The first article, authored by Martin Zimmermann and Franz Wotawa, entitled “An Adaptive System for Autonomous Driving” presents an adaptive control method that can cope with faults to enable a self-driving system to reach a safe state. With the proposed method, the authors show how cyber-physical systems can adapt themselves in case of faults or changing environmental conditions.

Claudia Raibulet, Francesca Arcelli Fontana, and Simone Carettoni’s article with the title “A Preliminary Analysis and Comparison of Self-Adaptive Systems According to Different Issues” focuses on the internal software quality of self-adaptive systems. The authors analyze self-adaptive systems through the detection of code smells, architectural smells, and design patterns.

In the paper “Time-aware Selection Approach for Service Composition based on Pruning and Improvement Techniques,” Ikbel Guidara, Nawal Guermouche, Tarak Chaari, and Mohamed Jmaiel propose a service selection approach that considers time-dependent QoS values associated with temporal constraints.

Two papers focus the attention on automated monitoring of quality attributes. In their article entitled “QoS monitor as a service,” Tayir Bouasker, Mahjoub Langar, and Riadh Robbana put forward a service-based system for monitoring the quality of web services thereby addressing the volatility of the web service’s environment.

Sui Wang, Shi Ying, Meiyan Li, and Shun Jia address the challenges in cloud monitoring. Their article with the title “HSACMA: A hierarchical scalable adaptive monitoring architecture” introduces a monitoring architecture that considers physical as well as virtual infrastructure, achieves scalability relying on microservices, and adaptively adjusts the monitoring interval and data transmission strategy according to the running state of the cloud computing system.

Two articles deal with verification and validation of adaptive systems. In their article “Scen@rist: an approach for verifying self-adaptive systems using runtime scenarios,” Rômulo Gadelha, Lucas Vieira, Davi Monteiro, Felipe Vidal, and Paulo Henrique Maia investigate the use of scenario-based approaches in self-adaptive systems via a systematic mapping study and introduce an approach that uses scenarios as runtime entities for verifying self-adaptive systems.

The final article on “Testing Adaption Policies for Software Components” authored by Frédéric Dadeau, Jean-Philippe Gros, and Olga Kouchnarenko is dedicated to the validation of adaptation policies using a model-based testing approach.

These seven contributions encompass a wide range of issues on adaptive software systems thereby appealing to both the experts in the field and those who wish to obtain a snapshot on the quality aspects of adaptive software systems.