Resilient systems avoid, withstand, recover from, adapt and evolve to mitigate disruptive changes with acceptable degradation in their provided services. Resilience is increasingly important for modern software and software-controlled systems, many of which are required to continually adapt their architecture and parameters in response to changing requirements, customer feedback, new business needs, platform upgrades, etc. Despite frequent changes and disruptions, software and the wide range of cyber-physical and IoT systems controlled by software are expected to function correctly and reliably. This is particularly important for software and software-controlled systems that provide services which are critical to society and the economy, e.g., in transportation, healthcare, energy production and e-government. Furthermore, since modern software should be developed to efficiently cope with changes, unforeseen failures and malicious cyberattacks, design for resilience is an area of software engineering of rapidly growing relevance.

This Special Issue comprises three articles whose novel contributions advance the state-of-the-art in the design, implementation, verification, operation, and evolution of resilient software and software-controlled systems.

The article ‘A conceptual framework for resilience—Fundamental definitions, strategies and metrics’ by Jesper Andersson, Vincenzo Grassi, Raffaela Mirandola and Diego Perez-Palacin provides a principled theoretical framework supporting the development of rigorous methodologies for the design and validation of resilient software-intensive systems. The article identifies key classes of changes faced by resilient systems, and uses them to derive a multifaceted, dynamic characterization of resilience and its concerns. The mapping of these changes and concerns to design strategies capable of addressing them, and to resilience metrics for measuring the effectiveness of such strategies will be of significant benefit to researchers, as well as to the developers and operators of a wide range of software and software-controlled systems.

The article ‘Modelling resilient collaborative multi-agent systems’ by Inna Vistbakka and Elena Troubitsyna focuses on the resilience of decentralized systems architected to operate as collaborative multi-agent systems. The article introduces a novel approach for the generic resilience-explicit formalization of the characteristics of these systems, providing Event-B specification and refinement patterns that support the rigorous modelling of their behaviour, collaboration, and dynamic reconfiguration in the presence of changes in the operating environment. An ample evaluation of the approach within an autonomous multi-robot system case study demonstrates its applicability and effectiveness, and supports its adoption by researchers and engineers from the increasingly important multi-agent systems domain.

The article ‘A framework for model-driven engineering of resilient software-controlled systems’ by Jacopo Parri, Fulvio Patara, Samuele Sampietro and Enrico Vicario introduces JARVIS, a comprehensive model-driven engineering framework for the operation and maintenance of software-controlled resilient systems. Adopting a system-of-systems perspective and underpinned by a reflective architecture that exploits digital-twin technologies, JARVIS enhances system resilience through improved reliability and recoverability achieved by means of runtime monitoring, remote actuation capabilities, and predictive maintenance processes. This timely advance in the engineering of resilient cyber-physical systems is aligned with the research agenda of Industry 4.0, and will greatly benefit both academic researchers and commercial developers of software-controlled systems and systems of systems.

The Guest Editors would like to express their gratitude to everyone who contributed to the success of the Special Issue. We would like to thank our authors for their valuable contributions; our reviewers for their thorough and rigorous work that provided comprehensive, critical and constructive comments to the authors, ensuring a high standard for the articles; the Computing Editor-In-Chief Prof. Schahram Dustdar for his professional, precious and timely support; and the Springer staff, in particular Christine Kamper and Linda Xavier, for their timely support and advice.

We hope that the readers will find the Special Issue interesting, and that its content will stimulate further research on resilient software and software-controlled systems!