Software Engineering for Collective Cyber-Physical Ecosystems
Roberto Casadei, Gianluca Aguzzi, Giorgio Audrito, Ferruccio Damiani, Danilo Pianini, Giordano Scarso, Gianluca Torta, Mirko Viroli
TL;DR
The paper investigates software engineering for large-scale cyber-physical ecosystems through a collective computing lens, arguing that treating systems as collectives enables uniform coordination and emergent behaviour. It surveys the state-of-the-art across macroprogramming, aggregate computing, collective learning, and ensemble models, and discusses mapping problems and human integration within CCPEs. It identifies key challenges—handling homogeneity/heterogeneity, DSL/middleware trade-offs, bridging global/local perspectives, human-in-the-loop integration, and collective learning—and outlines a research agenda with toolchains, methodologies, and verification approaches. The work has practical significance for designing scalable, resilient, and self-adaptive cyber-physical infrastructures, including swarm robotics, smart cities, and edge-cloud ecosystems.
Abstract
Today's distributed and pervasive computing addresses large-scale cyber-physical ecosystems, characterised by dense and large networks of devices capable of computation, communication and interaction with the environment and people. While most research focusses on treating these systems as "composites" (i.e., heterogeneous functional complexes), recent developments in fields such as self-organising systems and swarm robotics have opened up a complementary perspective: treating systems as "collectives" (i.e., uniform, collaborative, and self-organising groups of entities). This article explores the motivations, state of the art, and implications of this "collective computing paradigm" in software engineering, discusses its peculiar challenges, and outlines a path for future research, touching on aspects such as macroprogramming, collective intelligence, self-adaptive middleware, learning, synthesis, and experimentation of collective behaviour.
