=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== https://ceur-ws.org/Vol-2705/invited1.pdf
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