Inf. Softw. Technol. | 2019

Cognitive complexity as a quantifier of version to version Java-based source code change: An empirical probe

 
 

Abstract


Abstract Context It has been often argued that it is challenging to modify code fragments from existing software that contains files that are difficult to comprehend. Since systematic software maintenance includes an extensive human activity, cognitive complexity is one of the intrinsic factors that could potentially contribute to or impede an efficient software maintenance practice, the empirical validation of which remains vastly unaddressed. Objective This study conducts an experimental analysis in which the software developer s level of difficulty in comprehending the software: the cognitive complexity, is theoretically computed and empirically evaluated for estimating its relevance to actual software change. Method For multiple successive releases of two Java-based software projects, where the source code of a previous release has been substantively used in a novel release, we calculate the change results and the values of the cognitive complexity for each of the version s source code Java files. We construct eight datasets and build predictive models using statistical analysis and machine learning techniques. Results The pragmatic comparative examination of the estimated cognitive complexity against prevailing metrics of software change and software complexity clearly validates the cognitive complexity metric as a noteworthy measure of version to version source code change.

Volume 106
Pages 31-48
DOI 10.1016/j.infsof.2018.09.002
Language English
Journal Inf. Softw. Technol.

Full Text