Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Log inSign up
Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Blog
Job Board
Q3AS

© 2026 Aqora Quantum S.A.S.

TermsPrivacyLegal Notice

Computing

Exploring design patterns in quantum software: a case study

Miriam Fernández-Osuna, Ricardo Pérez‐Castillo, José A. Cruz-Lemus, Michał Bączyk, Mario G. Piattini

Published Apr 11, 2025• 2 citations
Publisher

Abstract

Abstract Quantum computing holds great promise for solving complex problems that classical computing cannot address, with applications in various industries and sectors. However, developing efficient quantum software remains a challenge. Quantum software engineering (QSE) has emerged to address this, adapting classical software engineering practices for quantum systems. Design patterns, widely used in classical software, can provide reusable solutions for common quantum development issues, but their use in quantum software remains underexplored. This paper presents an empirical study investigating the use of design patterns in 2610 Qiskit programs from GitHub. Using the QCPD Tool to detect four design patterns (initialization, superposition, entanglement, and oracle) and QMetrics to compute software metrics, the study creates a dataset linking patterns with code characteristics. Three research questions guide the study: RQ1 examines the prevalence of design patterns in quantum software, RQ2 explores the relationship between design patterns and code metrics, and RQ3 analyzes the combinations of patterns that occur together. The findings provide insights into quantum software development, offering developers practical guidance on applying specific patterns. The results contribute to QSE by revealing key relationships between patterns and metrics, which can inform future research and tool development. These findings support improved performance, maintainability, and scalability, fostering the broader adoption of quantum computing.

DOI
10.1007/s00607-025-01467-2

Related papers

Towards a Framework of Architectural Patterns for Quantum Software Engineering

Michał Bączyk, Ricardo Pérez‐Castillo, Mario G. Piattini

Quantum software engineering (QSE) has emerged as a discipline to address the challenges associated with developing software systems in the context of advancing quantum computing technology. This paper explores architectural design patterns specific to QSE. Building on previous work highlighting the need for high-level patterns, we analyze emerging architectural approaches in quantum computing. We identify key challenges unique to hybrid quantum-classical systems and propose a preliminary taxonomy of QSE architectural patterns. These patterns address recurring design problems in areas such as quantum resource management and classical-quantum integration. We describe several potential patterns and discuss their theoretical applications in hybrid software systems. This work aims to provide a foundation for further research into standardizing QSE architectural practices, with the goal of enhancing various quality characteristics of hybrid software (e.g., modularity or maintainability) in the NISQ era and beyond.

IEEE International Conference on Quantum Computing and Engineering (QCE)•Sep 15, 2024•2 citations

A preliminary study of the usage of design patterns in quantum software

Ricardo Pérez‐Castillo, Miriam Fernández-Osuna, José A. Cruz-Lemus +1 more

Quantum computing deserve more and more attention owing to all the promising applications in several fields. These applications are achieved through quantum software. The development of quantum software still poses some challenges as the complexity of quantum algorithms, lack of abstraction mechanisms and the need to integrate classical and quantum software. These challenges could be addressed by applying some quantum software design patterns, which have been already proposed in the literature. However, there is a lack of insights about what is the extend of application of certain design patterns, and how are the characteristics of quantum circuits where these patterns are applied. Thus, this paper proposes a preliminary code repository analysis to systematically analyze the application of five design patterns: initialization, uniform superposition, oracle, entanglement and uncompute. The obtained dataset with 80 source code files in Qiskit and OpenQASM shows that initialization and uniform superposition are the most common design patterns. This study can help quantum software developers to understand how and when to apply some design patterns. Additionally, insights of this study could help to define new design patterns.

•Apr 16, 2024•6 citations

Patterns for Quantum Software Engineering

Michał Bączyk, Ricardo Pérez‐Castillo, Mario G. Piattini

As quantum computing continues to advance, the development of reliable and scalable quantum software systems becomes increasingly crucial. However, designing and implementing hybrid (quantum-classical) software systems poses unique challenges that require novel approaches and best practices. This position paper argues for the importance of developing architectural and design patterns specific to Quantum Software Engineering (QSE). We provide an overview of existing quantum software design patterns (more focused on low-level, programming details) and highlight the lack of patterns addressing hybrid software systems and architectural patterns. We discuss the key challenges that architectural patterns should address, including quantum-classical integration, maintainability, efficiency, and security. We also discuss the implications for practitioners, providing guidance on how to think high-level about hybrid software development process. Finally, we outline future research directions and emphasize the need for collaboration between the quantum computing and software engineering communities to establish a comprehensive high-level patterns framework for QSE.

•Jun 19, 2024•4 citations

Mining Quantum Software Patterns in Open-Source Projects

Neilson Carlos Leite Ramalho, Erico A. da Silva, Higor Amario de Souza +1 more

