머신러닝과 소프트웨어 개발에서의 가치 창출: 리뷰

읽는 시간: 3 분
...

📝 원문 정보

  • Title: Machine Learning and value generation in Software Development: a survey
  • ArXiv ID: 2001.08980
  • 발행일: 2020-01-27
  • 저자: Barakat. J. Akinsanya, Luiz J.P. Araujo, Mariia Charikova, Susanna Gimaeva, Alexandr Grichshenko, Adil Khan, Manuel Mazzara, Ozioma Okonicha N and Daniil Shilintsev

📝 초록 (Abstract)

머신러닝(ML)은 데이터를 예측하고 분류하는 데 널리 사용되는 도구로, 소프트웨어 개발(SD)을 포함한 여러 문제 영역에서 활용되고 있습니다. 이 논문은 2000년부터 2019년까지의 문헌을 리뷰하여 프로그래밍 노력 예측, 위험 예측 및 결함 식별과 검출에 사용된 학습 모델들을 조사하였습니다. 이 작업은 ML을 소프트웨어 개발 도구상자에 추가하려는 실무자를 위한 시작점으로 제공되며, 최근 문헌을 분류하고 경향과 한계를 식별합니다. 본 연구 결과는 SD의 산업적 응용이 보고된 결과만큼 널리 퍼지지는 않았다는 일부 저자들의 동의를 받았습니다. 수행된 조사에 따르면, 다양한 SD 작업에 대한 약속을 지키긴 하지만 대부분의 연구에서 모호한 결과가 나왔으며 이는 해당 문제 영역에서 포괄적인 데이터셋 부족 때문인 것으로 나타났습니다. 논문은 결론적 고찰과 향후 연구 제안으로 마무리됩니다.

💡 논문 핵심 해설 (Deep Analysis)

This paper surveys the literature from 2000 to 2019 on how machine learning (ML) is used in software development, particularly focusing on effort estimation, risk prediction, and defect detection. The study examines various ML models such as parametric models like COCOMO and SLIM, case-based reasoning (CBR), decision trees (DT), artificial neural networks (ANNs), and genetic algorithms. The paper highlights that while ML models have shown promising results for a variety of software development tasks, industrial applications have not been as widespread due to the lack of comprehensive datasets. Despite these challenges, ML has proven effective in providing better effort estimation and risk prediction compared to traditional methods.

📄 논문 본문 발췌 (Translation)

소프트웨어 개발 작업량 예측은 1970년대 후반부터 주목받아 왔으며, 프로젝트의 워크플로우와 전체 성공에 큰 영향을 미친다. 특히, 프로그래밍 노력이 부족하게 추정되면 마감일을 놓치거나 소프트웨어 품질이 저하될 수 있으며, 반대로 과도한 노력 추정은 예산 제약으로 인해 프로젝트 속도가 느려질 수 있다. 정확한 작업량 예측을 위해 다양한 방법론들이 제안되어 왔다. 가장 널리 사용되는 방법론에는 전문 모델과 논리적 통계 모델(파라미터 모델 COCOMO, SLIM; 회귀 분석), 기존 머신러닝 알고리즘(Fuzzy Logic, Genetic Algorithms 및 Regression Trees) 그리고 인공 신경망이 포함된다. [[IMG_PROTECT_N]] 코딩 작업량은 주로 코드 줄 수(LOC), 함수 포인트(FP) 또는 사용 사례 포인트(UCP) 등으로 추정되며, 이 절에서는 문헌에서 가장 일반적으로 사용되는 소프트웨어 개발 노력 예측(SDEE) 방법론과 그 특징들을 설명한다.

정확한 작업량 예측의 중요성과 예측 과정을 자동화하려는 요구로 인해 연구자들은 80년대 초반에 처음으로 파라미터 모델을 제안하기 시작했다. 이들 모델은 실제 산업 데이터를 기반으로 한 소프트웨어 데이터셋에서 테스트되었다. Srinivasan과 Fisher에 따르면, 가장 두드러진 세 가지 모델로 COCOMO, SLIM 및 Function Points가 있다. COCOMO와 SLIM 모델은 주요 입력으로 소스 코드 줄 수(SLOC)를 거의 독점적으로 사용하며, 함수 포인트 접근법은 트랜잭션 수와 기타 몇 가지 추가 처리 특성을 활용한다. [[IMG_PROTECT_N]] 이들 모델들은 이용 가능한 역사적 데이터(COCOMO 데이터셋)에서 평가되었지만, 소프트웨어 데이터셋의 잡음성으로 인해 일관되지 않은 성능을 보였다.

베이지안 네트워크(BN)는 아길 개발 노력 예측에 사용되는 통계적 모델이다. Dragicevic, Celar 및 Turic은 BNs의 이점을 강조하며, 정보 부족으로 인한 큰 불확실성, 지표들의 주관성과 이를 수집하는 어려움을 처리할 수 있는 능력을 언급했다.

전문가 추정은 모델이 도메인 지식을 활용하지 못할 때 적합하다. 하지만 전문가 시스템은 인간의 편향성을 보여주며, Planning Poker와 같은 사례에서 이를 확인할 수 있다. Moharreri 등에 따르면 Planning Poker는 40%의 경우 과대 추정을 하고 MMRE 점수가 106.8%로 매우 높게 나타났다.

기계 학습 방법론은 더 나은 일반화와 전체적인 성능을 위해 연구자들에 의해 적용되었다. 사례 기반 추론(CBR)과 결정 트리(DT)는 SDEE를 위한 가장 효과적이고 많이 연구된 ML 모델 중 하나이다. 이들의 결과는 매우 해석 가능하며, 파라미터 및 작업량 예측 모델보다 우수하거나 최소한 그와 비슷하다고 인정받았다.

Reference

이 글은 ArXiv의 공개 자료를 바탕으로 AI가 자동 번역 및 요약한 내용입니다. 저작권은 원저자에게 있으며, 인류 지식 발전에 기여한 연구자분들께 감사드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키