This is the “quantum decade” when quantum computers are proving to be more useful for some types of processing than their classical counterparts. The solutions of the future will combine classical IT with quantum algorithms and applications. However, there is very little work that addresses this issue. Each manufacturer provides specific tools for their products, which makes integration between quantum and classical systems a costly and time-consuming process. We believe that we should follow good software engineering principles and best practices to build platforms and tools that insulate software and systems engineers from implementation details and provide them with adequate support. In this paper we propose qSOA® as a mechanism for the dynamic integration of hybrid (quantum/classical) software systems and present in detail an SDK for Python. qSOA® provides a set of well-defined functions with which a classical system can access quantum products as if they were a piece of classical software, accessing the use case and not its complexities. In addition to some examples that illustrates its operation in real cases, we present the evaluation of qSOA® by 200 quantum software developers in a workshop in collaboration with AWS Braket.
This is the “quantum decade” when quantum computers are proving to be more useful for some types of processing than their classical counterparts. The solutions of the future will combine classical IT with quantum algorithms and applications. However, there is very little work that addresses this issue. Each manufacturer provides specific tools for their products, which makes integration between quantum and classical systems a costly and time-consuming process. We believe that we should follow good software engineering principles and best practices to build platforms and tools that insulate software and systems engineers from implementation details and provide them with adequate support. In this paper we propose qSOA® as a mechanism for the dynamic integration of hybrid (quantum/classical) software systems and present in detail an SDK for Python. qSOA® provides a set of well-defined functions with which a classical system can access quantum products as if they were a piece of classical software, accessing the use case and not its complexities. In addition to some examples that illustrates its operation in real cases, we present the evaluation of qSOA® by 200 quantum software developers in a workshop in collaboration with AWS Braket.
Quantum computing is quickly becoming a potentially disruptive technology that can tackle the problems inaccessible to classical computers, but the use of quantum computing in real software systems has yet to be fully explored. Present day quantum studies are largely focused on the development of algorithms and hardware, whereas engineering workflows to be used to enable smooth hybrid quantum-classical operations attract limited attention. The paper suggests a concept of quantum-ready software engineering- a systematic approach to applying established principles of software engineering to hybrid systems. In order to meet maintainability, scalability, and reliability objectives in hybrid applications, propose the adoption of a multilayered design, such as abstraction, integration, orchestration, and verification. An example concrete programming template, written in Python in Qiskit, demonstrates how quantum functions being used as modular services can be simulated with classical software. Evaluation measures (maintainability index, latency, and modularity) demonstrate the feasibility of the framework. Results indicate that the hybrid pipelines can be designed in a systematic way using quantum-classical-adapted design patterns. The study introduces a repeatable methodology, program templates, and design pattern engineering principles, which open the door to additional development of quantum DevOps and design pattern formalization. This project, by bridging the gap between classical software engineering and quantum integration, gives a platform upon which to build extraordinarily reliable, scalable systems in the Noisy Intermediate-Scale Quantum and beyond.
This paper introduces a vision for Quantum Software Development lifecycle, proposing a hybrid full-stack iterative model that integrates quantum and classical computing. Addressing the current challenges in Quantum Computing (QC) such as the need for integrating diverse programming languages and managing the complexities of quantum-classical systems, this model is rooted in the principles of DevOps and continuous software engineering. It presents a comprehensive lifecycle for quantum software development, encompassing quantum-agnostic coding, testing, deployment, cloud computing services, orchestration, translation, execution, and interpretation phases. Each phase is designed to accommodate the unique demands of QC, enabling traditional software developers to engage with QC environments without needing in-depth QC expertise. The paper presents a detailed implementation roadmap, utilizing a range of existing tools and frameworks, thereby making quantum software development more accessible and efficient. The proposed model not only addresses current challenges in quantum software development but also makes a substantial contribution to the field of Quantum Software Engineering (QSE). By proposing a structured and accessible model, it sets the stage for further advancements and research in QSE, enhancing its practicality and relevance in a wide range of applications.
Quantum computing is rapidly reaching a point in which its application design and engineering aspects have to be seriously considered. However, quantum software engineering is still in its infancy with numerous challenges, especially in dealing with the diversity of quantum programming languages and noisy intermediate-scale quantum systems. To alleviate these challenges, we propose QFaaS, a novel Quantum Function-as-a-Service framework, which leverages the advantages of the serverless model and state-of-the-art techniques to advance practical quantum computing in the NISQ era. Our framework provides essential elements of a serverless quantum system to streamline service-oriented quantum application development in cloud environments, such as combining hybrid quantum-classical computation, automating the backend selection, and adapting quantum DevOps techniques. QFaaS offers the first full-stack and unified quantum serverless platform by integrating multiple well-known quantum software development kits (Qiskit, Q#, Cirq, and Braket), quantum simulators, and cloud providers (IBM Quantum and Amazon Braket). This paper proposes the concept of quantum functions, software life cycle, system design, operation workflows, and implementation of QFaaS. We also present two practical use cases and performance evaluations on today’s quantum computers and simulators to demonstrate our framework’s capability to ease the burden on traditional engineers to expedite the ongoing quantum software transition.
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 is rapidly progressing from theoretical promise to practical implementation, offering significant computational advantages for tasks in optimization, simulation, cryptography, and machine learning. However, its integration into real-world software systems remains constrained by hardware fragility, platform heterogeneity, and the absence of robust software engineering practices. This article introduces Service-Oriented Quantum (SOQ), a novel paradigm that reimagines quantum software systems through the lens of classical service-oriented computing. Unlike prior approaches such as Quantum Service-Oriented Computing (QSOC), which treat quantum capabilities as auxiliary components within classical systems, SOQ positions quantum services as autonomous, composable, and interoperable entities. We define the foundational principles of SOQ, propose a layered technology stack to support its realization, a reference architecture for defining quantum services based on the good implementation of a classical service, and identify the key research and engineering challenges that must be addressed, including interoperability, hybridity, pricing models, service abstractions, and workforce development. This approach is of vital importance for the advancement of quantum technology because it enables the scalable, modular, and interoperable integration of quantum computing into real-world software systems independently and without relying on a dedicated classical environment to manage quantum processing.
Quantum computers (QCs) aim to disrupt the status-quo of computing - replacing traditional systems and platforms that are driven by digital circuits and modular software - with hardware and software that operate on the principle of quantum mechanics. QCs that rely on quantum mechanics can exploit quantum circuits (i.e., quantum bits for manipulating quantum gates) to achieve ‘quantum computational supremacy’ over traditional, i.e., digital computing systems. Currently, the issues that impede mass-scale adoption of quantum systems are rooted in the fact that building, maintaining, and/or programming QCs is a complex and radically distinct engineering paradigm when compared to the challenges of classical computing and software engineering. Quantum service orientation is seen as a solution that synergises the research on service computing and quantum software engineering (QSE) to allow developers and users to build and utilise quantum software services based on pay-per-shot utility computing model. The pay-per-shot model represents a single execution of instruction on quantum processing unit and it allows vendors (e.g., Amazon Braket) to offer their QC platforms, simulators, and software services to end-users. This research contributes by (i) developing a reference architecture for enabling Quantum Computing as a Service (QCaaS), (ii) implementing microservices with the quantum-classic split pattern as an architectural use-case, and (iii) evaluating the architecture based on practitioners’ feedback. The proposed reference architecture follows a layered software pattern to support the three phases of service lifecycle namely development, deployment, and split of quantum software services. In the QSE context, the research focuses on unifying architectural methods and service-orientation patterns to promote reuse knowledge and best practices to tackle emerging and futuristic challenges of architecting QCaaS.