Quantum computing has become an active research field in recent years, as its applications in fields such as cryptography, optimization, and materials science are promising. Along with these developments, challenges and opportunities exist in the field of Quantum Software Engineering, as the development of frameworks and higher-level abstractions has attracted practitioners from diverse backgrounds. Unlike initial quantum frameworks based on the circuit model, recent frameworks and libraries leverage higher-level abstractions for creating quantum programs. This paper presents an empirical study of 985 Jupyter Notebooks from 80 open-source projects to investigate how quantum patterns are applied in practice. Our work involved two main stages. First, we built a knowledge base from three quantum computing frameworks (Qiskit, PennyLane, and Classiq). This process led us to identify and document 9 new patterns that refine and extend the existing quantum computing pattern catalog. Second, we developed a reusable semantic search tool to automatically detect these patterns across our large-scale dataset, providing a practitioner-focused analysis. Our results show that developers use patterns in three levels: from foundational circuit utilities, to common algorithmic primitives (e.g., Amplitude Amplification), up to domain-specific applications for finance and optimization. This indicates a maturing field where developers are increasingly using high-level building blocks to solve real-world problems.

cs.SECross-listedarXiv:2601.06281•Jan 13, 2026•0 citations

Quantum Software Engineering: Roadmap and Challenges Ahead

Juan M. Murillo, José Manuel García-Alonso, Enrique Moguel +13 more

As quantum computers advance, the complexity of the software they can execute increases as well. To ensure this software is efficient, maintainable, reusable, and cost-effective—key qualities of any industry-grade software—mature software engineering practices must be applied throughout its design, development, and operation. However, the significant differences between classical and quantum software make it challenging to directly apply classical software engineering methods to quantum systems. This challenge has led to the emergence of Quantum Software Engineering (QSE) as a distinct field within the broader software engineering landscape. In this work, a group of active researchers analyze in depth the current state of QSE research. From this analysis, the key areas of QSE are identified and explored in order to determine the most relevant open challenges that should be addressed in the next years. These challenges help identify necessary breakthroughs and future research directions for advancing QSE.

arXiv:2404.06825•ACM Transactions on Software Engineering and Methodology•Jan 29, 2025•86 citations

Mining Quantum Software Patterns in Open-Source Projects

Neilson Carlos Leite Ramalho, Érico Augusto da Silva, Higor Amario de Souza +1 more

Quantum computing has become an active research field in recent years, as its applications in fields such as cryptography, optimization, and materials science are promising. Along with these developments, challenges and opportunities exist in the field of Quantum Software Engineering, as the development of frameworks and higher-level abstractions has attracted practitioners from diverse backgrounds. Unlike initial quantum frameworks based on the circuit model, recent frameworks and libraries leverage higher-level abstractions for creating quantum programs. This paper presents an empirical study of 985 Jupyter Notebooks from 80 open-source projects to investigate how quantum patterns are applied in practice. Our work involved two main stages. First, we built a knowledge base from three quantum computing frameworks (Qiskit, PennyLane, and Classiq). This process led us to identify and document nine new patterns that refine and extend the existing quantum computing pattern catalog. Second, we developed a reusable semantic search tool to automatically detect these patterns across our large-scale dataset, providing a practitioner-focused analysis. Our results show that developers use patterns in three levels: from foundational circuit utilities, to common algorithmic primitives (e.g., Amplitude Amplification), up to domain-specific applications for finance and optimization. This indicates a maturing field where developers are increasingly using high-level building blocks to solve real-world problems.

