This project deals with the issues related to the development and management of open-ended IT systems consisting of heterogeneous, highly parallel, massively distributed components with complex interactions and behaviours and with autonomy in terms of individual properties, objectives and decision-making. We shall develop a coherent, integrated set of languages, methods and tools to build systems that can operate in open-ended, unpredictable environments while adapting to changing contexts or requirements, and that behave reliably and are able to cope with failures and attacks. The more specific objectives of the project are outlined below.
To provide programmers with the appropriate linguistic ab- stractions for modelling and manipulating knowledge, behaviour, aggregation, and interactions, we shall design and implement programming/specification languages that offer the possibility of integrat- ing behavioural description and knowledge management and are based on solid mathematical ground to permit formal reasoning and property verification.
To handle collaborative scenarios with a high dynamicity of participants, we shall design interaction models adhering to the Negotiate, Commit, and Execute (NCE) schema. Moreover, to deal with unexpected events and deviations from the expected behaviours we shall develop techniques based on reversibility, allowing systems to go back to safe states, and techniques based on compensations, to remedy the effects of aborted transactions.
Global design is often more feasible for system with complex interactions than bottom-up component-wise assembly. For passing from global to local specifications, we will define engineering principles and operational guidelines for the design and analysis of collective adaptive systems. These will be based on general formal models that will lay the basis for projection algorithms to automat- ically derive not only components descriptions starting from global specifications but also to deal with resource-aware middleware and for computing emergent collective behaviour from interacting autonomous entities.
To take uncertainty and partial knowledge into account and model ”par- tial truth”, we will investigate quantitative extension of models, languages and logics that permit the consideration of probabilities, rates, quantities. We will thus develop a framework for modelling and analysing both qualitative and quantitative characteristics of interacting systems, for supporting dynamic system reconfiguration and for resolving conflicting goals.
Formal correctness and security guarantees will play an important roles in helping users gaining confidence in the developed systems. We shall deal with the enforcement of functional properties, like safety and progress, at a global level, and the prevention of misuse by either outsiders or insiders. We shall put forward both linguistic primitives and quantitative models to manage Access Control, Trust and Privacy at an appropriate level of abstraction. We shall envisage domain-dependent methodologies, ranging from static to run-time techniques, for the enforcement of global correctness.
To validate our proposal and to set up a context for discussion and communication within the consortium, we will consider a number of ”real-world” case studies, related to the challenges posed in the horizon 2020 program. They will help in identifying requirements and in providing test environments as well as forming the basis for future exploitation activities.