Skip to main content
QUICK REVIEW

[논문 리뷰] ConE: A Concurrent Edit Detection Tool for Large Scale Software Development

Chandra Maddila, Nachiappan Nagappan|arXiv (Cornell University)|2021. 01. 16.
Software Engineering Research참고 문헌 41인용 수 5
한 줄 요약

ConE는 과거 변경 데이터를 분석하여 파일 간 겹침 정도와 드문 드문 동시 편집 파일을 분석함으로써 대규모 소프트웨어 저장소의 풀 리퀘스트에서 동시 편집을 사전에 탐지하는 확장성 있고 히우리스틱 기반의 도구이다. 마이크로소프트에 도입된 이후 6개월 간 775건의 잠재적 충돌을 경고했으며, 그 중 70퍼센트 이상의 추천이 유용하다고 평가되어 머지 커플링과 중복 작업을 크게 줄였다.

ABSTRACT

Modern, complex software systems are being continuously extended and adjusted. The developers responsible for this may come from different teams or organizations, and may be distributed over the world. This may make it difficult to keep track of what other developers are doing, which may result in multiple developers concurrently editing the same code areas. This, in turn, may lead to hard-to-merge changes or even merge conflicts, logical bugs that are difficult to detect, duplication of work, and wasted developer productivity. To address this, we explore the extent of this problem in the pull request based software development model. We study half a year of changes made to six large repositories in Microsoft in which at least 1,000 pull requests are created each month. We find that files concurrently edited in different pull requests are more likely to introduce bugs. Motivated by these findings, we design, implement, and deploy a service named ConE (Concurrent Edit Detector) that proactively detects pull requests containing concurrent edits, to help mitigate the problems caused by them. ConE has been designed to scale, and to minimize false alarms while still flagging relevant concurrently edited files. Key concepts of ConE include the detection of the Extent of Overlap between pull requests, and the identification of Rarely Concurrently Edited Files. To evaluate ConE, we report on its operational deployment on 234 repositories inside Microsoft. ConE assessed 26,000 pull requests and made 775 recommendations about conflicting changes, which were rated as useful in over 70% (554) of the cases. From interviews with 48 users we learned that they believed ConE would save time in conflict resolution and avoiding duplicate work, and that over 90% intend to keep using the service on a daily basis.

연구 동기 및 목표

  • 대규모 분산 소프트웨어 개발 환경에서 동시 코드 편집의 빈도와 영향을 조사하기 위해.
  • 동일한 코드 영역을 동시에 편집하면서 인지하지 못한 채 개발자가 충돌과 논리적 버그를 유발하는 문제를 해결하기 위해.
  • 잠재적 동시 편집을 사전에 경고함으로써 충돌을 유발하기 전에 개발자를 경고하는 확장성 있고 부담이 적은 도구를 설계하고 구현하기 위해.
  • 도구의 도입과 사용성 확보를 위해 정밀도를 유지하면서도 거짓 경고를 최소화하기 위해 정밀도와 재현율의 균형을 맞추기 위해.
  • 실제 산업 환경에서 도구의 효과성을 평가하고 개발자 인식과 장기적 유용성 평가를 수행하기 위해.

제안 방법

  • 역사적 변경 데이터를 사용하여 풀 리퀘스트 간 파일 겹침 정도를 분석함으로써 동시 편집을 탐지한다.
  • 풀 리퀘스트 간에 거의 동시에 편집되지 않는 '희귀 동시 편집 파일'을 충돌에 대한 높은 위험도를 가진 후보로 식별한다.
  • 사용자 설정이 가능한 히우리스틱과 필터를 적용하여 정밀도와 재현율의 균형을 맞추며, 거짓 경고를 줄이면서도 커버리지 유지한다.
  • 새로운 클라이언트 도구나 워크플로우 변경 없이 기존 개발 워크플로우(예: Azure DevOps)에 통합한다.
  • 234개 마이크로소프트 저장소에서 6개월 간 26,000개의 풀 리퀘스트를 처리하며 대규모로 시스템을 운영한다.
  • 개발자 인터뷰와 사용 메트릭을 통한 피드백 루프를 활용해 탐지 로직을 개선하고 관련성을 높인다.

실험 결과

연구 질문

  • RQ1대규모 소프트웨어 저장소에서 서로 다른 풀 리퀘스트 간에 동일한 파일이 동시에 편집되는 경우가 얼마나 흔한가?
  • RQ2동시 편집과 이후 버그 수정 또는 머지 커플링 사이의 통계적 관계는 무엇인가?
  • RQ3히우리스틱 기반 시스템이 대규모 환경에서 높은 정밀도와 낮은 거짓 경고 비율로 동시 편집을 탐지할 수 있는가?
  • RQ4실제 워크플로우에서 개발자들이 사전 경고 기반 동시 편집 탐지 도구를 어떻게 인식하고 채택하는가?
  • RQ5기존 개발 파이프라인에 원활하게 통합되는 확장성 있고 부담이 적은 도구를 설계하는 데 핵심이 되는 설계 원칙은 무엇인가?

주요 결과

  • 서로 다른 풀 리퀘스트에서 동시에 편집되는 파일은 결함 밀도와의 통계적 연관성이 높아, 동시 편집과 결함 발생 간의 인과관계를 입증한다.
  • ConE는 234개 저장소에서 26,000개의 풀 리퀘스트를 분석하여 총 775건의 충돌 추천을 생성했으며, 그 중 554건(71.48퍼센트)이 개발자들에 의해 유용하다고 평가되었다.
  • 48명의 개발자 인터뷰 결과, 93퍼센트가 긍정적인 피드백을 제공했으며, 90퍼센트 이상이 매일 ConE를 사용할 것이라고 밝혔다. 이는 충돌 해결 시간 절감과 중복 작업 방지를 위해 유용하다고 평가했다.
  • 복잡한 대규모 코드베이스 환경에서도 겹침 정도와 희귀 동시 편집 탐지 기반으로 높은 정밀도를 확보하여 거짓 경고를 최소화했다.
  • ConE는 마이크로소프트 내에서 대규모로 성공적으로 도입되어 다양한 프로그래밍 언어와 워크플로우를 가진 다국적 엔지니어링 조직에서의 실용성과 유용성을 입증했다.
  • 도구의 설계—특히 워크플로우 통합과 낮은 부담도—는 도입에 핵심적이었으며, 개발자들은 사전 경고 기반의 비방해적 경고 기능을 높이 평가했다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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