Table of Contents
Fetching ...

Q-COSMIC: Quantum Software Metrics Based on COSMIC (ISO/IEC19761)

Francisco Valdes-Souto, Hector G. Perez-Gonzalez, Carlos A. Perez-Delgado

TL;DR

Q-COSMIC, a technique for measuring the functional size of quantum software, based on the well-regarded COSMIC standard (ISO/IEC19761) for classical software is introduced.

Abstract

Quantum engineering seeks to exploit quantum information to build, among others, computing, cybersecurity, and metrology technologies. Quantum Software Engineering (QSE) focuses on the information processing side of these technologies. Historically, quantum (software) engineering has focused on development in controlled research environments and 'in the small'. As the field progresses, we should expect to see more large-scale quantum systems to be deployed as 'real-world' products and services. An essential tool in (classical) software engineering and development has been software size metrics. Calculating/estimating the size of a piece of software, to be developed or pre-existing, is an essential step in its engineering. Quantum software will be no different. Here we introduce Q-COSMIC, a technique for measuring the functional size of quantum software, based on the well-regarded COSMIC standard (ISO/IEC19761) for classical software

Q-COSMIC: Quantum Software Metrics Based on COSMIC (ISO/IEC19761)

TL;DR

Q-COSMIC, a technique for measuring the functional size of quantum software, based on the well-regarded COSMIC standard (ISO/IEC19761) for classical software is introduced.

Abstract

Quantum engineering seeks to exploit quantum information to build, among others, computing, cybersecurity, and metrology technologies. Quantum Software Engineering (QSE) focuses on the information processing side of these technologies. Historically, quantum (software) engineering has focused on development in controlled research environments and 'in the small'. As the field progresses, we should expect to see more large-scale quantum systems to be deployed as 'real-world' products and services. An essential tool in (classical) software engineering and development has been software size metrics. Calculating/estimating the size of a piece of software, to be developed or pre-existing, is an essential step in its engineering. Quantum software will be no different. Here we introduce Q-COSMIC, a technique for measuring the functional size of quantum software, based on the well-regarded COSMIC standard (ISO/IEC19761) for classical software
Paper Structure (13 sections, 4 figures, 3 tables)

This paper contains 13 sections, 4 figures, 3 tables.

Figures (4)

  • Figure 1: Q-COSMIC Context Diagram: This figure shows a generic quantum software context diagram in Q-COSMIC. It has two software layers: a classical, and quantum one. There is data movement between the user and the classical layer, and between the classical layer and the quantum layer. In this latter case, that data movement comes in the form of a quantum state preparation, and a quantum measurement. Finally, reading/writing to/from classical and quantum data storage is also portrayed.
  • Figure 2: Quantum software FUR’s: This diagrams shows the Functional User Requirements (FURs) of a quantum large integer factoring software application. This figure is based on the ones used to exemplify the use of Q-UMLPerez-Delgado2020Perez-Delgado2022.
  • Figure 3: Q-COSMIC Context Diagram for Factor Large Integer: This shows the context diagram for the first use case, $UC_1$ of the integer factoring software application. This diagram depicts six total data movements: two eXits (2X), two Entries (2E), one Quantum eXit (1QX), and one Quantum Entry (1QE).
  • Figure 4: Diagram Context for Break RSA Use Case: Here we show the context diagram for the second use case $UC_2$ of our example software. The previous use case, $UC_1$ provides some of the functionality required by $UC_2$, and hence appears on this diagram. Importantly, while measuring the functional size of $UC_2$, we only count the data movements newly introduced in $UC_2$, and not the data movements pre-existing in $UC_2$. In this case, these consist of two Entries (2E), and two eXits (2X).