Software cognitive complexity refers to how demanding the mental process of performing tasks such as coding, testing, debugging, or modifying source code is. Achieving low levels of cognitive complexity is crucial for ensuring high levels of software maintainability, which is one of the most rewardful software quality attributes. Therefore, in order to control and ensure software maintainability, it is first necessary to accurately quantify software cognitive complexity. In this line, this paper presents a software metric to assess cognitive complexity in Object-Oriented (OO) systems, and particularly those developed in the Java language, which is very popular among OO programming languages. The proposed metric is based on a characterization of basic control structures present in Java systems. Several algorithms to compute the metric and their materialization in the Eclipse IDE are also introduced. Finally, a theoretical validation of the metric against a framework specially designed to validate software complexity metrics is presented, and the applicability of the tool is shown by illustrating the metric in the context of ten real world Java projects and relevant metrics from the well-known Chidamber-Kemerer metric suite.
Publié le : 2016-11-02
Classification:  Software Engineering,  Software cognitive complexity, basic control structures, Java, CK metric suite,  68N30, 68N19, 68N15
@article{cai1747,
     author = {Marco Crasso; IBM Research, Mar del Plata, Buenos Aires and Cristian Mateos; ISISTAN-CONICET, UNICEN University, Buenos Aires and Alejandro Zunino; ISISTAN-CONICET, UNICEN University, Buenos Aires and Sanjay Misra; Atilim University, Ankara and Pablo Polvor\'\i n; Process One, Paris},
     title = {Assessing Cognitive Complexity in Java-Based Object-Oriented Systems: Metrics and Tool Support},
     journal = {Computing and Informatics},
     volume = {34},
     number = {4},
     year = {2016},
     language = {en},
     url = {http://dml.mathdoc.fr/item/cai1747}
}
Marco Crasso; IBM Research, Mar del Plata, Buenos Aires; Cristian Mateos; ISISTAN-CONICET, UNICEN University, Buenos Aires; Alejandro Zunino; ISISTAN-CONICET, UNICEN University, Buenos Aires; Sanjay Misra; Atilim University, Ankara; Pablo Polvorín; Process One, Paris. Assessing Cognitive Complexity in Java-Based Object-Oriented Systems: Metrics and Tool Support. Computing and Informatics, Tome 34 (2016) no. 4, . http://gdmltest.u-ga.fr/item/cai1747/