The research activities focused on investigating an innovative software architecture enabling the
development of context-aware and self-adaptive software applications, on developing static
verification methodologies for statically guaranteeing crucial properties of the developed software
applications, on developing runtime verification methodologies to monitor the behaviour of deployed
software and environmental conditions, and on implementing tool support.
As illustrated in our position paper [1], we considered the aggregate programming paradigm as the
main enabling technology for realizing the envisioned framework. Aggregate programming provides
an alternate approach to the standard device-centered development methodology, aiming to
dramatically simplify the design, creation, and maintenance of complex and large scale software
systems, in the context of IoT, cyber-physical systems, pervasive computing, robotic swarms, and
large-scale situated systems. The research activities also considered three other orthogonal
enabling technologies: variability modeling, cloud computing modelling, and behavioral type
systems.