Toward a Definition of Cognitive-Driven Development

Alberto Luiz Oliveira Tavares de Souza, Victor Hugo Santiago C. Pinto · 2020

Software separation into components is a recognition that human work can be improved by focus on a limited set of data. The growing complexity of software has always been a challenge to industry. Several approaches have been proposed to support code design based on architectural styles and code quality metrics. However, most research involving human cognition in software engineering is focused on the evaluation of programs and learning instead of how the source code could be developed under this perspective. This paper presents an approach called Cognitive-Driven Development (CDD) that is based on cognitive complexity measurements and Cognitive Load Theory. This strategy can reduce the cognitive overload of the developers through the limitation of intrinsic complexity points from source code. Some cognitive complexity metrics has been extended and guidelines are presented to calculate the intrinsic complexity points and how their limit can be adapted under certain quality criteria. Experimental studies are currently being conducted to evaluate the CDD. Preliminary results indicate that the approach can reduce the future effort for maintenance and fixing software faults.

Read the paper · More papers on PaperTik