An initial approach to assessing program comprehensibility using spatial complexity, number of concepts and typographical style

Software evolution can result in making a program harder to maintain, as it becomes more difficult to comprehend. This difficulty is related to the way the source code is formatted, the complexity of the code, and the amount of information contained within it. This work presents an initial approach that uses measures of typographical style, spatial complexity and concept assignment to measure these factors, and to model the comprehensibility of an evolving program. The ultimate aim of which is to identify when a program becomes more difficult to comprehend, triggering a corrective action to be taken to prevent this. We present initial findings from applying this approach. These findings show that this approach, through measuring these three factors, can model the change in comprehensibility of an evolving program. Our findings support the well-known claim that programs become more complex as they evolve, explaining this increase in complexity in terms of layout changes, conceptual coherence, spatial relationships between source code elements, and the relationship between these factors. This in turn can then be used to understand how maintenance affects program comprehensibility and to ultimately reduce its burden on software maintenance.

[1]  A. F. Norcio Indentation, documentation and programmer comprehension , 1982, CHI '82.

[2]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[3]  Ted J. Biggerstaff,et al.  The concept assignment problem in program understanding , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[4]  Mark Harman,et al.  An overview of program slicing , 2001, Softw. Focus.

[5]  I. Vazquez,et al.  Software products quality improvement with a programming style guide and a measurement process , 1998, Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241).

[6]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

[7]  Norman Wilde,et al.  A comparison of methods for locating features in legacy software , 2003, J. Syst. Softw..

[8]  Gerrit E. DeYoung,et al.  Analyzer-generated and human-judged predictors of computer program readability , 1982, CHI '82.

[9]  Nicolas E. Gold,et al.  Programming style changes in evolving source code , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[10]  Jean Scholtz,et al.  The Roles Beacons Play in Comprehension for Novice and Expert Programmers , 2002, PPIG.

[11]  Keith H. Bennett,et al.  Hypothesis-based concept assignment in software maintenance , 2002, IEE Proc. Softw..

[12]  Ben Shneiderman,et al.  Program indentation and comprehensibility , 1983, CACM.

[13]  Susan Wiedenbeck,et al.  The Initial Stage of Program Comprehension , 1991, Int. J. Man Mach. Stud..

[14]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[15]  R. Geoff Dromey,et al.  A Model for Software Product Quality , 1995, IEEE Trans. Software Eng..

[16]  E. B. Swanson,et al.  Software maintenance management , 1980 .

[17]  J. E. Sammet,et al.  Software psychology: human factors in computer and information systems , 1983, SGCH.

[18]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[19]  Ted Tenny,et al.  Program Readability: Procedures Versus Comments , 1988, IEEE Trans. Software Eng..

[20]  Paul J. Layzell,et al.  Spatial measures of software complexity , 1999, PPIG.

[21]  Nicolas E. Gold,et al.  A framework for understanding conceptual changes in evolving source code , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[22]  K. K. Aggarwal,et al.  Code and data spatial complexity: two important software understandability measures , 2003, Inf. Softw. Technol..

[23]  Curtis R. Cook,et al.  A taxonomy for programming style , 1990, CSC '90.

[24]  Jim Buckley,et al.  Inference-based and expectation-based processing in program comprehension , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[25]  Alan C. Benander,et al.  An empirical study of COBOL programs via a style analyzer: The benefits of good programming style , 1989, J. Syst. Softw..

[26]  Michael Marcotty,et al.  Improving computer program readability to aid modification , 1982, CACM.

[27]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[28]  Scott P. Robertson,et al.  Expert problem solving strategies for program comprehension , 1991, CHI.

[29]  Curtis R. Cook,et al.  Typographic style is more than cosmetic , 1990, CACM.