My current research projects focus on:
Dynamic Adaptation of Service-based Applications
A key challenge posed by the Next Generation Internet landscape is that modern service-based applications need
to cope with open and continuously evolving environments and to operate under dynamic circumstances
(e.g., changes in the users requirements, changes in the availability of resources).
Indeed, dynamically discover, select and compose the appropriate services in such environment
is a challenging task. Self-adaptation approaches represent effective instruments to tackle this issue,
because they allow applications to adapt their behaviours based on their execution environment.
Unfortunately, although existing approaches support run-time adaptation, they tend to foresee the
adaptation requirements and related solutions at design-time, while working under a "closed-world" assumption.
In this research the objective is that of providing a new way of approaching the design,
operation and run-time adaptation of service-based applications, by considering the adaptivity as an
intrinsic characteristic of applications and from the earliest stages of their development.
We propose a novel design for adaptation approach implementing a complete lifecycle for the continuous
development and deployment of service-based applications, by facilitating (i) the continuous integration
of new services that can easily join the application, and (ii) the operation of applications under dynamic
circumstances, to face the openness and dynamicity of the environment.
The proposed approach has been implemented and evaluated in the mobility domain.
Experimental results demonstrate the effectiveness of our approach and its practical applicability.
Domain Specific Languages for Gameful Systems
Gamification refers to the exploitation of gaming mechanisms for serious purposes,
like promoting behavioural changes, soliciting participation and engagement in activities,
and so forth. In this research we have realized the Gamification Design Framework (GDF),
a tool for designing gamified applications through model-driven engineering mechanisms.
In particular, the framework is based on a set of well-defined modelling layers that start from the
definition of the main gamification elements, followed by the specification on how those elements are
composed to design games, and then progressively refined to reach concrete game implementation and execution.
The layers are interconnected through specialization/generalization relationships such that to realize a
multi-level modelling approach. The approach is implemented by means of JetBrains MPS,
a language workbench based on projectional editing, and has been validated through two gameful systems
in the Education and Mobility domains.
A prototype implementation of GDF and related artefacts are available at the demo GitHub repository: https://github.com/antbucc/GDF.git,
while an illustrative demo of the framework features and their exploitation for the case studies are shown in the following video
Multimodal journey planners have been introduced with the goal to provide travellers
with itineraries involving two or more means of transportation to go from one location to another
within a city. Most of them take into account user preferences, their habits and are able to notify
travellers with real time traffic information, delays, schedules update, etc..
To make urban mobility more sustainable, the journey planners of the future must include:
(1) Techniques to generate journey alternatives that take into account not only user preferences and
needs but also specific city challenges and local mobility operators resources;
(2) Agile development approaches to make the update of the models and information used by
the journey planners a self-adaptive task;
(3) Techniques for the continuous journeys monitoring able to understand
when a current journey is no longer valid and to propose alternatives.
In this research we present the experiences matured during the development of a complete solution for mobility planning based on model-driven engineering techniques.
Mobility challenges, resources and remarks are modelled by corresponding languages, which in turn support the automated derivation of a smart journey planner.
By means of the introduced automation, it has been possible to reduce the complexity of encoding journey planning policies and to make journey planners
more flexible and responsive with respect to adaptation needs.
Collective Adaptation through Multi-Agents Ensembles
Modern software systems are becoming more and more socio-technical systems composed
of distributed and heterogeneous agents from a mixture of people, their environment,
and software components. These systems operate under continuous perturbations due to the
unpredicted behaviors of people and the occurrence of exogenous changes in the environment.
In this research, we introduce a notion of ensembles for which, systems with
collective adaptability can be built as an emergent aggregation of autonomous and self-adaptive agents.
Building upon this notion of ensemble, we present a distributed adaptation approach for systems composed by ensembles:
collections of agents with their respective roles and goals. In these systems, adaptation is triggered by
the run-time occurrence of an extraordinary circumstance, called issue. It is handled by an issue resolution process that involves agents affected by the
issue to collaboratively adapt with minimal impact on their own preferences.
Central to our approach is the implementation of a collective adaptation engine (CAE) able to solve issues in a
collective fashion. The approach is instantiated in the context of a smart mobility scenario through which
its main features are illustrated. To demonstrate the approach in action and evaluate it, we exploit the DeMOCAS framework,
simulating the operation of an urban mobility scenario. We have executed a set of experiments with the goal to show how the
CAE performs in terms of feasibility and scalability. With this approach, we are able to demonstrate how collective adaptation
opens up new possibilities for tackling urban mobility challenges making it more sustainable respect to selfish
and competitive behaviours.
Automatic Migration to Microservices
Microservices have received and are still receiving an increasing attention, both from academia
and the industrial world. To guarantee scalability and availability while developing modern
software systems, microservices allow developers to realize complex systems as a set of small services
that operate independently and that are easy to maintain and evolve.
Migration from monolithic applications to microservices-based application is a challenging task
that very often it is done manually by the developers taking into account the main business
functionalities of the input application and without a supporting tool. In this research, we
present a model-driven approach for the automatic migration to microservices.
The approach is implemented by means of JetBrains MPS, a text-based metamodelling framework,
and validated using a first migration example from a Java-based application to Jolie - a programming language for