Cognitive Complexity Applied to Software Development: An Automated Procedure to Reduce the Comprehension Effort
-
Published:2022-12-31
Issue:3
Volume:16
Page:282-300
-
ISSN:2338-5499
-
Container-title:Journal of ICT Research and Applications
-
language:
-
Short-container-title:J. ICT Res. Appl.
Author:
Wijendra Dinuka R.,Hewagamage K. P.
Abstract
The cognitive complexity of a software application determines the amount of human effort required to comprehend its internal logic, which results in a subjective measurement. The quantification process of the cognitive complexity as a metric is problematic since the factors representing the computation do not represent the exact human cognition. Therefore, the determination of cognitive complexity requires expansion beyond its quantification. The human comprehension effort related with a software application is associated with each phase of its development process. Correct requirements identification and accurate logical diagram generation prior to code implementation can lead to proper logical identification of software applications. Moreover, human comprehension is essential for software maintenance. Defect identification, correction and handling of code quality issues cannot be maintained without good comprehension. Therefore, cognitive complexity can be effectively applied to demonstrate human understandability inside the respective phases of requirements analysis, design, defect tracking, and code quality optimization. This study involved automation of the above-mentioned phases to reduce the manual human cognitive load and reduce cognitive complexity. It was found that the proposed system could enhance the average accuracy of requirements analysis and class diagram generation by 14.44% and 9.89% average accuracy incrementation through defect tracking and code quality issues compared to manual procedures.
Publisher
The Institute for Research and Community Services (LPPM) ITB
Subject
Electrical and Electronic Engineering,Information Systems and Management,General Computer Science