量子软件工程:旧元素与新创意的结合;借鉴他人成果的创新应用

《Journal of Web Engineering》:Quantum Software Engineering: Something Old, Something New; Something Borrowed, Something Blue

【字体: 大 中 小 】 时间:2026年03月10日 来源:Journal of Web Engineering 1

编辑推荐:

  摘要:量子软件工程近年来受到了广泛关注。许多传统的软件工程活动都增设了量子软件相关的议题或研讨会,这表明量子软件正成为一个热门的研究领域,越来越多的软件工程研究人员正在为其发展做出贡献。本文探讨了旨在解决在工业领域使用量子程序时出现的问题的软件工程研究。本文基于2025年夏季在芬

  摘要:量子软件工程近年来受到了广泛关注。许多传统的软件工程活动都增设了量子软件相关的议题或研讨会,这表明量子软件正成为一个热门的研究领域,越来越多的软件工程研究人员正在为其发展做出贡献。本文探讨了旨在解决在工业领域使用量子程序时出现的问题的软件工程研究。本文基于2025年夏季在芬兰赫尔辛基举行的IEEE量子软件研讨会(Quantum Software: Quantum Software Engineering 2025)上的主题演讲。具体而言,我们讨论了量子软件工程的现状、其新颖之处以及与其他软件工程分支的联系。此外,基于这些研究,我们还评估了量子软件工程在满足行业期望方面的成熟度。

第1节 引言
量子计算是一种利用量子比特(qubits)进行计算的新方法。其强大之处在于量子力学概念,如叠加和纠缠,这些概念可能使量子计算机比传统计算机更快地解决某些问题。例如,天气预报涉及复杂的计算,这对经典计算机来说非常困难[7]。一台完全发展的量子计算机可以用远少于传统计算机的步骤来解决这些难题。量子计算的首批实际应用可能在于优化问题,尽管在这个问题上尚未达成普遍共识[12]。
在软件方面,编写和运行量子程序面临重大挑战[19]、[23]。虽然存在用于量子计算的编程语言,但开发者仍然需要像设计经典电路一样考虑量子电路,而且开发通常处于较低的抽象层次。部署量子程序需要多个步骤:首先必须将电路转换成特定量子计算机可以执行的形式,然后发送到量子处理器;通常通过激光脉冲等机制进行控制;最后,必须读取和分析结果以确保准确性。最后,经典软件在管理这些过程、协调量子执行、解释结果以及处理经典系统与量子系统之间的通信接口方面起着关键作用。
本文探讨了旨在解决在工业领域使用量子程序时出现的问题的软件工程研究。本文基于2025年夏季在芬兰赫尔辛基举行的IEEE量子软件研讨会(Quantum Software: Quantum Software Engineering 2025)上的主题演讲[16]。
本文的其余部分结构如下:第2至5节讨论了量子软件工程的多个方面,包括与过去的连续性和联系、代表未来乐观的新事物、从其他领域借鉴的内容,以及象征清晰度和重点的“蓝色元素”。第6节提出了推进量子软件工程技术和实践发展的行动号召。

