Modern software systems are becoming more and more collective, composed of many distributed and heterogeneous entities. These systems operate under continuous perturbations making manual adjustments infeasible. For a collective system to be resilient, its adaptation must also be collective, in the sense that multiple entities must adapt in a way that addresses critical runtime conditions while preserving the benefits of the collaborative interdependencies. Decision – making in such systems is distributed and possibly highly dispersed, and interaction between the entities may lead to the emergence of unexpected phenomena.
In such systems, a new approach for adaptation is needed to allow (i) multiple entities to collectively adapt with (ii) negotiations to decide which collective changes are best. Collective adaptation also raises a second important challenge: which parts of the system (things, services, people) should be engaged in an adaptation? This is not trivial, since multiple solutions to the same problem may be generated at different levels. The challenge here is to understand these levels and create mechanisms to decide the right scope for an adaptation for a given problem.
This workshop solicits papers that address new methodologies, theories and principles that can be used in order to develop a better understanding of the fundamental factors underpinning the operation of such systems, so that we can better design, build, and analyze them, as well as case studies and applications showing such approaches in action Interdisciplinary work is particularly welcomed.