Abstract:
Practical quantum computing is rapidly becoming a
reality. To harness quantum computers’ real potential in software
applications, one needs to have an in-depth understanding of all
such characteristics of quantum computing platforms (QCPs),
relevant from the Software Engineering (SE) perspective. Restrictions on copying, deletion, the transmission of qubit states,
a hard dependency on quantum algorithms are few, out of
many, examples of QCP characteristics that have significant
implications for building quantum software.
Thus, developing quantum software requires a paradigm shift
in thinking by software engineers. This paper presents the key
findings from the SE perspective, resulting from an in-depth
examination of state-of-the-art QCPs available today. The main
contributions that we present include i) Proposing a general
architecture of the QCPs, ii) Proposing a programming model
for developing quantum software, iii) Determining architecturally
significant characteristics of QCPs, and iv) Determining the
impact of these characteristics on various Quality Attributes
(QAs) and Software Development Life Cycle (SDLC) activities.
We show that the nature of QCPs makes them useful mainly in
specialized application areas such as scientific computing. Except
for performance and scalability, most of the other QAs (e.g.,
maintainability, testability, and reliability) are adversely affected
by different characteristics of a QCP.