Program Comprehension and Code Complexity Metrics: A Replication Package of an fMRI Study

Author(s):  
Norman Peitek ◽  
Sven Apel ◽  
Chris Parnin ◽  
Andre Brechmann ◽  
Janet Siegmund

The article describes the approach to the assessment of code reuse in Dynamic Product Line lines (DSPL). Some existing mechanisms to realize software variability in DSPL, such as machine learning, adaptive configurations based on Java programming tools which allow developing DSPL, especially in mobile applications domain, have been reviewed. During the development, some methods for the implementation of the variability specific to the selected programming language have been tested. For each of these mechanisms, such as Weighted Methods per Class, Response for a Class, Depth of Inheritance Tree, Coupling Between Objects, Number of Children, the code complexity metrics have been calculated. Based on these results the code reusability extent can be estimated for each of given variation mechanisms.


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.


Sign in / Sign up

Export Citation Format

Share Document