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:

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:

If you are interested in pursuing a PhD in these areas, please contact me.