第2节 量子软件工程:旧有的基础
量子软件工程(QSE)的基础深深植根于已建立的数学和算法概念。量子计算的核心依赖于线性代数的原理,利用狄拉克符号和矩阵乘法等概念来描述和操作量子状态。这是计算机科学中长期以来的做法的延续,其中硬件操作都有正式的数学结构支持。
此外,许多早期的量子算法都受到经典计算技术的启发或直接扩展自经典计算技术。Grover搜索算法和Shor算法是最著名的例子,展示了如何利用量子加速来解决经典计算问题,如搜索和因式分解。尽管其背后的物理原理是新的,但问题领域和设计高效算法的目标在计算机科学中是众所周知的挑战。目前实际有用的量子算法仍然有限,这进一步强调了QSE不应重新发明轮子,而是应将经过验证的算法方法适应到量子范式中。
当今量子编程的现状类似于20世纪50年代的经典计算初期,这也是一个“旧有的挑战”。尽管存在Qiskit、OpenQASM、Silq和Q#等高级量子编程语言,但开发者仍然主要需要考虑量子电路。这种低级别的、以门为中心的软件开发方法带来了重大挑战,对于没有量子力学背景的人来说,编程过程难以理解。有关这些编程语言及其特性的更多详细信息,请参见表1。
这种低级别的开发范式影响了整个软件生命周期。调试量子程序本质上很困难,因为逐步执行往往会破坏叠加等基本量子特性。来自噪声硬件(NISQ时代系统)[20]的结果具有统计性质,这使得迭代开发和传统验证变得复杂。此外,将高级电路转换为特定量子计算机支持的硬件特定电路的编译过程引入了一个经典时代的问题:需要适应和优化代码以适应多样且快速变化的硬件配置。这提醒软件工程界,一些最基本的抽象和工具开发挑战并未消失,而是以新的复杂形式重新出现。
表1 常用的量子编程语言及其特性
量子解决方案的总体架构并非纯粹的量子系统,而是一个复杂的混合系统。QSE的成功将取决于其在新环境中利用成熟软件工程实践(例如[2]、[22])的能力。从用户需求和系统需求到验证和操作,整个过程本质上仍然是经典的软件工程工作。量子组件最终只是另一种类型的硬件,类似于图形处理单元(GPUs),必须由经典软件控制和指挥。
核心的软件工程概念,如编程语言研究、工具链开发和系统架构原则,必须进行适应,而不是放弃。即使在QSE中应用研究方法,也经常直接借鉴经典领域的做法,包括文献调查和软件仓库的挖掘。因此,QSE从根本上依赖于使用已知的经典软件工程方法来解决量子系统的独特挑战,确保设计、验证和维护等问题能够借鉴数十年的经验。

