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 \textbf{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.
翻译:实际量子计算正在迅速成为现实。为了利用量子计算机在软件应用中的真正潜力,人们需要从软件工程的角度深入了解量子计算平台(QCPs)的所有这些特点,从软件工程的角度看,这与软件工程(SE)相关。对于复制、删除、传输qubit States、严格依赖量子算法的限制在很多案例中是少有的,而对于量子软件的建设具有重大影响的量子计算方法特征的例子中则很少有。因此,开发量子软件要求软件工程师在思维上进行范式转变。本文件从SE的角度介绍对当今现有最新QCPs进行深入审查得出的关键结果。我们介绍的主要贡献包括:(a) 提出QCPs的总体结构,二) 提出开发量子计算软件的方案编制模式,三) 确定量子计算机对量子计算具有重大影响的建筑学特性,以及\ textbf{iv}确定这些特性对各种质量属性(QAs)和软件开发生命周期(SDLC)活动的影响。我们所介绍的主要贡献包括:QCPs的特性性质、可变性、可变性测试性、其他可达性、可达性、可达性、可达性、可达性、可达性、可达性。