=Paper=
{{Paper
|id=Vol-2705/invited1
|storemode=property
|title=The Quantum Software Engineering Path
|pdfUrl=https://ceur-ws.org/Vol-2705/invited1.pdf
|volume=Vol-2705
|authors=Ricardo Pérez-Castillo,Mario Piattini
|dblpUrl=https://dblp.org/rec/conf/qce/Perez-CastilloP20
}}
==The Quantum Software Engineering Path==
The Quantum Software Engineering Path Ricardo Pérez-del Castilloa,b, Mario Piattinib,c, Guido Peterssend, Jose Luis Heviad a Social Sciences & IT Faculty, University of Castilla-La Mancha, Av. Real Fábrica de Seda s/n, Talavera de la Reina, 45600, Spain b aQuantum by Alarcos Research Group, Paseo de la Universidad 4, Ciudad Real, 13071, Spain c University of Castilla-La Macha, Paseo de la Universidad 4, Ciudad Real, 13071, Spain d aQuantum by Alhambra, Albasanz 16, Madrid, 28037, Spain Abstract With the rise of the first quantum computers and programming languages, first quantum algorithms came up, which yield promising results. Quantum Computing is becoming more and more a mature area while an investment scalation is happening in public and private sectors. There are a lot of promising application that never comes true with quantum computers in isolation. Quantum software is necessary to achieve all the claimed, cutting-edge applications in almost every business sector. Quantum software, as other kind of software, need to be planned, designed, coded, estimated, tested, quality-assured, evolved, among other things. This means, quantum software engineering needs to be developed as a new discipline, both in academia and industry. This column provides an overview for this need, and the main challenges in the next years. Keywords 1 Quantum computing; Quantum software engineering; Quantum Programming 1. Introduction Quantum technologies with the raise of quantum computers are changing the world. Quantum computing is based on quantum mechanism principles such as superposition or entanglement [1]. Thus, quantum computing is not an evolution of classical computer science; it is actually a revolution that completely changes the computing paradigm [2]. Such quantum computing foundations (i.e., superposition and entanglement) makes it possible to address computational problems that have been unaffordable till now through classical computing. Quantum computers will be orders of magnitude more powerful than anything we have today [3]. This fact opens the door to many potential applications, influencing most business sectors, like for example [4]: • Privacy and cryptography: certification of randomness, authentication. • Supply chain and logistics: optimization problems in procurement, production and distribution, vehicle routing optimization, etc. • Chemistry: simulations of complex molecules, discovery of new materials, advanced molecular design, etc. • Economics, and financial services: Portfolio risk optimization and fraud detection, actual randomness for financial models, simulations and scenario analysis, etc. • Energy and agriculture: production of ammonia, better distribution of resources, asset degradation modelling, etc. • Medicine and health: Protein folding and drug discovery, disease detection, non-invasive and high-precision surgeries, targeted drugs design, tailored medicine, improvement of the quality of life, prediction of therapeutic prescriptions, etc. • Defence and national security programs. Q-SET’20: 1st Quantum Software Engineering and Technology Workshop, October 13, 2020, Denver — Broomfield, Colorado, USA EMAIL: ricardo.pdelcastillo@uclm.es (R. Pérez-Castillo); mario.piattini (M. Piattini); guido.peterssen@a-e.es (G. Peterssen); jluis.hevia@a- e.es (J.L. Hevia) ORCID: 0000-0002-9271-3184 (R. Pérez-Castillo); 0000-0002-7212-8279 (M. Piattini) ©️ 2020 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings (CEUR-WS.org) 1 Quantum computing is actually, a transversal and interdisciplinary opportunity for digital transformation and social impact [5]. However, these applications will not be achieved with quantum computers in isolation. The industry also needs quantum software to make such applications become reality, i.e., quantum algorithms that are specifically coded for those extremely different computers [2]. Today, some key quantum algorithms have been proposed [6], for example, unstructured or heuristic search, simulation, quantum walks, adiabatic-based optimization, among others. First quantum algorithms came up with promising results. However, whole applications for end users need to be proliferated in the next years. Actually, according to a 2019 Gartner study [7], “by 2023, 20 percent of organizations will be budgeting for QC projects, up from less than 1 percent in 2018”. In this scenario, quantum software is going to be produced in a more industrial manner, where aspects like quality, delivery, project management, or evolution of quantum software will be a must [4]. In other words, quantum software engineering will be developed as a mature research field in the next years. Even more, it is expected a new software engineering golden age for the decade of 2020s [2]. 2. The Quantum Software Engineering Quantum software engineering was first coined in 2004 by Stepney et al. [8], although has been gained importance today with the last advances in quantum computing. It seems clear that quantum computers cannot exploit the whole power of such computers without software. Also, quantum software cannot be developed without the foundations and basis of discipline like quantum software engineering. Although, we can extract many learned lessons from the past and try to apply the hands-on experience of classical software engineering, the usage or adaptation of current techniques is not enough. New knowledge base, methods and techniques must be developed for the new computing and software production paradigm. There are some challenges that needs to be addressed in the following years. 2.1. Hybrid information systems Quantum software engineering needs to integrate new quantum algorithms with the existing classical information systems. Typically, a quantum computers are remotely accessible in the cloud. So, classical computers send requests (in a form of quantum algorithms) to be executed. Then, results are received and interpreted to provide the solution for a specific problem. Actually, not every functionality will make sense to be computed quantum machines. The prohibitive costs and many simplistic functionalities still in the daily business operations of many companies prevent that. Thereby, hybrid systems (see Figure 1) will become the mainstream, at least in a near future. Figure 1. Example of architecture of a hybrid information system (adapted from [9]). 2 In order to deal with legacy, critical business operations embedded in classical information systems and the need of integrating new quantum algorithms, techniques such as reengineering or software modernization will become necessary. On the one hand, the reverse engineering stage can be used to abstract representations of quantum programs that then can be easily integrated with other abstract representations coming from the classical systems. On the other hand, new functionality coded for quantum computers, can be incorporated during the restructuring stage of the reengineering model. Additionally, quantum software should be maintained and evolved from inception to removal. Consequently, quantum software evolution must be handled throughout the whole quantum software lifecycle. 2.2. Quantum software quality Other important issue will be the quality of quantum software (as a product) but also the quality of the development processed carried out to produce this kind of software. The control and assurance of software quality (both, product and process) have been extensively studied for the classical software engineering field. However, this has to be re-think for quantum software. The main questions to be addressed in this area is how quantum software quality is measured? This is the first step since what is not measured cannot be improved. Then, how can we use such metrics in the development process? Together with this, testing of quantum programs is another challenges that need to be addressed. The testing of quantum software is quite different to the classical one. The main goal of testing is not verifying that the software works properly, the main goal is to detect the high number of defects. In this sense, classical software is certainly deterministic under a lot of conditions and constraints. Thus, the main goal is to execute the system and check the expected value with the actual value. On the contrary, quantum software is not so deterministic, it explores a search space in order to figure out the best solution. Actually, various executions of the same piece of quantum software might lead to different solutions. That is the reason for which a quantum algorithm is usually executed a certain number of times and then the most repeated solution is taken. In this non-deterministic and uncertainty context, the testing of quantum software becomes harder. New method for detecting defects in quantum software needs to be investigated in the next years. 2.3. Project management for quantum software development Quantum software engineering will also support the management of quantum software development projects. This means, that quantum software engineering must deliver quantum software that meet the initial business goal and requirements, while at the same time quality, time, and cost constraints are satisfied. Methodologies for developing quantum programs must be created or adapted from the existing ones. Effort estimation methods for quantum software development need to be provided as well, which will of course differ from the classical software estimation methods. Among other things because quantum software is developed through a highly multidisciplinary team. 3. Discussion There is a certain urgence to develop the knowledge background and foundations for the new discipline of Quantum Software Engineering. The quantum computing race speeded up in the last couple of years, so the demand of quantum software will be increased in short-, medium-term. Hence, researchers and practitioners must provide methods, techniques, and tools to develop large-scale quantum software in an appropriate way. During this path towards achieving an efficient software engineering we have to into account the Grady Booch advice: “No matter the medium or the technology or the domain, the fundamentals of sound software engineering will always apply: craft sound abstractions” [10]. 3 Acknowledgements This research has been partially funded by the SMOQUIN project (PID2019-104791RB-I00) funded by Spanish Ministry of Science and Innovation (MICINN). References [1] Rieffel, E.G. and W.H. Polak, Quantum Computing: A Gentle Introduction (Scientific and Engineering Computation). 2014, The MIT Press. [2] Piattini, M., G. Peterssen, and R. Pérez-Castillo, Quantum Computing: A New Software Engineering Golden Age. 2020. 45 SIGSOFT Softw. Eng. Notes, p. 12–14. [3] Hunter, M. The Quantum Computing Era Is Here. Why It Matters—And How It May Change Our World. 2020 Jan 16, 2020,01:07pm EST [cited 2020 19/10/2020]; Available from: https://www.forbes.com/sites/ibm/2020/01/16/the-quantum-computing-era-is-here-why-it- mattersand-how-it-may-change-our-world/. [4] Piattini, M., G. Peterssen, R. Perez-Castillo, J.L. Hevia, M.A. Serrano, G. Hernández, I.G.R.d. Guzmán, C.A. Paradela, M. Polo, E. Murina, L. Jiménez, J.C. Marqueño, R. Gallego, J. Tura, F. Phillipson, J.M. Murillo, A. Niño, and M. Rodríguez, The Talavera Manifesto for Quantum Software Engineering and Programming, in QANSWER 2020. QuANtum SoftWare Engineering & pRogramming, M. Piattini, et al., Editors. 2020, CEUR-WS: Talavera de la Reina. p. 1-5. [5] IDB (2019). Quantum technologies. Digital transformation, social impact, and cross-sector disruption. Interamerican Development Bank. [6] Montanaro, A., Quantum algorithms: an overview. npj Quantum Information, 2016. 2(1): p. 15023. [7] Burke, B., D. Cearley, and M. Horvath. Top 10 Strategic Technology Trends for 2019: Quantum Computing. 2019 13 March 2019 [cited 2020 19/10/2020]; Available from: https://www.gartner.com/en/documents/3904279/top-10-strategic-technology-trends-for-2019- quantum-comp. [8] Stepney, S., S.L. Braunstein, J.A. Clark, A. Tyrrell, A. Adamatzky, R.E. Smith, T. Addis, C. Johnson, J. Timmis, P. Welch, R. Milner, and D. Partridge, Journeys in Non-Classical Computation. A Grand Challenge for Computing Research. 2004, University of York. p. 30. [9] Sodhi, B., Quality Attributes on Quantum Computing Platforms. 2018. arXiv:1803.07407 [10] Booch, G. (2018). The History of Software Engineering. IEEE Software 35 (5), 108-114. 4