
Quantum Software Engineering Landscapes and Horizons Jianjun Zhao Kyushu University [email protected] ABSTRACT application is the problems that require efficient and accurate sim- Quantum software plays a critical role in exploiting the full po- ulation of quantum problems in nature [85, 307] from the areas, tential of quantum computing systems. As a result, it is drawing such as physics [52], chemistry [182, 204, 231] and materials sci- increasing attention recently. This paper defines the term "quantum ence [116, 299]. software engineering" and introduces a quantum software life cycle. With the rapid development of impressive quantum hardware Based on these, the paper provides a comprehensive survey of the as well as the accessibility of universal quantum devices to the current state of the art in the field and presents the challenges and researchers and professionals via Quantum-as-a-Service (QaaS) [17, opportunities that we face. The survey summarizes the technology 167], it is high time to focus our attention on engineering quan- available in the various phases of the quantum software life cycle, tum software systems to reap the benefits of quantum technol- including quantum software requirements analysis, design, imple- ogy. Meanwhile, various application domains of quantum comput- mentation, test, and maintenance. It also covers the crucial issue of ing [144, 275, 290, 291] urgently need quantum software engineer- quantum software reuse. ing methodologies and techniques to solve their specific problems. Therefore, we believe that there is an urgent need to build a com- KEYWORDS munity for quantum software engineering that focuses on devising methods, tools, and processes for developing quantum software Quantum software engineering, quantum programming, quantum systems efficiently. software life cycle, requirements analysis, design, testing and de- Quantum software development techniques aim at providing bugging, maintenance, and reuse means for creating quantum software throughout the quantum software life cycle (refer to Section 3.5). A number of quantum pro- 1 INTRODUCTION gramming approaches are available, for instance, Scaffold1 [ , 138], Qiskit [232], Q# [269], ProjectQ [272], and Quipper[115]. Moreover, "The challenge [of quantum software engineering] is to rework and the concepts are also being applied at the earlier stages of quantum extend the whole of classical software engineering into the quantum software development. For example, at the quantum software de- domain so that programmers can manipulate quantum programs with sign stage, [45, 46, 220] provides means for modeling and specifying the same ease and confidence that they manipulate today’s classical quantum software systems, and [260] studied how the characteris- programs." tics of quantum computing systems impact the quality attributes of quantum software architectures. With a variety of techniques Susan Stepney, in the 2004 report of Grand Challenges in available to a software engineer at each stage, the task of engineer- Computing Research [130]. ing a quantum software system poses significant challenges. At each development stage, the software engineer needs to employ Quantum computing is a rapidly developing field that is expected the most suitable quantum software technique for the application to make breakthroughs in many areas [20, 25, 67, 161, 204, 205]. being developed. The choice of technique can be dictated by various Quantum computing uses the principles of quantum mechanics factors, including system requirements, organizational practices, to process information and has the potential to perform specific and constraints imposed by the tools or development environments, tasks much faster than classical computing. The basis of quantum and the nature of the quantum programming (mechanics). This im- arXiv:2007.07047v1 [cs.SE] 14 Jul 2020 computing is the quantum bit (qubit). Unlike a classical computer plies that multiple techniques may be employed at each stage in bit that is assigned either 0 or 1, a qubit can be either assigned conjunction with each other. As quantum software development states that is the superposition of 0 and 1. Compared to classical techniques mature, there is a need for guidelines supporting the algorithms, quantum algorithms have the potential to solve specific development of well-engineered quantum software systems. problems with exponential acceleration. In the last two decades, In this paper, we present a comprehensive survey of quantum there has been a large amount of literature that contributed to the software engineering. We summarize the aspects of previous work development of quantum algorithms [70, 118, 192, 193, 249, 257]. that have focused mainly on quantum software engineering issues, Just like classical computing, quantum computing is applicable to while simultaneously covering various approaches across different applications in many disciplines and will have a wide impact [108]. phases of the quantum software life cycle. We have organized the There are two types of applications where quantum computers literature according to five different aspects: requirements, design, are expected to outperform classical computers [178]. The first implementation, testing, and maintenance. Some papers may cover application is the problems that require large amounts of paral- more than one aspect. For such papers, we refer them to all the lel computing, such as optimization [81, 121], encryption [194], relevant sections to ensure completeness. big data analysis [230], and machine learning [34, 76]. The other Additionally, we identify challenges and opportunities for the 2.1 Quantum Bit (Qubit) emerging research community working at the intersection between A classical bit is a binary unit of information used in classical methodologies and techniques for classical software engineering computation. It can take two possible values, 0 or 1. A quantum and problems in engineering quantum software systems. To ensure bit (or qubit) is different from the classical bit in that its stateis that our survey is self-contained, we have tried to include enough theoretically represented by a linear combination of two bases in materials to thoroughly guide the software engineering researchers the quantum state space (represented by a column vector of length who are interested in techniques and methods for engineering 2). We can define two qubits |0i and |1i, which can be described as quantum software systems. We also seek to provide quantum com- follows: puting researchers with a complete survey of software engineering 1 0 j0i = j1i = solutions to improve the development of quantum systems. 0 1 There have been surveys related to some aspects of quantum Qubits |0i and |1i are the computational basis state of the qubit. In software engineering. For example, a number of surveys [54, 98, other words, they are a set of basis of quantum state space. 102, 125, 140, 186, 239, 244, 261, 263, 276, 280, 281, 302, 311] have Any qubit |ei can be expressed as a linear combination of two been proposed for quantum programming languages, which mainly basis as α|0i + β|1i, where α and β are complex numbers, and jα j2 + focus on the language paradigms, implementations, semantics, and jβj2 = 1. This restriction is also called normalization conditions. tools. Surveys related to quantum software development environ- 1−i 1+i For example, 0.6|0i + 0.8|1i is a qubit state, and 2 j0i + 2 j1i is ments [86, 163, 236, 253] have also been proposed, from various also a qubit state, but (1-i)|0i + (1+i)|1i is not a legitimate qubit state points of view. However, as far as we know, no previous work has fo- because it does not satisfy the normalization condition. Intuitively, cused on a comprehensive survey of the whole life cycle of quantum qubits can be viewed as a superposition of classical bits. For example, software development, including quantum software requirements 0.6|0i + 0.8|1i can be considered as a superposition state of |0i and analysis, design, implementation, testing, and maintenance. |1i, where the probability for bit |0i is 0:62 = 0:36 and for bit |1i is In summary, the main contributions of this paper are as follows: 0:82 = 0:64. Note that 0:62 + 0:82 = 1 . • Definition. It defines the term "quantum software engineer- 2.2 Quantum Gate ing" and introduces a quantum software life cycle model for Just as a logic gate in a digital circuit that can modify the state of supporting quantum software development. a bit, a quantum gate can change the state of a qubit. A quantum • Survey. It provides a comprehensive survey on quantum gate can have only one input and one output (transition of a single software engineering, which is across various phases of quantum state), or it can have multiple inputs and multiple outputs quantum software life cycle, including quantum software (transition of multiple quantum states). The number of inputs and requirements analysis, design, implementation, testing, and outputs should be equal because the operators need to be reversible maintenance. which means no information can be lost in quantum computing. • Horizons. It identifies challenges, opportunities, and promis- Here, we describe two quantum gates with single input and output, ing research directions for quantum software engineering, and one quantum gate with multiple inputs and outputs. intended to promote and stimulate further research. 2.2.1 NOT Gate. The NOT gate works on a single qubit. It can The rest of this paper is organized as follows. The structure of this exchange the coefficients of two basis vectors: paper is also depicted in Table 1. Section 2 reviews the fundamental NOT ¹α j0i + βj1iº = α j1i + βj0i terminology in quantum computing. Section 3 briefly introduces the quantum software development which includes quantum pro- The quantum NOT gate is an extension of the NOT gate in classical gramming, a definition of "quantum software engineering," and the digital circuits. quantum software life cycle for quantum software development. A single input-output quantum gate can be represented by a From Section 4 to Section 8, we survey the current state of the art on 2 × 2 matrix.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages31 Page
-
File Size-