第3节 量子软件工程:新的方面
几十年来,人们已经理解了量子计算的基本原理。然而,从软件工程的角度来看,量子计算引入了一些真正新的范式。经典软件运行在经典(数字)计算机上,使用比特作为基本数据单位。当然,经典软件也可以实现多值逻辑。经典软件还使用布尔运算、分支、循环等。经典软件是确定性的,即给定相同的输入和环境时,它总是产生相同的输出。经典软件工程已经成熟,并拥有自己的生态系统、工具、编译器、调试器、操作系统和优化库。它在多个领域都有很好的扩展性,适用于大多数日常任务,例如Web和数据库。经典软件的错误率很低,可以通过标准软件工程技术和一些硬件冗余来管理可靠性。
通常,“量子软件”指的是为利用量子硬件的能力而设计的软件或用于模拟量子硬件的软件。量子软件引入了一些需要特别关注的新概念。在这里,我们解释了在新兴且有前景的QSE领域中需要考虑的新方面。
量子计算系统使用量子比特(而不是比特),这些量子比特可以处于叠加状态或发生纠缠,从而实现干涉效应。这些概念没有经典的对应物,因为每个操作都是可逆的,而在经典计算中,每个操作都是不可逆的。因此,量子计算可以通过利用叠加、干涉和纠缠为特定问题提供加速,例如因式分解,在读取结果之前这些操作仍然是可逆的,而读取结果后计算就变得不可逆了。
量子计算可以通过不同的模型实现,包括基于电路的模型,以及量子退火和基于测量的模型等替代范式。实际上,大量的现代方法依赖于混合量子-经典计算,其中经典计算机几乎管理所有的逻辑控制、优化循环和数据处理,而量子处理器执行特定的计算和子程序,从而受益于量子并行性。一些著名的混合量子-经典算法示例包括量子近似优化算法(QAOA)和变分量子特征值求解器(VQE)。其中,QAOA是一种用于解决组合优化问题的混合迭代方法,在噪声中等规模量子时代(NISQ)设备中得到了广泛研究。相比之下,VQE是一种用于量子化学、量子模拟和优化问题的量子混合算法,用于找到给定物理系统的基态。给定一个初始猜测,量子处理器计算系统相对于可观测属性的期望值,然后使用经典优化器来改进这个猜测。该算法基于量子力学的变分方法。
在编程和工具方面,量子软件生态系统发展迅速,已经有许多量子语言和量子软件开发环境可用,同时新的工具也在不断涌现。我们有OpenQASM和Qiskit等低级语言,用于直接控制量子电路,而更高层次的抽象——包括Silq、Q#和PennyLane等框架——为量子算法和混合量子-经典计算提供了更丰富的表达能力。量子软件开发依赖于混合量子-经典工作流程。在这种方法中,经典计算负责协调量子操作。
除了量子编程语言之外,一系列扩展的工具链支持先进的QSE实践:可以应用持续集成和持续交付(CI/CD)管道来处理我们的量子代码,GitHub工作流程实现了现代化的自动化QSE流程。新的量子版本控制、量子调试和量子测试策略正在出现。量子开发者可以利用IBM Quantum Experience、Amazon Braket、Microsoft Azure Quantum和各种本地模拟器等平台进行原型设计、测试、验证和部署他们的量子应用程序。量子电路模拟器使开发者能够在将电路发送到实际硬件之前对其进行实验[10]。量子电路模拟器对于有效的量子教育也是不可或缺的[11]。“量子计算”中的“量子”一词指的是系统用于计算输出的量子力学。在物理学中,量子是任何物理实体的最小单位,通常指原子或亚原子粒子,例如电子、中子和光子。量子计算是一个快速发展的研究领域,预计将在多个工业领域带来革命[25]。量子计算利用量子力学概念来处理信息,并以比经典计算机更快的速度完成特定任务。不同的研究专注于开发量子算法[5]、[9]、[17]。与经典计算机相比,量子计算机在两个方面表现出优势:1)当问题需要大量并行计算时,例如大数据分析[14]、[25]、数据安全[25]和机器学习[1];2)当问题需要在自然科学中实现精确和有效的计算时,例如物理学[3]、材料科学[8]和化学[15]。
经典计算机和量子计算机之间的基本区别在于量子比特(Qubit)原理[25]。与经典计算机的比特(0,1)不同,量子比特可以处于0和1的叠加状态。这意味着一个量子系统可以同时处于所有可能的状态,而不仅仅是一个特定的状态。在量子计算机中,量子寄存器可以处于所有可能的0和1的叠加状态,而在经典计算机中,寄存器一次只有一个值。概括来说,量子计算机相比经典计算机具有显著的优势,因为n位量子比特具有固定的单一状态[25]。展望未来,需要进一步发展几个基本的软件工程原则以全面支持量子计算。诸如抽象这样的核心概念仍然不成熟,因为当前的量子编程语言和框架暴露了过多的底层硬件复杂性。模块化同样具有挑战性,因为组合和重用量子组件并不像在经典软件工程中那样简单。在当今的混合量子-经典架构中,分区虽然容易实现,但当量子算法规模扩大时就会变得更加复杂。此外,测试实践必须适应概率输出、噪声、故障、错误以及硬件的变化。最后,解释结果(尤其是在存在错误的情况下)引入了一个新的复杂性层次,这需要专门的工具和方法,如量子纠错工具和技术。这些领域共同代表了量子软件工程(QSE)未来研究的核心要求和方向。随着QSE领域的发展,仍有许多紧迫的挑战需要解决。一个主要的需求是开发一个真正的硬件抽象层(HAL),它既能保护开发者免受硬件限制,又能实现高性能执行。下一代量子算法设计工具的出现同样重要。量子软件社区还需要一个全面且易于使用的算法库,使从业者能够构建可靠的、模块化的组件,而无需重新发明基础程序。在硬件层面,相干时间、连接性和错误率的限制仍然影响着实际可实现的程度。此外,不可克隆定理对调试和测试施加了内在的限制——量子状态不能被复制用于检查或重放——这迫使人们开发不依赖于经典范式的新的测试方法。表2总结了量子软件工程与经典软件工程之间的关键新概念。应对这些挑战对于将QSE发展成为一个成熟的学科至关重要。表2总结了量子软件与经典软件之间的关键新差异。总的来说,这些讨论突出了量子计算领域的两个核心新主题。首先,量子软件生态系统正在以惊人的速度扩展:新的量子编程语言、混合量子-经典框架、量子软件开发工具链、量子模拟器和量子云平台正在迅速出现,为量子软件研究人员和开发者提供了大量新兴和不断发展的技术。其次,这种增长伴随着诸多限制和多样化的研究方向。量子硬件的限制、缺乏真正的抽象、不成熟的模块化和测试实践、在噪声和错误环境下解释结果的复杂性,以及不可克隆定理等基本量子原理都带来了需要解决的挑战。对下一代量子软件工具、强大的量子算法库和真正的量子硬件抽象层的需求进一步表明,该领域既充满创新,也受到未解决的实际和理论问题的制约。

