Welcome to my Research page.
I do research on Software Architecture. An architecture represents the backbone of any software system. You may use an iterative development process or adopt an agile software development production process, still, you will have to define (more or less explicitly) an architecture for your system.
I have been spending my past twenty years in (re)searching for new methods and tools for Architecting Complex Software Systems.
My research has initially looked into new methods for software architecture-based testing and analysis. During my PhD, I have been investigating on how to use software architecture for code testing and regression testing. Then, I expanded my interests to the design and verification of architectural specifications using model-checking, as well as combining architecture-based testing and model-checking. But what if a system evolves at run-time? My next research on run-time failure prediction for dynamically evolving systems has coped with this challenge by using proactive monitoring techniques. On how to use software architecture for fault tolerance has been also investigated in our book.
I then moved my focus on the role plaid by architecture descriptions. How to make (different) architectural languages interoperable has been investigated by my team in a number of papers, the most significant being titled “Providing Architectural Languages and Tools Interoperability through Model Transformation Technologies“. We also investigated on how to extend architectural languages so to make them expanding according to stakeholder concerns.
But assuming that we know how to describe our architecture, how a team can make architecture design decisions collaboratively? This line of investigation is being conducted in collaboration with the Amrita Vishwa Vidyapeetham University. Our focus is to map Group Decision Making techniques to architecture design decisions practices. Collaboration has been investigated also from another perspective, that is, on tools and approaches for collaborative Modeling. This research line has brought us to write a classification framework and a research map on collaborative Model-Driven Software Engineering.
Since we are currently running a number of Smart City projects, another current focus is on how to architect IoT and Cyber-Physical Systems. In this line of (industrial) research, we are investigating new domain-specific architectural languages for the modeling and the simulation of Situational-Aware Cyber-Physical Systems. This work is being automated inside the CAPS tool.