5 research outputs found

    A Complexity Measure Based on Cognitive Weights

    Get PDF
    Cognitive Informatics plays an important role in understanding the fundamental characteristics of software. This paper proposes a model of the fundamental characteristics of software, complexity in terms of cognitive weights of basic control structures. Cognitive weights are degree of difficulty or relative time and effort required for comprehending a given piece of software, which satisfy the definition of complexity. An attempt has also been made to prove the robustness of proposed complexity measure by comparing it with the other measures based on cognitive informatics

    Cognitive Complexity Applied to Software Development: An Automated Procedure to Reduce the Comprehension Effort

    Get PDF
    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

    Cognitive Complexity Applied to Software Development: An Automated Procedure to Reduce the Comprehension Effort

    Get PDF
    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

    Cognitive Complexity Beyond Generalization: A Subjective Rating for the Human Comprehension

    Get PDF
    The cognitive complexity of a software determines the comprehension effort of a particular individual faces when designing, developing and maintaining a software. The comprehension level tends to be varied with each human resulting the cognitive complexity a subjective measurement. Expressing the cognitive complexity as a form of metric quantifies the comprehensibility as a generic value, which does not imply the subjectivity of human factor. This study elaborates the significance of expressing the cognitive complexity as a form of a subjective rating. The cognitive complexity rating has been pioneered with respect to the human and programming dependent factors related to human cognition. The Divisive hierarchical clustering algorithm has been used to train and predict the cognition rating per user. It has been clearly elaborated the subjectivity of the cognitive ratings over the quantitative and static complexity values of current cognitive and software complexity metrics. Thereby, the concept of cognition rates has been proposed as a preliminary step of determining and expressing the cognitive complexity
    corecore