Quantum computing provides a new dimension in computation, utilizing the principles of quantum mechanics to potentially solve complex problems that are currently intractable for classical computers. However, little research has been conducted about the architecture decisions made in quantum software development, which have a significant influence on the functionality, performance, scalability, and reliability of these systems. The study aims to empirically investigate and analyze architecture decisions made during the development of quantum software systems, identifying prevalent challenges and limitations by using the posts and issues from Stack Exchange and GitHub. We used a qualitative approach to analyze the obtained data from Stack Exchange Sites and GitHub projects. Specifically, we collected data from 385 issues (from 87 GitHub projects) and 70 posts (from three Stack Exchange sites) related to architecture decisions in quantum software development. The results show that in quantum software development (1) architecture decisions are articulated in six linguistic patterns, the most common of which are Solution Proposal and Information Giving, (2) the two major categories of architectural decisions are Implementation Decision and Technology Decision, (3) Softwar Development Tools are the most common application domain among the twenty application domains identified, (4) Maintainability is the most frequently considered quality attribute, and (5) Design Issues and High Error Rates are the major limitations and challenges that practitioners face when making architecture decisions in quantum software development. Our results show that the limitations and challenges encountered in architecture decision-making during the development of quantum software systems are strongly linked to the particular features (e.g., quantum entanglement, superposition, and decoherence) of those systems.
翻译:量子计算通过利用量子力学原理为计算提供了新的维度,有望解决当前经典计算机难以处理的复杂问题。然而,针对量子软件开发过程中架构决策的研究尚不充分,而这些决策对系统的功能、性能、可扩展性和可靠性具有重要影响。本研究旨在通过分析Stack Exchange与GitHub上的帖子和议题,实证调查并分析量子软件系统开发过程中的架构决策,识别普遍存在的挑战与局限。我们采用定性方法分析了从Stack Exchange站点和GitHub项目中获取的数据。具体而言,我们收集了来自87个GitHub项目的385个议题以及三个Stack Exchange站点的70个帖子,这些内容均涉及量子软件开发中的架构决策。研究结果表明,在量子软件开发中:(1)架构决策通过六种语言模式表达,其中最常见的是解决方案提议与信息提供;(2)架构决策的两大主要类别为实施决策与技术决策;(3)在已识别的二十个应用领域中,软件开发工具是最常见的应用领域;(4)可维护性是最常被考虑的质量属性;(5)设计问题与高错误率是开发者在量子软件开发中制定架构决策时面临的主要局限与挑战。我们的研究结果进一步表明,量子软件系统开发过程中架构决策所遇到的局限与挑战,与这些系统特有的特性(如量子纠缠、叠加态和退相干)密切相关。