International Conference on Mining Software Repositories (MSR)•Apr 13, 2026•0 citations
Abstract Quantum computing holds great promise for solving complex problems that classical computing cannot address, with applications in various industries and sectors. However, developing efficient quantum software remains a challenge. Quantum software engineering (QSE) has emerged to address this, adapting classical software engineering practices for quantum systems. Design patterns, widely used in classical software, can provide reusable solutions for common quantum development issues, but their use in quantum software remains underexplored. This paper presents an empirical study investigating the use of design patterns in 2610 Qiskit programs from GitHub. Using the QCPD Tool to detect four design patterns (initialization, superposition, entanglement, and oracle) and QMetrics to compute software metrics, the study creates a dataset linking patterns with code characteristics. Three research questions guide the study: RQ1 examines the prevalence of design patterns in quantum software, RQ2 explores the relationship between design patterns and code metrics, and RQ3 analyzes the combinations of patterns that occur together. The findings provide insights into quantum software development, offering developers practical guidance on applying specific patterns. The results contribute to QSE by revealing key relationships between patterns and metrics, which can inform future research and tool development. These findings support improved performance, maintainability, and scalability, fostering the broader adoption of quantum computing.
Quantum software engineering (QSE) has emerged as a discipline to address the challenges associated with developing software systems in the context of advancing quantum computing technology. This paper explores architectural design patterns specific to QSE. Building on previous work highlighting the need for high-level patterns, we analyze emerging architectural approaches in quantum computing. We identify key challenges unique to hybrid quantum-classical systems and propose a preliminary taxonomy of QSE architectural patterns. These patterns address recurring design problems in areas such as quantum resource management and classical-quantum integration. We describe several potential patterns and discuss their theoretical applications in hybrid software systems. This work aims to provide a foundation for further research into standardizing QSE architectural practices, with the goal of enhancing various quality characteristics of hybrid software (e.g., modularity or maintainability) in the NISQ era and beyond.
Quantum computing deserve more and more attention owing to all the promising applications in several fields. These applications are achieved through quantum software. The development of quantum software still poses some challenges as the complexity of quantum algorithms, lack of abstraction mechanisms and the need to integrate classical and quantum software. These challenges could be addressed by applying some quantum software design patterns, which have been already proposed in the literature. However, there is a lack of insights about what is the extend of application of certain design patterns, and how are the characteristics of quantum circuits where these patterns are applied. Thus, this paper proposes a preliminary code repository analysis to systematically analyze the application of five design patterns: initialization, uniform superposition, oracle, entanglement and uncompute. The obtained dataset with 80 source code files in Qiskit and OpenQASM shows that initialization and uniform superposition are the most common design patterns. This study can help quantum software developers to understand how and when to apply some design patterns. Additionally, insights of this study could help to define new design patterns.
As quantum computing continues to advance, the development of reliable and scalable quantum software systems becomes increasingly crucial. However, designing and implementing hybrid (quantum-classical) software systems poses unique challenges that require novel approaches and best practices. This position paper argues for the importance of developing architectural and design patterns specific to Quantum Software Engineering (QSE). We provide an overview of existing quantum software design patterns (more focused on low-level, programming details) and highlight the lack of patterns addressing hybrid software systems and architectural patterns. We discuss the key challenges that architectural patterns should address, including quantum-classical integration, maintainability, efficiency, and security. We also discuss the implications for practitioners, providing guidance on how to think high-level about hybrid software development process. Finally, we outline future research directions and emphasize the need for collaboration between the quantum computing and software engineering communities to establish a comprehensive high-level patterns framework for QSE.
Quantum computing has become an active research field in recent years, as its applications in fields such as cryptography, optimization, and materials science are promising. Along with these developments, challenges and opportunities exist in the field of Quantum Software Engineering, as the development of frameworks and higher-level abstractions has attracted practitioners from diverse backgrounds. Unlike initial quantum frameworks based on the circuit model, recent frameworks and libraries leverage higher-level abstractions for creating quantum programs. This paper presents an empirical study of 985 Jupyter Notebooks from 80 open-source projects to investigate how quantum patterns are applied in practice. Our work involved two main stages. First, we built a knowledge base from three quantum computing frameworks (Qiskit, PennyLane, and Classiq). This process led us to identify and document 9 new patterns that refine and extend the existing quantum computing pattern catalog. Second, we developed a reusable semantic search tool to automatically detect these patterns across our large-scale dataset, providing a practitioner-focused analysis. Our results show that developers use patterns in three levels: from foundational circuit utilities, to common algorithmic primitives (e.g., Amplitude Amplification), up to domain-specific applications for finance and optimization. This indicates a maturing field where developers are increasingly using high-level building blocks to solve real-world problems.
As quantum computers advance, the complexity of the software they can execute increases as well. To ensure this software is efficient, maintainable, reusable, and cost-effective—key qualities of any industry-grade software—mature software engineering practices must be applied throughout its design, development, and operation. However, the significant differences between classical and quantum software make it challenging to directly apply classical software engineering methods to quantum systems. This challenge has led to the emergence of Quantum Software Engineering (QSE) as a distinct field within the broader software engineering landscape. In this work, a group of active researchers analyze in depth the current state of QSE research. From this analysis, the key areas of QSE are identified and explored in order to determine the most relevant open challenges that should be addressed in the next years. These challenges help identify necessary breakthroughs and future research directions for advancing QSE.
Quantum computing has become an active research field in recent years, as its applications in fields such as cryptography, optimization, and materials science are promising. Along with these developments, challenges and opportunities exist in the field of Quantum Software Engineering, as the development of frameworks and higher-level abstractions has attracted practitioners from diverse backgrounds. Unlike initial quantum frameworks based on the circuit model, recent frameworks and libraries leverage higher-level abstractions for creating quantum programs. This paper presents an empirical study of 985 Jupyter Notebooks from 80 open-source projects to investigate how quantum patterns are applied in practice. Our work involved two main stages. First, we built a knowledge base from three quantum computing frameworks (Qiskit, PennyLane, and Classiq). This process led us to identify and document nine new patterns that refine and extend the existing quantum computing pattern catalog. Second, we developed a reusable semantic search tool to automatically detect these patterns across our large-scale dataset, providing a practitioner-focused analysis. Our results show that developers use patterns in three levels: from foundational circuit utilities, to common algorithmic primitives (e.g., Amplitude Amplification), up to domain-specific applications for finance and optimization. This indicates a maturing field where developers are increasingly using high-level building blocks to solve real-world problems.