第4节 量子软件工程:借鉴他人成果
如今,毫无疑问,量子软件工程(QSE)引起了极大的兴趣。在经典软件工程的发展过程中,我们学到的一个主要经验是,软件需要流程,而流程需要方法论来帮助完成各项活动,无论是需求规格制定、架构设计、详细设计、实现还是测试。对于量子软件开发流程,可以假设经典软件开发的基本策略也是有效的。它们为解决问题提供了一个通用指南,目的是获得能够支持该问题的软件。这使我们得出结论,设计QSE领域所需的新技术需要考虑所有新概念以及从经典软件开发中学到的所有经验。因此,量子计算的商业化和可访问性在很大程度上采用了“即服务”(QaaS)模式,直接借鉴了云计算范式。这种方法是一种策略性举措,用于管理量子系统的巨大基础设施复杂性。通过抽象控制层,云提供了托管的基础设施,处理诸如低温环境、纠错协议以及持续的硬件和软件版本升级等关键且非平凡的元素。这种基于云的集成使量子任务能够无缝融入现有的混合经典-量子工作流程中。用户受益于易于访问和协作,只需专注于编程和实验,而无需关心基础设施管理。借鉴云服务模型至关重要,因为它降低了进入门槛,促进了不同团队之间的协作,并加快了该领域成熟所需的采用和实验速度,绕过了与专用量子硬件相关的初始资本支出和维护障碍。

另一个主要的借鉴趋势是与高性能计算(HPC)的协同发展,形成了HPC衍生路径。这种方法认识到,量子处理器(QPUs)最适合用作经典机器难以处理的子任务的加速器。为了最大化这一效用,需要紧密耦合,即将QPUs直接集成到HPC环境中并通过超低延迟网络进行连接。在这种模式下,经典HPC资源负责大规模的经典计算:问题设置、广泛的经典模拟、数据预处理以及对于当今噪声较大的量子设备至关重要的错误缓解技术。然后,QPU执行特定的、具有量子优势的计算。这种设置需要借用和专门化现有的HPC软件堆栈,包括开发新的中间件、调度器和API。这些工具必须允许当前的HPC作业管理器(如Slurm或PBS)无缝处理经典和量子计算,将QPU视为HPC集群中的另一种专用计算资源。现代量子计算的现实是,量子部分往往只是“沧海一粟”。构成量子应用程序的绝大多数系统都是经典的,因此严重依赖于借用的工具和软件工件。整个工具链,包括编辑器、经典编译器、量子设备驱动程序、模拟器、结果解释和后处理工具,都证明了这一点。与经典软件的强大协同至关重要。经典软件必须管理整个执行生命周期,协调混合计算的不同步骤和组件。这种结构使QSE能够利用成熟、复杂且被广泛理解的软件工程方法来处理系统的绝大部分,同时将有限的资源集中在真正新颖的量子组件上。

最后,QSE可以从专门的软件工程(SE)子领域的丰富历史中借鉴标准和技术知识。现有文献中充满了在安全、安全、机器学习(SE4AI)、汽车系统和嵌入式系统等领域的成功路线图。QSE在定义最佳实践时不必从头开始。通过研究和适应这些领域的既定原则,例如管理高保证系统的技巧、进化工具链的过程或集成专用硬件的方法,QSE社区可以迅速形成自己的知识体系(Q-SWEBOK)。此外,QSE的学术研究经常借鉴研究方法,例如将云计算相关的研究问题移植到量子领域。这种战略性的借鉴防止了碎片化,并加速了QSE从一个深奥的领域发展成为主流的、可靠的学科。

