Do We Need Improved Code Quality Metrics?
Tushar Sharma, Diomidis Spinellis

TL;DR
This paper critically examines existing code quality metrics, identifies their deficiencies through developer surveys and case studies, and proposes improvements, especially for the LCOM metric, to better assess software cohesion.
Contribution
It provides a qualitative analysis of current metrics' shortcomings and introduces a new approach to improve the LCOM cohesion metric based on empirical evaluation.
Findings
Current metrics lack soundness and architecture assessment support.
Existing LCOM algorithms poorly represent cohesion in diverse cases.
Proposed LCOM approach aligns better with ground truth and real-world data.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software Testing and Debugging Techniques
