| Abstract: | Users of software want working systems. The problem is that the definition of 'working' is a moving target. The primary purpose of software maintenance is to keep software close to that moving target. The procedures that a software engineer follows when modifying a program consist of three fundamental steps: understand the program, change the code and the documentation, and validate and verify the change. Research has shown that as much as 50% of a software maintenance specialist's active programming time is used in understanding the software being changed. This research involved a study of the readability of software source code. The emphasis of this work was to examine those elements of source code that are designed, not for the compiler, but for the human reader. A set of programs was examined by two groups of software experts to determine a subjective rating of readability. To generate an objective readability rating, a concept of cognitive blocks in the source code, similar to psychological chunks, is proposed. Additionally, the use of a dictionary is proposed to determine the mnemonic value of token names. From these concepts a Software Readability Index is developed that can be generated without individual subjective evaluation. Finally, an experiment is presented that provides evidence that the Software Readability Index accurately predicts readability of source code. |