Skip to main content
QUICK REVIEW

[논문 리뷰] Software Engineering for Quantum Programming: How Far Are We?

Manuel De Stefano, Fabiano Pecorelli|arXiv (Cornell University)|2022. 03. 31.
Quantum Computing Algorithms and Architecture인용 수 4
한 줄 요약

이 논문은 Qiskit, Cirq, Q#를 사용하여 GitHub 리포지토리에서 데이터를 추출하고 56명의 활성 양자 개발자들을 대상으로 설문조사를 실시하는 두 가지 구성요소로 이루어진 연구를 통해 현재의 양자 프로그래밍 상태를 조사한다. 연구 결과, 양자 프로그래밍은 주로 교육 및 실험 목적으로 사용되며, 기술적 및 사회기술적 영역에서의 주요 과제들이 존재함을 확인하였으며, 이는 양자 소프트웨어 공학이 여전히 초기 단계에 있음을 시사한다.

ABSTRACT

Quantum computing is no longer only a scientific interest but is rapidly becoming an industrially available technology that can potentially overcome the limits of classical computation. Over the last years, all major companies have provided frameworks and programming languages that allow developers to create their quantum applications. This shift has led to the definition of a new discipline called quantum software engineering, which is demanded to define novel methods for engineering large-scale quantum applications. While the research community is successfully embracing this call, we notice a lack of systematic investigations into the state of the practice of quantum programming. Understanding the challenges that quantum developers face is vital to precisely define the aims of quantum software engineering. Hence, in this paper, we first mine all the GitHub repositories that make use of the most used quantum programming frameworks currently on the market and then conduct coding analysis sessions to produce a taxonomy of the purposes for which quantum technologies are used. In the second place, we conduct a survey study that involves the contributors of the considered repositories, which aims to elicit the developers' opinions on the current adoption and challenges of quantum programming. On the one hand, the results highlight that the current adoption of quantum programming is still limited. On the other hand, there are many challenges that the software engineering community should carefully consider: these do not strictly pertain to technical concerns but also socio-technical matters.

연구 동기 및 목표

  • 가장 널리 사용되는 양자 프레임워크를 활용하여 실세계 소프트웨어 프로젝트에서의 양자 프로그래밍 도입 현황을 평가하기 위해.
  • 개발자들이 현재 양자 기술을 주로 어떤 목적을 위해 사용하고 있는지 규명하기 위해.
  • 실제로 양자 프로그래머들이 최신 실천 기반 프레임워크를 사용할 때 겪는 기술적 및 사회기술적 과제를 밝혀내기 위해.
  • 향후 양자 소프트웨어 공학 분야의 도구 개발 및 지원 체계 발전을 이끌기 위한 경험적 통찰을 제공하기 위해.

제안 방법

  • Qiskit, Cirq, Q#를 검색 패턴으로 사용하여 대규모 GitHub 리포지토리 채굴을 수행하여 활성 양자 프로그래밍 프로젝트를 식별하였다.
  • 채굴된 리포지토리에 대해 수작업으로 코드 분석을 수행하여 양자 프로그래밍 사용의 목적을 분류하였다.
  • 오픈소스 양자 프로젝트에 10회 이상 커밋한 56명의 활성 기여자들을 대상으로 설문조사를 실시하여 과제 및 개발 관행에 대한 통찰을 확보하였다.
  • 양자 프로그래밍 도입 목적에 대한 분류 체계와 개발자들이 겪는 과제에 대한 분류 체계를 각각 수립하고 검증하였다.
  • 분류 체계 구축의 신뢰성과 주관성을 줄이기 위해 반복적이고 다수의 저자 참여 방식의 코드 분석 및 집계 절차를 사용하였다.
  • 모든 연구 자료 및 데이터를 온라인 부록으로 공개하여 재현 가능성과 향후 연구 지원을 목적으로 하였다.
Figure 1: Graphical summary of the applied methodology. By mining GitHub , we have obtained a set of repositories that we manually classified. Afterward, we extracted the list of public emails of their developers, whom we surveyed. We addressed RQ 1 using the classification results, while we address
Figure 1: Graphical summary of the applied methodology. By mining GitHub , we have obtained a set of repositories that we manually classified. Afterward, we extracted the list of public emails of their developers, whom we surveyed. We addressed RQ 1 using the classification results, while we address

실험 결과

연구 질문

  • RQ1실세계 프로젝트에서 현재 양자 프로그래밍이 주로 어떤 목적을 위해 사용되고 있는가?
  • RQ2최신 실천 기반 프레임워크를 사용할 때 양자 개발자들이 겪는 기술적 및 사회기술적 과제는 무엇인가?
  • RQ3가장 인기 있는 세 가지 양자 프레임워크인 Qiskit, Cirq, Q# 간에 사용 패턴과 과제는 어떻게 다를까?

주요 결과

  • GitHub에 올라와 있는 대부분의 양자 프로그래밍 프로젝트는 교육적 목적이나 개인적 실험을 위한 것이며, 산업적 또는 생산 수준의 도입은 제한되어 있음을 시사한다.
  • 905명의 개발자 중 56명이 설문조사에 응답하여 응답률이 6.1%에 그쳤으며, 이는 소프트웨어 공학 분야의 설문조사 연구에서 허용 가능한 수준으로 간주된다.
  • 목적에 대한 분류 체계 분석 결과, 대부분의 프로젝트는 생산 시스템을 구축하기 위한 것이 아니라 학습 도구, 개념 증명용 구현, 또는 교육용 시연용으로 사용되고 있음을 확인하였다.
  • 개발자들은 양자 이론 이해 및 프로그램 해석 외에도 도구 사용, 디버깅, 협업 등에서 심각한 과제를 겪고 있으며, 이는 사회기술적 장벽을 강하게 드러낸다.
  • 양자 프로그래밍을 위한 소프트웨어 공학 지원의 격차가 존재하며, 개발자들은 기본적인 코딩을 초월해 프로그램 분석, 테스트, 이해 등에서 어려움을 겪고 있음을 확인하였다.
  • 연구 결과, 양자 소프트웨어 공학은 아직 완성되지 않은 상태이며, 기술적 한계와 인간 요소가 모두 발전을 저해하고 있음을 시사한다.
Figure 2: Partition of the repository per class of usage.
Figure 2: Partition of the repository per class of usage.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.