Abstract

Software complexity and program comprehension are inversely related. Higher the code complexity, poorer the comprehension. But we neither have good software complexity measure, nor do we understand how the program comprehension took place in human mind. This is because we know so little about the working of the human brain; how it processes internal and external information. In this paper we have identified 5 mental factors which adds into the code complexity. In order to explain these factors, we took 10 code snippet pairs in C language (2 each for every factor). Code snippets in pair are identical - in terms of number of variables, operators, control structure- but we believe one of the snippets in pair is carrying the higher cognitive load due to underlying mental factor identified. To the best of our knowledge these factors identified here in this paper are not used in calculating the code or software complexity. We believe these identified mental factors can be validated by various brain imaging and Eye tracking techniques like EEG and fMRI. They can also be validated by conventional software experimental methods. We believe these identified factors will increase our understanding of Program comprehension as well as it will lead better software complexity measure. This could be very useful in computer science education. The very process of understanding how the human mind decode the software can be possibly understood. In long run this could help us in better understanding of the functioning of human brain.

Highlights

  • Software by its very nature are inherently complex entities

  • In this paper we argue that other than factors like number of variables, input, output and cognitive weights of Basic control structure (BCS), we must consider mental factors which adds into the code complexity and eventually the overall software complexity

  • In true sense software creation is mental activity and its various related activities like code comprehension is deeply mental in nature. This in a way explains how a good software complexity measure is elusive to mankind despite all the persistent efforts

Read more

Summary

INTRODUCTION

Software by its very nature are inherently complex entities. But gauging the complexity of software code has turned out to be even more complex problem. Shao and wang proposed that different software constructs require different mental effort and proposed cognitive weights for various Basic control structure (BCS)[5], [6]. Based upon these cognitive weights many novel complexity measures were proposed by researchers[5]–[11]. In this paper we argue that other than factors like number of variables, input, output and cognitive weights of BCS, we must consider mental factors which adds into the code complexity and eventually the overall software complexity. In order to explain these identified mental factors, we constructed a snippet pairs such that each pair is similar snippets – in terms of number of variables, operators, input, output or basic control structure.

COGNITIVE WIEGHTS AND ITS LIMITATIONS
OTHER APPROACHES TO STUDY PROGRAM COMPREHENSION
MENTAL FACTORS IN CODE COMPLEXITY
Constant Vs Variables
Variables Used
Variables Modified
Original Vs Modifies use of Variables
Variable Change Source
DISCUSSION
FUTURE SCOPE AND CONCLUSION
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.