소프트웨어 저장소 마이닝

Mining software repositories

소프트웨어 엔지니어링 내에서 광업 소프트웨어 리포지토리(MSR) 필드 [1] 필드에 사용할 수 있는 소프트웨어 리포지토리와 같은 소프트웨어 리포지토리와 같은 소프트웨어 리포지토리를 분석하고 있다. 소프트웨어 엔진을 울리다

정의.

Herzig와 Zeller는 소프트웨어 저장소에서 데이터를 추출하여 "초기 증거를 많이 얻기 위한" 프로세스로서 "소프트웨어 아카이브"를 정의합니다.또한 "데이터 소스"를 소스 코드, 요구 사항 아티팩트 또는 버전 아카이브와 같은 제품 기반 아티팩트로 정의하고 이러한 소스가 편견이 없지만 노이즈가 많고 [2]불완전하다고 주장합니다.

기술

결합 변경 분석

결합 변경 분석의 개념은 개발자가 결함을 수정하거나 새로운 기능을 도입하기 위해 코드 엔티티(예: 파일)를 자주 함께 변경하는 것입니다.기업 간의 이러한 연결은 종종 법규나 기타 문서에 명시되어 있지 않다.특히 이 프로젝트에 처음 참여한 개발자들은 함께 변경해야 할 실체를 알지 못합니다.커플링 변경 분석은 프로젝트의 버전 관리 시스템에서 커플링을 추출하는 것을 목적으로 합니다.커밋과 변경 타이밍에 따라 어떤 엔티티가 자주 함께 변경되는지 파악할 수 있을 것입니다.그 후 이러한 정보는 추가 [3]변경을 지원하기 위해 기업 중 하나를 변경하려는 개발자에게 표시될 수 있다.

분석의 커밋

버전 관리 시스템에는 버그 수정 커밋, 새로운 기능 커밋, 문서 커밋 등 다양한 종류의 커밋이 있습니다.과거의 커밋에 근거해 데이터 중심의 결정을 내리려면, 주어진 기준을 만족시키는 커밋의 서브셋을 선택해야 합니다.이는 커밋 [4]메시지에 따라 수행할 수 있습니다.

문서 생성

마이닝 소프트웨어 저장소에서 유용한 문서를 생성할 수 있습니다.예를 들어, Jadeite는 사용 통계를 계산하여 신입생들이 일반적으로 사용하는 클래스를 [5]빠르게 식별할 수 있도록 도와줍니다.

데이터 및 도구

주요 마이닝 데이터는 버전 관리 시스템에서 가져옵니다.초기 채굴 실험은 CVS [6]저장소에서 수행되었습니다.그 후 연구자들은 SVN [7]저장소를 광범위하게 분석했습니다.지금은 Git 저장소가 [8]우세합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 지역의 주요 소프트웨어 엔지니어링 회의인 마이닝 소프트웨어 저장소 작업 회의
  2. ^ K. S. Herzig와 A. Zeller는 Making Software, 페이지 517-529, 캘리포니아 세바스토폴, 2011: O'Reilly, 2011.
  3. ^ Gall, H.; Hajek, K.; Jazayeri, M. (1998). "Detection of logical coupling based on product release history". Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272). pp. 190–198. CiteSeerX 10.1.1.199.7754. doi:10.1109/icsm.1998.738508. ISBN 978-0-8186-8779-2.
  4. ^ Hindle, Abram; German, Daniel M.; Godfrey, Michael W.; Holt, Richard C. (2009). "Automatic classication of large changes into maintenance categories". 2009 IEEE 17th International Conference on Program Comprehension. pp. 30–39. doi:10.1109/ICPC.2009.5090025. ISBN 978-1-4244-3998-0.
  5. ^ Stylos, Jeffrey; Faulring, Andrew; Yang, Zizhuang; Myers, Brad A. (2009). "Improving API documentation using API usage information". 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). pp. 119–126. doi:10.1109/VLHCC.2009.5295283. ISBN 978-1-4244-4876-0.
  6. ^ Canfora, G.; Cerulo, L. (2005). "Impact Analysis by Mining Software and Change Request Repositories". 11th IEEE International Software Metrics Symposium (METRICS'05). p. 29. doi:10.1109/METRICS.2005.28. ISBN 978-0-7695-2371-2.
  7. ^ d'Ambros, Marco; Gall, Harald; Lanza, Michele; Pinzger, Martin (2008). "Analysing Software Repositories to Understand Software Evolution". Software Evolution. pp. 37–67. doi:10.1007/978-3-540-76440-3_3. ISBN 978-3-540-76439-7.
  8. ^ Kalliamvakou, Eirini; Gousios, Georgios; Blincoe, Kelly; Singer, Leif; German, Daniel M.; Damian, Daniela (2014). "The promises and perils of mining GitHub". Proceedings of the 11th Working Conference on Mining Software Repositories - MSR 2014. pp. 92–101. doi:10.1145/2597073.2597074. ISBN 9781450328630.