Javascript must be enabled to continue!
An empirical study on software understandability and its dependence on code characteristics
View through CrossRef
AbstractContextInsufficient code understandability makes software difficult to inspect and maintain and is a primary cause of software development cost. Several source code measures may be used to identify difficult-to-understand code, including well-known ones such as Lines of Code and McCabe’s Cyclomatic Complexity, and novel ones, such as Cognitive Complexity.ObjectiveWe investigate whether and to what extent source code measures, individually or together, are correlated with code understandability.MethodWe carried out an empirical study with students who were asked to carry out realistic maintenance tasks on methods from real-life Open Source Software projects. We collected several data items, including the time needed to correctly complete the maintenance tasks, which we used to quantify method understandability. We investigated the presence of correlations between the collected code measures and code understandability by using several Machine Learning techniques.ResultsWe obtained models of code understandability using one or two code measures. However, the obtained models are not very accurate, the average prediction error being around 30%.ConclusionsBased on our empirical study, it does not appear possible to build an understandability model based on structural code measures alone. Specifically, even the newly introduced Cognitive Complexity measure does not seem able to fulfill the promise of providing substantial improvements over existing measures, at least as far as code understandability prediction is concerned. It seems that, to obtain models of code understandability of acceptable accuracy, process measures should be used, possibly together with new source code measures that are better related to code understandability.
Springer Science and Business Media LLC
Title: An empirical study on software understandability and its dependence on code characteristics
Description:
AbstractContextInsufficient code understandability makes software difficult to inspect and maintain and is a primary cause of software development cost.
Several source code measures may be used to identify difficult-to-understand code, including well-known ones such as Lines of Code and McCabe’s Cyclomatic Complexity, and novel ones, such as Cognitive Complexity.
ObjectiveWe investigate whether and to what extent source code measures, individually or together, are correlated with code understandability.
MethodWe carried out an empirical study with students who were asked to carry out realistic maintenance tasks on methods from real-life Open Source Software projects.
We collected several data items, including the time needed to correctly complete the maintenance tasks, which we used to quantify method understandability.
We investigated the presence of correlations between the collected code measures and code understandability by using several Machine Learning techniques.
ResultsWe obtained models of code understandability using one or two code measures.
However, the obtained models are not very accurate, the average prediction error being around 30%.
ConclusionsBased on our empirical study, it does not appear possible to build an understandability model based on structural code measures alone.
Specifically, even the newly introduced Cognitive Complexity measure does not seem able to fulfill the promise of providing substantial improvements over existing measures, at least as far as code understandability prediction is concerned.
It seems that, to obtain models of code understandability of acceptable accuracy, process measures should be used, possibly together with new source code measures that are better related to code understandability.
Related Results
Managing Object Oriented Software Understandability: A Design Perspective
Managing Object Oriented Software Understandability: A Design Perspective
Estimating understandability of object oriented software early in the development process; particularly at design phase greatly reduce the overall development cost and effort. To d...
Joint Beamforming and Aerial IRS Positioning Design for IRS-assisted MISO System with Multiple Access Points
Joint Beamforming and Aerial IRS Positioning Design for IRS-assisted MISO System with Multiple Access Points
<p><code>Intelligent reflecting surface (IRS) is a promising concept for </code><code><u>6G</u></code><code> wireless communications...
Joint Beamforming and Aerial IRS Positioning Design for IRS-assisted MISO System with Multiple Access Points
Joint Beamforming and Aerial IRS Positioning Design for IRS-assisted MISO System with Multiple Access Points
<p><code>Intelligent reflecting surface (IRS) is a promising concept for </code><code><u>6G</u></code><code> wireless communications...
User-oriented Assessment of Classification Model Understandability
User-oriented Assessment of Classification Model Understandability
This paper reviews methods for evaluating and analyzing the understandability of classification models in the context of data mining. The motivation for this study is the fact that...
The Effectiveness of Code Reviews on Improving Software Quality: An Empirical Study
The Effectiveness of Code Reviews on Improving Software Quality: An Empirical Study
This study intends to investigate how well code reviews contribute to higher software quality. A group of developers working on the study examine source code to find flaws, improve...
Design of testing framework for code smell detection (OOPS) using BFO algorithm
Design of testing framework for code smell detection (OOPS) using BFO algorithm
Detection of bad smells refers to any indication in the program code of a execution that perhaps designate a issue, maintain the software and software evolution. Code Smell detecti...
MEASURING MAINTAINABILITY INDEX BEFORE AND AFTER CODE REFACTORING
MEASURING MAINTAINABILITY INDEX BEFORE AND AFTER CODE REFACTORING
Measuring the maintainability index of software is crucial to ensure bettermaintenance and improve quality. Refactoring code is important in improving software quality and increasi...
Software Metric Based Impact Analysis of Code Smells ‐ A Large Scale Empirical Study
Software Metric Based Impact Analysis of Code Smells ‐ A Large Scale Empirical Study
ABSTRACTContextCode smells are indicators of poor design and implementation choices that negatively affect software quality and maintainability. Moreover, it is difficult and time‐...