第5节 量子软件工程:借鉴他人成果
如今,毫无疑问,量子软件工程引起了极大的兴趣。在经典软件工程的发展过程中,我们学到的一个主要经验是,软件需要流程,而流程需要方法论来帮助完成各项活动。对于量子软件开发流程,可以假设经典软件开发的基本策略也是有效的。它们为解决问题提供了一个通用指南。这使我们得出结论,设计QSE领域所需的新技术需要考虑所有新概念以及从经典软件开发中学到的所有经验。因此,量子计算的商业化和可访问性在很大程度上采用了“即服务”(QaaS)模式,直接借鉴了云计算范式。这是一种管理量子系统巨大基础设施复杂性的战略举措。通过抽象控制层,云提供了托管的基础设施,处理诸如低温环境、纠错协议以及持续的硬件和软件版本升级等关键元素。这种基于云的集成使量子任务能够无缝融入现有的混合经典-量子工作流程中。用户受益于易于访问和协作,只需专注于编程和实验,而无需关心基础设施管理。借鉴云服务模型至关重要,因为它降低了进入门槛,促进了不同团队之间的协作,并迅速加快了该领域成熟所需的采用和实验速度,绕过了与专用量子硬件相关的初始资本支出和维护障碍。

另一个主要的借鉴趋势是与高性能计算(HPC)的协同发展,形成了HPC衍生路径。这种方法认识到,量子处理器(QPUs)最适合用作经典机器难以处理的子任务的加速器。为了最大化这一效用,需要紧密耦合,即将QPUs直接集成到HPC环境中并通过超低延迟网络进行连接。在这种模式下,经典HPC资源负责大规模的经典计算:问题设置、广泛的经典模拟、数据预处理以及对于当今噪声较大的量子设备至关重要的错误缓解技术。然后,QPU执行特定的、具有量子优势的计算。这种设置需要借用和专门化现有的HPC软件堆栈,包括开发新的中间件、调度器和API。这些工具必须允许当前的HPC作业管理器(如Slurm或PBS)无缝处理经典和量子计算,将QPU视为HPC集群中的另一种专用计算资源。现代量子计算的现实是,量子部分往往只是“沧海一粟”。构成量子应用程序的绝大多数系统都是经典的,因此严重依赖于借用的工具和软件工件。整个工具链,包括编辑器、经典编译器、量子设备驱动程序、模拟器、结果解释和后处理工具,都证明了这一点。与经典软件的强大协同至关重要。经典软件必须管理整个执行生命周期,协调混合计算的不同步骤和组件。这种结构使QSE能够利用成熟、复杂且被广泛理解的软件工程方法来处理系统的绝大部分,同时将有限的资源集中在真正新颖的量子组件上。

最后,QSE可以从专门的软件工程(SE)子领域的丰富历史中借鉴标准和技术知识。现有文献中充满了在安全、安全、机器学习(SE4AI)、汽车系统和嵌入式系统等领域的成功路线图。QSE在定义最佳实践时不必从头开始。通过研究和适应这些领域的既定原则,例如管理高保证系统的技术、进化工具链的过程或集成专用硬件的方法,QSE社区可以迅速形成自己的知识体系(Q-SWEBOK)。此外,QSE的学术研究经常借鉴研究方法,例如将云计算相关的研究问题移植到量子领域。这种战略性的借鉴防止了碎片化,并加速了QSE从一个深奥的领域发展成为主流的、可靠的学科。

第6节 行动号召
为了推进量子计算领域的软件工程研究和实践,有一些基本方面需要解决:
实验:目前,许多软件工程研究与实际的量子软件开发是分离进行的。建立两者之间的紧密联系是理解QSE真正复杂性的重要一步。
重点:目前,我们缺少一个发布QSE成果的理想平台。虽然有许多地方可以发表论文,但一个关键的平台尚未形成。如果没有这样的平台,QSE成果将会分散且零散,不一定能被社区发现。
创建QSE知识体系将是实现上述两个目标的重要一步。这仍然是迈向真正QSE研究和实践的重要一步。

致谢
本工作得到了Business Finland项目EM4QS(155/31/2024)和SeQuSoS(112/31/2024)以及芬兰研究委员会项目DEQSE(349945)的支持。此外,本工作还得到了西班牙科学、创新和大学部及ERDF(PID2024-155693NB-C41和PDC2025-165096-C31);埃斯特雷马杜拉地区政府经济、科学和数字议程部(GR24099)以及伊比利亚美洲科学技术发展计划(CYTED – 525RT0174)的部分资助。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号