Complex software-intensive systems are increasingly relied upon in our society to support tasks in multiple areas (e.g., manufacturing, entertainment, communications, healthcare, transportation). At the same time, these systems are also progressively affected by higher degrees of variability and uncertainties that can be introduced by run-time changes related to the lack of control over third-party system components (e.g., residing in the cloud), humans in the loop, as well as complex interactions between software and physical elements in cyber-physical systems, to name a few examples.

My research lies in the intersection of formal methods and software engineering, with a particular interest in the areas of software engineering for self-adaptive systems and software architecture. In recent years, I have devised techniques that combine lightweight formal methods and quantitative verification (probabilistic model checking) to analyze complex software-intensive systems subject to different forms of uncertainty, with applications to areas that include complex IT systems, security, and robotics.

One of the main areas in which I explore the application of these techniques is the provision of assurances for self-adaptive systems.

I also have research interests in related areas that include control theory, cyber-physical and real-time systems, as well as self-aware computing systems.

Research Projects