Research Overview
My research explores automated techniques for improving the performance of both software engineers and the software artefacts that they produce. I examine changes to software systems across multiple dimensions:
- Evolution - Changes at development time
- Adaptation - Changes at runtime
- Viewpoints - Meaningful changes among perspectives
- Requirements - Changes to stakeholders' needs
Additionally, I investigate security, privacy, and traceability concerns in software systems.
Research Areas
Software Engineering
Developing automated techniques and tools to improve software development processes, including code analysis, transformation, and migration.
Requirements Engineering
Investigating how stakeholder requirements drive software adaptation and evolution, with a focus on goal-oriented approaches.
Adaptive Software Systems
Building self-adaptive systems that can respond to changing environments and requirements at runtime.
Deep Learning for SE
Applying deep learning and neural networks to software engineering tasks such as code search, bug detection, and code migration.
Security & Privacy
Analyzing security requirements and developing privacy-aware systems, including work on zero trust digital forensics.
Program Transformation
Developing tools and techniques for code migration, including C-to-Rust translation and cross-language API mappings.
Current Research Projects
RustMap: C-to-Rust Migration
Collaborators: Multiple institutions
Developing program analysis and LLM-based techniques for project-scale migration of C code to safer Rust implementations.
Deep Learning for Code
Collaborators: SMU, Singapore
Building neural network models for source code analysis, including code representation learning (InferCode) and attention interpretation (AutoFocus).
Past Projects
EU SecureChange
European Union
Analyzing security requirements for air traffic control systems and developing secure change management approaches.
Adaptive Security and Privacy
ERC Advanced Grant
Research on adaptive security with applications in air traffic control.
Knowledge Transfer Projects
NATS, Huawei, IBM, CA, RealTelekom
Industry collaborations on various software engineering and requirements engineering challenges.
Research Tools & Software
fAST
Flattening Abstract Syntax Trees for Efficiency - A tool for efficient source code processing.
OpenPF
Problem Frames tool support initially developed at The Open University for requirements analysis.
TreeCaps
Tree-Based Capsule Networks for Source Code Processing, presented at AAAI 2021.
PhD Students & Supervision
I supervise PhD students in the following research areas:
- Software Engineering and Automated Techniques
- Requirements Engineering and Goal Modeling
- Deep Learning for Software Engineering
- Program Analysis and Transformation
- Security and Privacy in Software Systems
If you are interested in pursuing a PhD in these areas, please contact me.