Research

Quantum Software Engineering


Quantum computing is rapidly emerging as a new computational paradigm that leverages quantum mechanics to solve certain problems far more efficiently than classical computers. Quantum Software Engineering (QSE) is an emerging discipline that focuses on designing, developing, testing, and maintaining software that runs on quantum computers or integrates quantum algorithms with classical systems. It combines principles from computer science, quantum physics, and software engineering to handle the unique challenges of quantum computation, such as superposition, entanglement, and probabilistic outcomes. Unlike traditional software engineering, QSE requires new programming models, specialised languages like Q#, Qiskit, and Cirq, and different debugging and verification techniques since quantum programs behave probabilistically and cannot be observed directly without altering their state. QSE is essential for translating theoretical quantum algorithms into practical applications in areas like cryptography, optimization, machine learning, and simulation of complex physical systems.

Ongoing projects:
  1. Generating Quantum Programs from Hand-Drawn Circuit Diagrams: Quantum circuit design is a critical step in developing quantum software, however translating hand-drawn circuit diagrams into executable code remains challenging due to the gap between domain expertise in quantum algorithms and quantum programming proficiency. We have developed QCircuit2Code, an end-to-end framework that generates executable quantum code from circuit diagrams by combining visual detection, symbolic normalization, and Large Language Model (LLM)-based code synthesis. QCircuit2Code first detects and localizes circuit components in hand-drawn diagrams, converts them into a structured intermediate representation, and then generates executable code (e.g., Qiskit) using task-specific LLM prompting.

  1. Quantum software analytics: Quantum computing systems depend on the principles of quantum mechanics to perform multiple challenging tasks more efficiently than their classical counterparts. In classical software engineering, the software life cycle is used to document and structure the processes of design, implementation, and maintenance of software applications. It helps stakeholders understand how to build an application. We have identified a set of software analytics topics and techniques in the development life cycle that can be leveraged and integrated into quantum software application development. The results of this work can assist researchers and practitioners in better understanding the quantum-specific emerging development activities, challenges, and opportunities in the next generation of quantum software.

  1. Quantum circuit generation and optimization: We develop automated quantum program synthesis frameworks that translate both structured optimization problems and natural language specifications directly into executable quantum circuits. This involves learning robust mappings from high-level problem representations such as combinatorial optimization formulations or textual task descriptions into valid quantum circuit architectures composed of parameterized gates, qubit layouts and measurement strategies. The goal is to significantly reduce the need for expert-driven circuit design by enabling automated generation of candidate quantum programs that can be rapidly instantiated and tested.