Recently several simply computed graph theoretic measures of computer program complexity, testing and unstructuredness have been proposed. Most of them are based on a static analysis of the program graph. One of the best known and most widely accepted is the cyclomatic number. Another is the number of knots, or...
Context-free grammars with graph control provide a general framework for the various types of context-free grammars with regulated rewriting. The vertices or edges of the directed graph are labeled with the productions of the grammar. The only strings in the language generated by the grammar are those whose derivations correspond...
This paper presents a study of the distribution of assembly language instructions in two avionics software applications and the development of an information theoretic software complexity metric based on the study. The instructions were grouped into classes , e.g. load and store, arithmetic, jump, compare, etc. As expected the distribution...
Many studies have shown that expert programmers are more effective at debugging programs than novice programmers. These studies have suggested that the major reason for this difference is due to the experts' superior comprehension of the program. This paper reports two experiments which investigated expert and novice student programmers program...
FORTRAN permits both explicit and implicit options for both data declaration and type conversion features. This study investigated the effects of explicit and implicit data declaration and type conversion features on a program comprehension task performed by FORTRAN programmers in an introductory programming course. The results indicated that both factors...
This study examined the UNIX command abbreviation schemes preferred by expert and novice UNIX programmers. The two parts of the conducted experiment were: subjective rating of UNIX command abbreviations for each of the six abbreviation categories (acronym, combination, contraction, identity, synonym, and truncation); subjects suggested descriptive command names for UNDC...
The "style metric" of Berry and Meekings is purported to quantify the lucidity of software written in the C programming language. We used a modification of this metric to try and identify error-prone software. Our results indicate that this metric seems to bear little relationship to the density of errors...
A computer program complexity measure is a measure of how easy the program is to understand, test, modify, maintain, etc. Many of these measures are derived from the control or flow graph of the program. We describe these measures graph theoretically, indicate what aspect or aspects of the program they...
Programming style plays an important role in program understanding and maintenance. Studies [Par83] have shown that as much as one- half of a maintenance programmer's time is spent in activities related to understanding the program. Program understanding is also important for testing and debugging. Programming style embellishes the readability of...