Research
Software engineering for intelligent, evolving, and high-stakes systems
My research examines how to engineer software-intensive systems that are increasingly autonomous, interconnected, and critical to human activity. Across these areas, the goal is consistent: to develop rigorous methods that remain meaningful under real-world constraints.
Themes
Four complementary research directions
Theme 1
Trustworthy Autonomous and Adaptive Systems
Methods and tools for engineering autonomous and AI-enabled systems that must remain safe, understandable, ethically grounded, and dependable in dynamic environments.
Expand
Theme 1
Trustworthy Autonomous and Adaptive Systems
Methods and tools for engineering autonomous and AI-enabled systems that must remain safe, understandable, ethically grounded, and dependable in dynamic environments.
This research line focuses on how intelligent systems can adapt, make decisions, and operate under uncertainty without compromising trustworthiness. It spans self-adaptation, runtime safeguards, human values, ethics, and governance mechanisms for systems whose behavior directly affects users and society.
Ethics, transparency, and governance
Recent work defines ethical-aware autonomous systems and proposes both a reference architecture and an ethics label to make the impact of digital systems more transparent and understandable to users and stakeholders.
Safeguards for AI-enabled systems
Current work also addresses safety mechanisms for large-language-model-based systems, including safeguard techniques against jailbreaks and harmful outputs, with attention to compliance and real deployment constraints.
Adaptive behavior and runtime assurance
The theme includes methods for analyzing, assuring, and evolving adaptive systems in the field, including runtime-driven approaches for systems that change over time.
Trustworthiness in socio-technical settings
Another important strand studies fairness, accountability, human values, and the role of evidence-based engineering in making intelligent systems trustworthy in practice, not only in principle.
Theme 2
Robotic Software Engineering
Software engineering methods for robots and multi-robot systems operating in real environments, collaborating with people, and supporting tasks that demand safety, flexibility, and accountability.
Expand
Theme 2
Robotic Software Engineering
Software engineering methods for robots and multi-robot systems operating in real environments, collaborating with people, and supporting tasks that demand safety, flexibility, and accountability.
This theme investigates how to engineer robotic systems with the same rigor expected of complex software-intensive systems, while respecting the realities of embodied, adaptive, and often safety-relevant behavior in the physical world.
Mission specification for non-experts
A major line of work studies how robot missions can be specified through higher-level abstractions such as behavior trees, state machines, and domain-specific languages, making robotics more accessible to domain experts who are not roboticists.
Formal methods and controller synthesis
The research also develops formal methods for robotics, including approaches such as PuRSUE, which support rigorous environment modeling and automatic synthesis of controllers from mission specifications.
Reconfiguration and runtime evolution
Another direction concerns software reconfiguration in robotics, with attention to how robotic systems can adapt, reconfigure, and continue to operate correctly as missions, environments, and system structure evolve.
Empirical robotics software engineering
The theme also includes empirical studies on how developers and end users understand robotics abstractions, how tools perform in practice, and how engineering methods can better support robotic applications in the field.
Theme 3
Software Architecture for Complex and AI-Enabled Systems
Architectural methods, reference architectures, and engineering practices for complex, distributed, and AI-enabled systems that must evolve over long time horizons.
Expand
Theme 3
Software Architecture for Complex and AI-Enabled Systems
Architectural methods, reference architectures, and engineering practices for complex, distributed, and AI-enabled systems that must evolve over long time horizons.
This research theme examines how architecture can provide structure, traceability, and long-term guidance in systems where complexity, organizational scale, AI integration, and continuous evolution make local design decisions insufficient.
Reference architectures and digital twins
Recent work contributes reference architectures for domains such as digital twins, helping clarify architectural viewpoints, concepts, and reusable structures where the literature has often remained fragmented and domain-specific.
Architecting ML-intensive systems
Another key direction studies the architectural concerns of machine-learning-intensive systems, including quality concerns, engineering checklists, and the practical implications of integrating learning components into larger systems.
Architecture as code, recovery, and boundary objects
The work also addresses architecture as code, architecture recovery, and boundary objects, exploring how architecture can become more explicit, analyzable, and usable across teams and organizational boundaries.
GenAI and technical credit in software engineering
This theme further includes work on how generative AI is reshaping software engineering processes and products, as well as the notion of technical credit, which makes valuable but often invisible technical contributions more visible and rewardable.
Theme 4
Space Software, Trustworthy Satellite Systems, and Digital Platforms
Software architectures, continuous compliance, digital twins, smart production, and trustworthy AI for the next generation of software-defined satellite systems and space ecosystems.
Expand
Theme 4
Space Software, Trustworthy Satellite Systems, and Digital Platforms
Software architectures, continuous compliance, digital twins, smart production, and trustworthy AI for the next generation of software-defined satellite systems and space ecosystems.
Space systems are becoming increasingly software-defined, connected, intelligent, and open to broader ecosystems of actors. This transformation requires new engineering approaches that combine innovation with strict demands on safety, security, and operational trustworthiness.
Future satellite architectures
Reference architectures that enable onboard AI, continuous integration and deployment, and DevSecOps-oriented evolution while isolating critical and less critical functions.
Trustworthiness and continuous compliance
Methods for software upgrades, potential re-certification, and safe AI that remains within clearly defined operational boundaries and safety constraints.
Digital twins for satellite operations
Digital twins of onboard task scheduling, telemetry-informed optimization, and anomaly detection on telemetry and execution behavior.
Smart factory and human-robot collaboration
Integrated production platforms combining robot manipulators, AGVs, human operators, augmented reality, and computer vision for the construction of satellites.
The same principles of safe autonomy and adaptive control also extend to lunar and Martian exploration, where we study architectures capable of handling unexpected situations and supporting safe runtime software updates.
This theme also feeds directly into advanced education and capacity building through SPACERAISE, an intensive and successful training initiative now in its second edition, focused on major challenges in space software engineering, with modules on robotics, artificial intelligence, and digital twins for aerospace and space applications.