Skip to main content
QUICK REVIEW

[논문 리뷰] Do We Need Improved Code Quality Metrics?

Tushar Sharma, Diomidis Spinellis|arXiv (Cornell University)|2020. 12. 22.
Software Engineering Research참고 문헌 24인용 수 6
한 줄 요약

이 논문은 기존 코드 품질 메트릭, 특히 응집도를 위한 LCOM 메트릭에 대한 비판을 제기하며 개발자 직관과 더 잘 부합하는 새로운 알고리즘을 제안한다. 8개의 다양한 사례에서 전문가 평가를 바탕으로 한 기준과 90,000개 이상의 자바 타입에 대한 정량적 분석을 통해, 기존 LCOM 구현 방식이 타당하지 않으며 오해의 소지가 있음을 입증하고, 본 논문에서 제안하는 새로운 접근 방식이 더 정확하고 직관적인 응집도 점수를 산출함을 보여준다.

ABSTRACT

The software development community has been using code quality metrics for the last five decades. Despite their wide adoption, code quality metrics have attracted a fair share of criticism. In this paper, first, we carry out a qualitative exploration by surveying software developers to gauge their opinions about current practices and potential gaps with the present set of metrics. We identify deficiencies including lack of soundness, i.e., the ability of a metric to capture a notion accurately as promised by the metric, lack of support for assessing software architecture quality, and insufficient support for assessing software testing and infrastructure. In the second part of the paper, we focus on one specific code quality metric-LCOM as a case study to explore opportunities towards improved metrics. We evaluate existing LCOM algorithms qualitatively and quantitatively to observe how closely they represent the concept of cohesion. In this pursuit, we first create eight diverse cases that any LCOM algorithm must cover and obtain their cohesion levels by a set of experienced developers and consider them as a ground truth. We show that the present set of LCOM algorithms do poorly w.r.t. these cases. To bridge the identified gap, we propose a new approach to compute LCOM and evaluate the new approach with the ground truth. We also show, using a quantitative analysis using more than 90 thousand types belonging to 261 high-quality Java repositories, the present set of methods paint a very inaccurate and misleading picture of class cohesion. We conclude that the current code quality metrics in use suffer from various deficiencies, presenting ample opportunities for the research community to address the gaps.

연구 동기 및 목표

  • 응집도, 아키텍처, 테스팅, 인프라와 같은 소프트웨어 품질 차원을 캡처하는 데 있어 기존 코드 품질 메트릭의 한계를 조사하기 위해.
  • 실제 개발자 판단을 기준으로 삼아 기존 LCOM 알고리즘 구현의 타당성과 정확도를 평가하기 위해.
  • 객체지향 클래스에서 응집도의 이론적 의도를 더 잘 반영하는 새로운 LCOM 계산 알고리즘을 제안하기 위해.
  • 대규모 실증 분석을 통해 기존 LCOM 방법이 응집도 측정에 대해 오해의 소지가 있고 일관성 없음을 입증하기 위해.
  • 더 정확하고 도메인 특화된 메트릭 개발을 촉진하고, 기존 메트릭 외에 기계학습을 보완적 접근으로 탐색하기 위해.

제안 방법

  • 기존 코드 품질 메트릭에 대한 평가와 그들의 인식된 한계를 파악하기 위해 78명의 개발자에게 온라인 설문 조사를 실시하였다.
  • 응집도 메트릭 평가를 위한 테스트 케이스로 사용할 수 있는 다양한 8개의 대표적인 클래스 구성 방식을 설계하였다.
  • 각 테스트 케이스에 대해 경험이 풍부한 개발자로부터 응집도 점수를 수집하여 기준 기준을 설정하였다.
  • 개발자 제공 기준 기준과 대비하여 기존 LCOM 알고리즘을 구현하고 평가하여 정확도와 타당성을 검토하였다.
  • 메서드에서 액세스하는 필드 및 응집도 논리를 개선한 새로운 LCOM 알고리즘을 제안하고, 기준 기준과 대비하여 검증하였다.
  • 261개의 고품질 자바 레포지토리(90,000개 이상의 타입)에서 대규모 정량적 분석을 수행하여 다양한 LCOM 변종 간의 메트릭 출력을 비교하고 일관성 및 신뢰성을 평가하였다.

실험 결과

연구 질문

  • RQ1기존 LCOM 알고리즘이 경험 많은 개발자가 인식하는 응집도 개념을 어느 정도 정확하게 반영하고 있는가?
  • RQ2다양한 클래스 구성에서 개발자 검증 기준 기준과 대비하여 기존 LCOM 구현 방식의 성능은 어떠한가?
  • RQ3소프트웨어 아키텍처, 테스팅, 인프라 품질 평가와 관련하여 기존 코드 품질 메트릭의 핵심 결함는 무엇인가?
  • RQ4인간의 직관과 전문가 판단에 더 가까운 메트릭 값을 산출할 수 있는 새로운 LCOM 알고리즘을 설계할 수 있는가?
  • RQ5대규모 실증 분석에 기반하여 실제 소프트웨어 시스템에 적용했을 때 기존 LCOM 메트릭 값이 얼마나 오해의 소지가 있는가?

주요 결과

  • 전문가 개발자 판단에 의해 검증된 결과, 기존 LCOM 알고리즘은 설계한 테스트 케이스의 80%에서 응집도를 정확히 표현하지 못한다.
  • 제안된 새로운 LCOM 알고리즘은 모든 테스트 케이스에서 경험 많은 개발자가 설정한 기준 기준과 매우 밀접하게 일치하는 메트릭 값을 산출한다.
  • 261개의 고품질 자바 레포지토리에서 90,000개 이상의 타입에 대한 정량적 분석 결과, 기존 LCOM 구현 방식은 클래스 응집도에 대해 매우 정확하지도 않고 일관성 없이 그림을 그린다.
  • 현재 LCOM 구현 방식에 타당성의 결함이 있음을 규명하였으며, 응집도 측정의 이론적 의도에서 상당한 이격이 존재한다.
  • 연구는 소프트웨어 아키텍처, 테스팅, 인프라 품질 평가를 위한 코드 품질 메트릭의 심각한 격차를 드러내었으며, 이는 기존 메트릭이 이 분야를 충분히 지원하지 못하기 때문이다.
  • 결과적으로 기계학습 기반 접근 방식은 기존 메트릭을 보완할 수 있지만, 실증적 검증과 실용적인 통찰에 기반해야 한다는 점을 시사한다.

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

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

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

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