=Paper= {{Paper |id=Vol-3008/short4 |storemode=property |title=Software Quality Issues in Quantum Information Systems |pdfUrl=https://ceur-ws.org/Vol-3008/short4.pdf |volume=Vol-3008 |authors=Javier Verdugo,Moisés Rodríguez,Mario Piattini |dblpUrl=https://dblp.org/rec/conf/qce/VerduroRP21 }} ==Software Quality Issues in Quantum Information Systems == https://ceur-ws.org/Vol-3008/short4.pdf
Software Quality Issues in Quantum Information Systems
Javier Verdugo 1, Moisés Rodríguez 1 and Mario Piattini 1
1
    Alarcos Research Group, University of Castilla-La Mancha, Pº de la Universidad, 4, Ciudad Real, 13071, Spain


                   Abstract
                   Quantum computing is the technology of the 21st century. Quantum computers and envi-
                   ronments are already offering great advantages when building advanced applications in fi-
                   nance, health, or logistics. However, if industry is to boost the large-scale production of
                   quantum software, an adequate quality level must be achieved and assured. In this sense, it is
                   very important to consider quantum software quality platforms and products, and to create an
                   effective quality environment for quantum software. In this paper we will summarise some of
                   these issues.

                   Keywords 1
                   Quantum Computing, Quantum Software Quality, Quantum Quality Environment.

1. Introduction
    Quantum technology includes several research areas such as true random number generation,
quantum information, atomic quantum clocks, quantum sensors, quantum simulators, quantum
cryptography and security, quantum communication networks, and quantum internet. All these topics
and most notably quantum computing, have attracted a lot of interest in recent years. There are countless
interesting applications for these technologies, spanning several knowledge and business areas: [1]
economics and financial services, chemistry, medicine and health, supply chain and logistics, energy,
agriculture, etc. Quantum computing is also impacting different areas of computer science such as
Cybersecurity [2] and Machine Learning and Artificial Intelligence [3]-[5]. The prospects for quantum
computing are exciting, and extraordinary expectations are now driving a global effort to perfect
quantum technologies [6]. It is believed that quantum computing could also bring a new “golden age”
to software engineering [7].
    The problem comes when we realise that in order to boost large-scale production of quantum
software an adequate quality level is required [8], so that society can really benefit from the promising
quantum applications that exist in the various domains. To achieve this, we should address all the areas
of Software Engineering as defined in SWEBOK2, i.e., Design, Software Construction, Software
Maintenance, etc., and, specifically, Software Testing and Software Quality. Software Testing has been
addressed by Miranskyy and Zhang [9], and Polo [10], while Software Governance has been addressed
by Blanco and Piattini [11]. In this paper we focus on Software Quality; thus, Section 2 analyses the
landscape of quantum software quality; Section 3 addresses some of the issues (models and metrics) to
be considered when creating an efficient quality environment for quantum software; and, finally,
Section 4 summarises the conclusions and future work.




Proceedings of the 2nd Quantum Software and Engineering Workshop (QSET’21), October 19, 2021, Virtual conference
EMAIL: javier.verdugo@uclm.es (A.1); moises.rodriguez@uclm.es (A.2); mario.piattini@uclm.es (A.3)
ORCID: 0000-0002-2526-2918 (A. 1); 0000-0003-2155-7409 (A. 2); 0000-0002-7212-8279 (A. 3)
                ©️ 2021 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)
2
    https://www.computer.org/education/bodies-of-knowledge/software-engineering




                                                                                   54
2. Quality Issues in Quantum Computing
In a quantum information system, there are several factors that influence the quality of the results: the quality of
the quantum hardware, the quality of the quantum software (development and operational) platform, and the
quality of the quantum software per se.
    There are different types of quantum simulators and computers (adiabatic, gate-based, measurement-
based, etc.); however, to date, most of them still present errors, hence their name: “NISQ—Noisy
Intermediate-Scale Quantum” [12]. The Committee on Technical Assessment of the Feasibility and
Implications of Quantum Computing has analysed the milestones in the evolution of quantum computers
towards their current status as large, fault-tolerant modular quantum computers [13]. Moreover, the
underlying technology —trapped ions, neutral-atom qubits, superconductors, quantum dots,
semiconductor-based qubits, NV centre qubits, topological qubits, photons, etc.—has a decisive
influence on the maturity level of quantum computers [14]. These different technologies present varying
coherence times, gate latencies, gate fidelities, etc. [15].
    Quantum hardware is not the only important matter for achieving “high quality” quantum
information systems; software quality is also essential. In fact, Quantum Software Engineering (QSE)
is an essential contribution to the success of quantum computing. One of the principles of the Talavera
Manifesto for Quantum Software Engineering and Programming [16] establishes that “QSE assures the
quality of quantum software. Quality management for both, processes and products, is essential if
quantum software with expected quality levels is to be produced”. Unfortunately, until now, quantum
software quality issues have been largely disregarded.
    Concerning quantum software processes, to date only a few interesting works have been proposed,
mostly dealing with quantum life cycle processes [17]-[18], and the application of agile methodologies
to quantum development [19]. In this paper we focus on the following quantum product software issues:
quantum software development and execution platforms, and quantum software products.

2.1.     Platform Quality
   Sodhi & Kapur [20] have published an analysis of the impact of different quantum computing
platforms on quality attributes and SDLC activities. They experimented with the main quantum
programming platforms, examining how each one affects the main software quality characteristics:
Availability, Interoperability, Maintainability, Manageability, Performance, Reliability, Scalability,
Security, Testability, and Usability. Some of the characteristics dealt with in their study that impact the
most on quality attributes, are:
   1. A lower level of programming abstractions increasing code complexity, which has an impact
        on maintainability, testability, reliability, and availability.
   2. Platform heterogeneity, which deteriorates software cohesion, affecting maintainability,
        reliability, robustness, reusability, and the manageability and testability of the system.
   3. Remote software development and deployment, which make programming, testing, and
        debugging quantum programs slower, thus affecting maintainability and testability.
   4. Dependency on the known quantum algorithms, thereby affecting the ability to perform
        enhancement and corrective maintenance, as well as testability and interoperability (with
        classical software).
   5. Limited portability of software, which results in a lack of standardization in several areas, thus
        affecting availability, interoperability, maintainability, and scalability.
   6. Lack of native quantum operating systems, thereby decreasing performance, manageability,
        reliability, scalability, and security.
   7. Fundamentally different programming models, which can thus increase code complexity, so
        affecting maintainability, interoperability, security and testability.
   This study could help us to evaluate the design decisions that need to be taken when constructing
quantum software, and to carefully consider the influence of the given platform on every specific quality
characteristic.



                                                        55
2.2.    Software Quality
   Most of the existing research efforts related to quality in quantum software have focused in general
on quantum program verification [21] and specifically on verified compilation [22], verification
protocols [23], relational verification of quantum programs [24], formal quantum programs description
[25], formal verification and programs certification [26] and equivalence checking for quantum circuits
[27].
   In terms of metrics, most of the research deals with the measurement of the power of quantum
computing - e.g., quantum volume [28]-[29], the TQF (Total Quantum Factor) and wd (width and depth)
[30] etc. - but does not consider software features. One exception is Sicilia et al. [31], who carry out a
preliminary study on the module structure and use of quantum gates in the libraries of Microsoft’s
quantum development platform QDK (Quantum Developer Kit) using Q#.

3. Towards a Quantum Software Quality Environment
    A useful quantum software quality environment should contain, at least, a quantum quality model,
a set of quantum software metrics, and a tool for supporting the automatic gathering and visualisation
of the quantum metrics.
    ISO/IEC 25010 [32] is the de jure quality standard for software products. In the ISO/IEC JTC1
SC7/WG6 Plenary Meeting held in June 2020, experts agreed that this standard should be adopted for
Big Data and Artificial Intelligence, IoT, blockchain, cloud, Systems of Systems, XaaS, etc. To do so,
a new “Quality Engineering Division” would be established. However, for the time being, none of these
new models as yet cover quantum software.
    We propose to introduce a specific quantum software quality model aligned with the general
ISO/IEC standards family, considering the special nature of quantum computing. Firstly, the
applicability to quantum software of the existing characteristics (performance efficiency,
maintainability, portability, compatibility, etc.) must be considered. From our experience in using
quantum programming languages with software practitioners and students, we have seen, for example,
that understandability is a subcharacteristic which needs to be strongly modified for quantum programs.
In fact, it can be difficult to understand not only this new computing paradigm, but also the specific
quantum software design and programs.
    In a second step, research must be undertaken on new quality characteristics and aspects of quantum
software. For example, even if ISO/IEC 25010 does not consider either accuracy or precision as being
software quality characteristics, decoherence (due to errors in quantum computers) means that these
characteristics are in fact very important. At present, and for the foreseeable future, only Noisy
Intermediate-Scale Quantum (NISQ) technology is going to be available. Hence, we must consider both
the current quantum technologies and future ones (such as quantum fault tolerance computers) when
defining all the quality model characteristics.
    Although there is a lot of research on metrics for classical conceptual models, there is none for
quantum software. Firstly, it is important to define metrics at a conceptual level (i.e., quantum
technology-agnostic ones). For this purpose, the conceptual model could be a UML extension for
describing quantum systems [33] or a quantum circuit model [34], which abstract quantum information
as measurement entities.
    Furthermore, metrics need to be defined at the logical (technology-specific) level, taking into
account the different quantum programming languages that currently exist [35]. Both at a conceptual
and a logical level, metrics must consider the overhead that arises due to the use of the different quantum
characteristics (entanglement, superposition, non-cloning, etc.), and the different quantum gates
(Hadamard, Pauli X, Y and Z, CNOT, Controlled-Z, Toffoli, etc.).
    To support these metrics calculations, tools [36] should be created, extending (when possible)
existing open-source tools or following a metamodel approach.




                                                    56
4. Conclusions and Future Work
   Quantum computers have the potential to solve the type of tasks that today we do not even dare
dream of and which classical computers will never be able to solve (EQF, 2020). In fact, quantum
computing speeds up the process of solving algorithms that require massive parallel computations, and
so allows us to better simulate nature.
   However, to achieve all these benefits, quantum software has to be developed in an appropriate way.
We must commence with quantum software engineering now, so as to be prepared for the future and
also so as to avoid low quality quantum software with errors and productivity problems in the interim.
For that end, we need a comprehensive quantum software quality environment, including quality
models, metrics, and tools. This kind of environment could be useful not only in creating and developing
quantum software but also in overall modernisation and reengineering efforts [37].

Acknowledgements
   We would like to thank all the aQuantum members, especially Guido Peterssen and Pepe Hevia, for
their help and support. This work was partially funded by the “QHealth: Quantum Pharmacogenomics
Applied to Aging” project, the 2020 CDTI Missions Program (Center for the Development of Industrial
Technology of the Ministry of Science and Innovation of Spain), and the GEMA project (Consejería de
Educación, Cultura y Deportes de la Junta de Comunidades de Castilla La Mancha, y Fondo Europeo
de Desarrollo Regional FEDER) under Grant SBPLY/17/180501/000293.

References
[1] IDB. Quantum technologies. Digital transformation, social impact, and cross-sector disruption.
     Interamerican Development Bank. (2019)
[2] P. Wallden and E. Kashefi. CyberSecurity in the Quantum Era. Communications of the ACM 62
     (4), April. (2019) 120-129.
[3] J. Biamonte, P. Wittek, N. Pancotti, P. Rebentrost, N. Wiebe and S. Lloyd. Quantum machine
     learning, Nature 549, 195. (2017)
[4] S. Garg and G. Ramakrishnan. Advances in Quantum Deep Learning: An Overview. (2020)
     arXiv:2005.04316v1.
[5] Y. Zhang and Q. Ni. Recent advances in quantum machine learning. Quantum Engineering, 2: e34.
     (2020) https://doi.org/10.1002/que2.34.
[6] T.S. Humble and E.P. DeBenedictis. Quantum Realism. IEEE Computer 52 (6). (2019) 13-17.
[7] M. Piattini, G. Peterssen and R. Pérez-Castillo. Quantum Computing: A New Software
     Engineering Golden Age. ACM SIGSOFT Software Engineering Newsletter 45 (3), June. (2020)
     12-14.
[8] M. Piattini, M. Serrano, R. Pérez-Castillo, G. Peterssen and J.L. Hevia. Towards a Quantum
     Software Engineering. IT Professional, vol. 23, no. 1 Jan.-Feb. (2021) 62-66. doi:
     10.1109/MITP.2020.3019522.
[9] A. Miranskyy and L. Zhang. On Testing Quantum Programs. Proceedings of the 41st International
     Conference on Software Engineering: New Ideas and Emerging Results. (2019) 57-60.
     doi:/10.1109/ICSE-NIER.2019.00023. arXiv:1812.09261v1
[10] M. Polo. Quantum Software Testing. QANSWER 2020 QuANtum SoftWare Engineering &
     pRogramming. Proceedings of the 1st International Workshop on the QuANtum SoftWare
     Engineering & pRogramming, Talavera de la Reina, Spain, February 11-12. (2020) 57-63.
[11] M. Á. Blanco and M. Piattini. Adapting COBIT for Quantum Computing Governance. In M.
     Shepperd, F. Brito e Abreu, A. Rodrigues da Silva, & R. Pérez-Castillo (Eds.), Quality of
     Information and Communications Technology. Springer International Publishing. (2020) 274–
     283. https://doi.org/10.1007/978-3-030-58793-2_22
[12] J. Preskill. Quantum Computing in the NISQ era and beyond. Quantum 2, 79. (2018)
     doi.org/10.22331/q-2018-08-06-79.



                                                  57
[13] E. Grumbling and M. Horowitz. Quantum Computing Progress and Prospects. Washington DC,
     The National Academies Press. (2019)
[14] EQF. Strategic Research Agenda. European Quantum Flagship. February (2020).
[15] S. Resch and U.R. Karpuzcu. Quantum Computing: An Overview Across the System Stack. (2019)
     arXiv:1905.07240v1.
[16] M. Piattini, G. Peterssen, R. Pérez-Castillo, J.L. Hevia et al. The Talavera Manifesto for Quantum
     Software Engineering and Programming. QANSWER 2020 QuANtum SoftWare Engineering &
     pRogramming. Proceedings of the 1st International Workshop on the QuANtum SoftWare
     Engineering & pRogramming, Talavera de la Reina, Spain, February 11-12, (2020). http://ceur-
     ws.org/Vol-2561/paper0.pdf.
[17] N. Dey, M. Ghosh, S. Samir and A. Chakrabarti. The Quantum Development Life Cycle
     arXiv:2010.08053v1 cs.ET 15 Oct (2020).
[18] B. Weder, J. Barzen, F. Leymann, M.O. Salm, D. Vietz. The Quantum software lifecycle. APEQS
     2020: Proceedings of the 1st ACM SIGSOFT International Workshop on Architectures and
     Paradigms       for     Engineering      Quantum       Software       November      (2020)     2–9.
     https://doi.org/10.1145/3412451.3428497.
[19] G. Hernández and C.A. Paradela. Quantum Agile Development Framework, QUATIC 2020.
     (2020) 284-291
[20] B. Sodhi and R. Kapur. Quantum Computing Platforms: Assessing Impact on Quality Attributes
     and     SDLC      Activities    (Accepted      in ICSA          2021)    January (2021), DOI:
     10.13140/RG.2.2.20190.66886/1.
[21] R. Rand. Research Statement: Languages, Verification and Compilation for the Quantum Era.
     (2020)
     https://pdfs.semanticscholar.org/303b/7bec1053f132c7250dc50d9257da3aa8f39a.pdf?_ga=2.137
     759792.102012242.1590658429-1729744265.1580375978
[22] R. Rand, J. Paykin and S. Zdancewic. QWIRE Practice: Formal Verification of Quantum Circuits
     in Coq.14th International Conference on Quantum Physics and Logic (QPL). Bob Coecke and
     Aleks Kissinger (Eds.): EPTCS 266, (2018) 119–132.
[23] A. Gheorghiu, T. Kapourniotis and E. Kashefi. Verification of quantum computation: An overview
     of existing approaches. Theory of Computing systems. (2018) arXiv:1709.06984v2.
[24] G. Barthe, J. Hsu, M. Ying, N. Yu and L. Zhou. Relational Proofs for Quantum Programs. Proc.
     ACM Program. Lang., 4, No. POPL, Article 21. (2020)
[25] C. Cartiere. Formal Quantum Software Engineering. Introducing the Formal Methods of Software
     Engineering to Quantum Computing. (2020) https://www.researchgate.net/publication/
     338631774_Formal_Quantum_Software_Engineering_Introducing_the_Formal_Methods_of_So
     ftware_Engineering_to_Quantum_Computing.
[26] C. Chareton, S. Bardin, F. Bobot, V. Perrelle and B. Valiron. Toward certified quantum
     programming. (2020) arXiv:2003.05841v1.
[27] L. Burgholzer and R. Wille. Advanced Equivalence Checking for Quantum Circuits. (2020)
     arXiv:2004.08420v1.
[28] L. S. Bishop, S. Bravyi, A. Cross, J.M. Gambetta and J. Smolin. Quantum Volume. March 4,
     (2017).                         https://www.semanticscholar.org/paper/Quantum-Volume-Bishop-
     Bravyi/650c3fa2a231cd77cf3d882e1659 ee14175c01d5
[29] A.W. Cross, L.S. Bishop, S. Sheldon, P.D. Nation and J.M. Gambetta. Validating quantum
     computers using randomized model circuits. Phys. Rev. A 100, 032328 – Published 20 September
     (2019), doi:10.1103/PhysRevA.100.032328.
[30] M. Salm, J. Barzen, F. Leymann and B. Weder. About a Criterion of Successfully Executing a
     Circuit in the NISQ Era: What 𝑤𝑑 ≪ 1/𝜖eff Really Means. Proceedings of the 1st ACM SIGSOFT
     International Workshop on Architectures and Paradigms for Engineering Quantum Software
     (APEQS ’20), November 13, (2020). Virtual, USA. ACM, New York, NY.
[31] M.A. Sicilia, S. Sánchez, M. Mora and E. García. On the Source Code Structure of Quantum Code:
     Insights from Q# and QDK. QUATIC 2020, (2020) 292-299.
[32] ISO. ISO/IEC 25010 - Systems and software engineering -- Systems and software Quality
     Requirements and Evaluation (SQuaRE) -- System and software quality models. Ginebra,
     International Organization for Standarization. (2010)



                                                  58
[33] C.A. Pérez-Delgado and H.G. Pérez-González. Towards a Quantum Software Modeling Language.
     ICSE (Workshops) (2020), 442-444.
[34] E. Rieffel and W. Polak. Quantum Computing. A Gentle Introduction. Cambridge, Massachusetts,
     The MIT Press. (2011)
[35] S. Garhwal, M. Ghorani and A. Ahmad. Quantum Programming Language: A Systematic Review
     of Research Topic and Top Cited Languages. Archives of Computational Methods in Engineering.
     (2019) https://doi.org/10.1007/s11831-019-09372-6
[36] M. Rodríguez, M. Piattini and C. Ebert. Software Verification and Validation Technologies and
     Tools. IEEE Software 36(2). (2019) 13-24.
[37] R. Pérez-Castillo, M.A. Serrano and M. Piattini. Software modernization to embrace quantum
     technology. Adv. Eng. Softw. 151: 102933. (2021).




                                               59